<< 30-12-2017 >>

00:00:16FromGitter<tim-st> It seems when using VsCode I can't go to definition of a type that written as a paramter of a proc
00:00:45Yardanicoit should work
00:01:07FromGitter<tim-st> I see only builtin types like string dont work
00:01:15Yardanicoworks for me ™
00:01:43Yardanicotry latest nim compiler and latest nimsuggest ;)
00:01:54FromGitter<tim-st> proc test(name: string) <-- you can click on name -> go to definition?
00:02:09FromGitter<tim-st> I mean on string
00:02:17Yardanicoyes
00:02:37FromGitter<tim-st> Now, it works for me too, before it didn't work
00:02:40FromGitter<tim-st> :O
00:02:49FromGitter<tim-st> like 5 times
00:03:21FromGitter<tim-st> maybe it was indexing or something
00:08:22iAmSlowhmm
00:08:27iAmSlowcan somone explain me https://nim-lang.org/docs/lists.html
00:08:46iAmSlowImplementation of singly and doubly linked lists. Because it makes no sense to do so
00:09:06iAmSlowwhat does not make sens to do so?
00:09:40iAmSlowatm am trying to make like for loop to read all files names in dir
00:10:02iAmSlowso want to make lista and then append example *.png
00:10:05FromGitter<tim-st> If you want a list use sequence (seq)
00:10:13YardanicoiAmSlow, don't be mistaken
00:10:14FromGitter<tim-st> seq is basically the Python tyle list
00:10:22FromGitter<tim-st> *type
00:10:29Yardanicoc# list is basically nim seq
00:10:31iAmSlownewer used python, will google seq
00:10:37iAmSlowok ty
00:10:42YardanicoiAmSlow, please read nim tutorial :)
00:10:46Yardanicoand manual
00:10:52Yardanicohttps://nim-lang.org/docs/manual.html#types-array-and-sequence-types
00:10:56iAmSlowi read little mostly cheated :)
00:11:10iAmSlowread this moste
00:11:11iAmSlowhttps://learnxinyminutes.com/docs/nim/
00:11:41iAmSlowsombody needs to make a turorial like on codelove or codecademy would get more people to nim probbaly
00:11:59YardanicoiAmSlow, there are sequences in this tutorial
00:12:00iAmSlowmeybe i should do it when i learn enought :)
00:12:20FromGitter<tim-st> Yes, for Python there should be one describing every single Python type as a nim type
00:12:59Yardanicothere is
00:13:06iAmSlowYardanico, yeap i read that but forgot , so i opend again and searched list and it told me there are list libs so i imported lists
00:13:15Yardanicowell there isn't
00:13:17Yardanicobut there is this - https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers
00:13:27Yardanicoah sorry
00:13:38Yardanicothis article contains info about python vs nim types
00:13:49Yardanicohttps://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers#from-python-to-nim
00:14:08FromGitter<tim-st> No, I meant left side, right side the 100 most used examples in Python as nim codes
00:14:25FromGitter<tim-st> if this exists, nim would already have a big user base
00:14:49FromGitter<tim-st> also Nim is much easier to program than the example on the main page lets me assume
00:14:56Yardanicoehm?
00:15:03Yardanicoexample on the main page is the simple nim syntax
00:15:38FromGitter<tim-st> `stdin.lines` is a killer for python users
00:15:58Yardanicothey will read manual and tutorial of course :)
00:16:03Yardanicoand they'll know what UFCS is
00:16:11FromGitter<tim-st> Nope, they don't
00:16:29FromGitter<tim-st> that is exactly what I wanted to say. It's the first impression
00:16:55FromGitter<tim-st> Many Python users are beginners and need very easy code and best with comments
00:17:09Yardanicowell
00:17:15Yardaniconim is not a language for a beginner in programming
00:17:56FromGitter<tim-st> I would say people who can develop in Python can develop in nim too
00:18:11Yardanicobut their nim code is... not the best ;)
00:18:52FromGitter<tim-st> Yes, it is just my assumption that this python comparison code examples in a prominent style could reach many users
00:19:18Yardanicobut why we should tune everything to be python-like ? :)
00:19:24FromGitter<tim-st> in fact I heard the first time of nim like 8 years ago but now looked again to it^^
00:20:13FromGitter<tim-st> I didn't mean to change it. I just meant to give Python developers (that are many) an easy start
00:21:51iAmSlowYep i think Tim-ST is right moste people take first impresion
00:22:27FromGitter<tim-st> I just tell it because I have the feeling that nim is much better than the number of users let peple assume it is
00:22:51FromGitter<tim-st> Many people often complain about python performance but nobody tells them to look at nim
00:23:00iAmSlowfor me nim docs is confusing compered to c# , you dont need to change main docs youst some interactive turtorial like on codecademy or codelove
00:23:12FromGitter<tim-st> Yes, absoultely
00:23:33iAmSlowand yep about that too i acidancly hard about nim
00:23:44YardanicoiAmSlow, why are nim docs confusing?
00:23:47FromGitter<tim-st> But I think people know of it, there are only a few developers unfortunately
00:24:07FromGitter<tim-st> They arent that easy to use like for example python
00:24:10iAmSlowbut anyway its better to wait 1.0 then start codelove :)
00:24:16FromGitter<tim-st> or crystal is a bit easier to use
00:24:37YardanicoiAmSlow, 1.0 wouldn't change a lot
00:25:06FromGitter<tim-st> the docs are ok, just for beginners it's a bit hard, had the same feeling at start
00:25:18dom96tim-st: improve them :)
00:25:36dom96It's much easier to improve them while you still remember the problems you ran into
00:25:42FromGitter<tim-st> Yes, I planned to write a good python starters guide
00:25:53FromGitter<tim-st> yes, that's a good point
00:25:57*gokr quit (Ping timeout: 240 seconds)
00:26:08Yardanicotim-st: about compile time GCC vs Clang (on windows): gcc - 39sec, clang - 25 sec
00:26:16Yardanico(compiling nim compiler)
00:26:33FromGitter<tim-st> Thanks, so it seems clang is always faster
00:26:36iAmSlowabout docs confusing, meybe you right , meybe they not at all i just searched walkFiles and got it, guess i was just too lazy :)
00:26:38FromGitter<tim-st> is it debug mode both?
00:26:43Yardanicono
00:26:49Yardanicorelease mode
00:26:52FromGitter<tim-st> debug same ratio?
00:26:56YardanicoIDK
00:26:59Yardanicowill try
00:27:33FromGitter<tim-st> @iAmSlow Yes, everything is available but I'm also lazy and for lazy people the python docs are easier
00:28:46FromGitter<tim-st> @dom96 Also it would be good to tell people to use VsCode Editor. I used nim for 1month now, and now I found out that it's the best
00:29:07Yardanicowhat do you mean "tell" people?
00:29:12Yardanicoalmost everyone is using it :P
00:29:24FromGitter<tim-st> On github I found a list but Aporia had no binaries, and I found Sublime and thought it was the best
00:29:34FromGitter<tim-st> Like tell them in the docs
00:29:43FromGitter<tim-st> On the first page after download compiler
00:29:57FromGitter<tim-st> They need to know that everything is there
00:30:37dom96The tutorial should take people through installing everything they need IMO
00:30:50FromGitter<tim-st> I would also add on the first page the most significant things like everything I (as person coming from Java, Python) asked here in chat, all other people will probaly have the same questions
00:30:54iAmSlowDocs are good for nim users its kinda bad for leazy people
00:31:02YardanicoiAmSlow, why?
00:31:08Yardanicowe just need to have a proper nim installer
00:31:13Yardanico(for windows)
00:31:17iAmSlowam on linux
00:31:22iAmSlownim instaled instant
00:31:25iAmSlowthat not issue
00:31:31YardanicoiAmSlow, it's an issue on windows though
00:31:47dom96I don't think it's that much of an issue
00:31:48Yardanicochoosenim is a big step forward but still
00:31:54iAmSlowissue is skiping big chunks of turtorial marking in my head as boring
00:32:06YardanicoiAmSlow, well how can we change that? :P
00:32:09dom96I would personally split up the tutorial into sections
00:32:13iAmSlowgeneraly people like to learn as doing, and forced would be best
00:32:16dom96To make it easier to read
00:32:21iAmSlowno
00:32:23dom96Two large parts is too much, it's easy to get lost
00:32:25dom96and skip things
00:32:32dom96and it's difficult to search for specific parts
00:32:33iAmSlowdont think thats thee issue
00:32:58iAmSlowwe(or you i am probbaly too nowbie) shoud make it like on codelove
00:32:58FromGitter<tim-st> But of course the things I mentioned will only be interesting if you guys are really interested in a bigger users base. If you say "nim is only for pros" than probably the user base is already at maximum
00:33:17dom96tim-st: hah, why would we ever say that?
00:33:32iAmSlowso you are forced cant skip stuff , i just now noticed styling text acidecnly, like good practices
00:33:34Yardanicowell I mean that it would be insanely hard for a newbie in programming to learn nim
00:33:38FromGitter<tim-st> @Yardanico that something like this some minutes ago :D
00:33:55YardanicoI wrote that nim is not for beginners in programming
00:34:11iAmSlowlike i say i think docs are good
00:34:12FromGitter<tim-st> No, I only know Python and Java and I feel quite good with nim after I asked like 30 questions
00:34:21Yardanicoyou're not a beginner :)
00:34:33iAmSlowdid anyone of you try codecademy or codelove
00:34:40YardanicoiAmSlow, no
00:34:43dom96IMO what sets Nim apart is that everyone can come into IRC and ask me or Araq questions
00:34:47Yardanicobecause they're boring for me :P
00:34:52iAmSlowtry codelove
00:34:56FromGitter<tim-st> Ok, I meant with beginner people who dont know things about compiler etc
00:34:57*yglukhov quit (Remote host closed the connection)
00:34:58iAmSlowi will make you acount
00:35:00dom96Doubt you can do that with other languages
00:35:06Yardanicodom96, IIRC you can do that with rust
00:35:11Yardanicoor D
00:35:31iAmSlowit forces you to not skip stuff
00:35:33Yardanicotim-st: I've meant complete beginners
00:35:39dom96I don't think D's devs hang out in IRC
00:35:51FromGitter<tim-st> @Yardanico Yes, ok that's true.
00:35:57dom96Rust, sorta, but the creator of Rust doesn't really work on Rust anymore IIRC :P
00:36:11iAmSlowreally rust creator abandon it
00:36:21FromGitter<tim-st> @dom96 Yes, I also have the feeling that it's a good thing, I also learn more this way
00:36:23iAmSlow?
00:36:29Yardanicodom96, well that's not a big issue I think
00:36:39FromGitter<tim-st> but the downside is, that you dont get a question site like sx
00:36:41Yardanicobecause rust community is pretty large to be able to develop language further without main creator
00:36:54dom96https://news.ycombinator.com/item?id=13533701
00:37:02Yardanicolol
00:37:03Yardanicoswift
00:37:16dom96Apple poached a lot of programming language developers
00:38:26Yardanicodom96, btw, just noticed, D has similar page with organisations using D:
00:38:32Yardanicothere's not a lot of them, but some of them are quite big
00:38:33Yardanicohttps://dlang.org/orgs-using-d.html
00:38:46Yardanicoebay/facebook/netflix
00:38:54dom96of course they do
00:39:30Yardanicowell, about facebook: "
00:39:30YardanicoThis project is not actively maintained. Proceed at your own risk!"
00:39:36Yardanicolast commit in 2015
00:40:11dom96Keep in mind that one of D's core devs worked at FB for a while
00:40:30dom96Andrei Alexandrescu
00:40:55dom96It's always worth looking into these things in more detail: https://github.com/netflix/vectorflow
00:41:11Yardanicoyeah, not very big project
00:41:37dom96I'm willing to guess that a lot of these projects are made by D fans working at these companies
00:41:42dom96Without much company-wide support
00:41:52dom96Which is still impressive
00:42:17dom96but we're not far behind :)
00:42:31Yardanicowell, about repo count on github
00:42:47Yardanicothat's not a real comparasion, but still
00:42:49YardanicoD: 9k, nim: 1.8k
00:43:02dom96how did you get these numbers?
00:43:19Yardanicoapparently github search now gives proper results
00:43:31Yardanicohttps://github.com/search?o=desc&q=language%3AD&s=stars&type=Repositories&utf8=%E2%9C%93
00:43:44Yardanicowell not always
00:43:52Yardanicosometimes it's a liiiitle bit lower
00:44:17Yardanicocrystal has 2621
00:44:36YardanicoI really think that we need to create some project in nim which will gain a lot of stars :P
00:44:51Yardanicothat's a real way to get more people into nim
00:45:30dom96It always complains that the search took too long for me
00:46:21dom96It does seem to vary around a similar range
00:46:27dom96So it seems somewhat reliable
00:46:28iAmSlowi need to sleep , but like i say try codelove interactive turtorial i think adding nim to it or codecademy would bring more people and ofc getting some projects too
00:46:34iAmSlowcya
00:46:36dom96I wish GitHub would make this work...
00:46:48*iAmSlow quit (Quit: Leaving)
00:47:06dom96You know what a proven good way to get more users to Nim is?
00:47:07dom96https://www.reddit.com/r/programming/comments/7moxyl/nim_in_2017_a_short_recap/
00:47:09dom96Blog posts!
00:48:45*Yardanico[Phone] joined #nim
00:49:35*Yardanico quit (Ping timeout: 248 seconds)
00:51:59*willprice quit (Ping timeout: 256 seconds)
00:52:03Yardanico[Phone]Wow, almost 140 upvotes
00:54:05dom96yeah, sadly no HN front page though
00:54:09dom96#sosad
00:54:38FromGitter<jaccarmac> RESF owns HN but have their little corner on Reddit I guess :P
00:55:35dom96RESF?
00:55:45FromGitter<jaccarmac> Rust Evangelism Strike Force
00:56:42dom96hah
00:58:42Yardanico[Phone]And there's not a lot of nimmers, but we're everywhere
00:58:58ElronndI can't decide who's more annoying, the rust evangelists, or the not-rust evangelists
01:01:09dom96There are dozens of us, dozens!
01:01:25Xeone of us
01:01:27Xeone of us
01:02:10Yardanico[Phone]There's also another community which is a bit similar to Nim (community-wise). And a lot of people ask "why it's needed?" too
01:02:30Yardanico[Phone]ReactOS
01:02:48Yardanico[Phone]open source windows implementation
01:02:56Yardanico[Phone]They're more crazy than we
01:04:27Yardanico[Phone]They've migrated to GitHub recently
01:04:29Yardanico[Phone]https://github.com/reactos/reactos
01:07:26Elronndis "we" nim or reactos?
01:08:15Yardanico[Phone]ReactOS devs are crazier than Nim devs :D
01:14:23Yardanico[Phone]It's extremely hard to be windows-compatible (closed-source)
01:28:43Araq1. some customers of MS got insight into Windows' source code.
01:28:52Araq2. reverse engineers are really good
01:29:10Araqit's not "extremely" hard to replicate Windows.
01:29:20Araqit's extremely hard to keep it up to date though
01:30:08Araqand Windows' inner workings are probably very messy, not much fun in replicating their bugs
01:56:43*user0_ joined #nim
01:57:35*Trustable quit (Remote host closed the connection)
01:57:52*user0 quit (Ping timeout: 265 seconds)
01:57:52*user0_ is now known as user0
02:04:04user0Is it a good idea to split the IRC channel into 2? For example, with Rust, they got Rust-beginners and Rust. With C++ they got C++-basic and C++
02:05:46def-user0: depends on the activity of the channel, I don't think #nim is active enough to warrant that split
02:10:37*vlad1777d joined #nim
02:16:33user0Okay let me ask a few basic questions then. What paradigm of programming does Nim encourage? For example, D, implicitly encourage the use of traditional C++-esque TMP and OOP. Of course, you can go functional (to some extent) in D too, but that's not what the norm is.
02:41:05*chemist69 quit (Ping timeout: 252 seconds)
02:45:18*S1tiSchu joined #nim
02:46:25Elronnduser0: I wouldn't really say that d encourages that. D gives you a shitload of features and says "go to town"
02:48:41*SitiSchu quit (Ping timeout: 260 seconds)
02:54:27*chemist69 joined #nim
03:16:42FromGitter<RedBeard0531> user0: I'm still new(ish) but as far as I can see, nim encourages GTD (getting things done) without too much pushing a single paradigm :)
03:18:27user0^ wouldn't that result in spaghetti code? In my opinion, language paradigm plays an important role in implementing design patterns.
03:21:14FromGitter<RedBeard0531> So far I've found most repos fairly easy to drop into and read, but I'm used to doing that in C++ so maybe I'm not the best sample point
03:38:58*user0 quit (Quit: user0)
03:53:24*dddddd quit (Read error: Connection reset by peer)
05:12:24*endragor joined #nim
05:32:52FromGitter<Quelklef> is there a convention for choosing between `{}` and `[]` procs?
05:33:00FromGitter<Quelklef> / is there a semantic difference
05:51:30*fvs joined #nim
06:01:55*endragor quit (Remote host closed the connection)
06:02:26*endragor joined #nim
06:18:57*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
06:36:17*fvs quit (Read error: Connection reset by peer)
06:36:34*fvs joined #nim
06:47:30*lastjedi joined #nim
06:47:52avsejis it possible to make tests output traces where assertion has been failed? https://pastebin.com/raw/FHWH037F this is what I see when run tests on devel
07:17:56FromGitter<jaccarmac> Been learning about polymorphic recursion and how monomorphization in Rust prevents it. In my naive test of Nim the same way it also created a super deeply nested recursive structure and errored out.
07:18:06FromGitter<jaccarmac> Any way to get the non-monomorphized behavior?
07:18:09FromGitter<jaccarmac> Methods perhaps
07:22:30FromGitter<jaccarmac> Methods don't seem to work but I do get a different error than without them.
07:24:56*Vladar joined #nim
07:29:20FromGitter<jaccarmac> Update: methods work but not with variant objects. Interesting corner of the compiler I guess, seems the semantics should be the sameish if not the implementation...
07:47:29*nsf joined #nim
07:57:26*gokr joined #nim
08:09:01*Arrrr joined #nim
08:09:01*Arrrr quit (Changing host)
08:09:01*Arrrr joined #nim
08:15:49*lastjedi quit (Ping timeout: 268 seconds)
08:17:01*Kingsquee joined #nim
08:32:57*claudiuinberlin joined #nim
08:38:16*xkapastel quit (Quit: Connection closed for inactivity)
09:02:52*miran joined #nim
09:03:46*gmpreussner quit (Ping timeout: 260 seconds)
09:05:21*gmpreussner joined #nim
09:13:27*Yardanico[Phone] quit (Ping timeout: 240 seconds)
09:13:46*Yardanico[Phone] joined #nim
09:32:08FromGitter<alehander42> `Returns true iff c is a lower case Unicode character. If possible, prefer isLower over isUpper. `
09:32:23FromGitter<alehander42> why ? (the unicode module docs)
09:54:05*gokr quit (Ping timeout: 240 seconds)
09:57:00avsejcould sombody point me when the stracktraces has been inverted (like most recent call goes first). is it possible to control it somehow?
10:01:13*willprice joined #nim
10:03:38mirani have this in python: `set(range(0, period, 2))` -> what is nim's equivalent?
10:04:30miranmy first idea was to use `countup`, but i can't
10:05:48Araqavsej, I doubt it's possible but the code dealing with this is in system/excpt.nim
10:06:34Araqmiran, why create a set of known values?
10:07:01miranAraq: because i'll use it later for some intersections
10:07:03Araqalehander42: 'ß' in German has no uppercase version. well that's what Germans think.
10:07:38avsejAraq, after the change, this function now removes stacktraces from the test output: https://github.com/nim-lang/Nim/blob/devel/tests/testament/tester.nim#L293-L306
10:07:39Araqin reality uppercased ß has been added a couple of years ago
10:08:05avsejit relies on the message going before the stacktrace, but never sees it
10:08:25Araqthat code should be removed
10:08:28FromGitter<alehander42> ok, but how will `isLower()` help you in that case ?
10:08:48AraqisLower("ß") == true
10:08:54avsejAraq, thanks. I will open PR later today, unless you just remove it before :)
10:09:27Araqno. I will stop programming soon. And only review PRs all day long :D
10:09:29FromGitter<alehander42> yeah, but you would use isUpper for the capital `ß` ?
10:10:05AraqI don't know how to produce a capital ß on my keyboard
10:10:24FromGitter<alehander42> ẞ :D
10:10:42AraqI think it has a different unicode codepoint
10:10:51FromGitter<alehander42> such a bizarre letter, reminds me of the a/e monstrosity in swedish
10:11:09Araq*shrug* it looks like a beta, what's wrong with it
10:11:30FromGitter<alehander42> exactly! it looks like a beta, but you read it like "s"
10:11:59Araqactually we read it liks 'ss' :P
10:12:22FromGitter<alehander42> yeah, and s = z
10:12:25Araqanyway, just remove that note from Unicode if it confuses so much
10:12:35FromGitter<alehander42> ah no, I just wondered for the reason
10:12:53Araqbut the point is that lower cased letters outnumber upper cased letters in many languages iirc
10:13:02FromGitter<alehander42> anyway, I guess half of the cyrillic alphabet looks like a bizarre confusion to latin readers
10:13:32AraqI recently learned it, it was a challenge
10:13:40FromGitter<alehander42> yeah, but if you want to find if a letter is uppercase, you can't just do `is not isLower(..)`
10:14:21Araqtrue, the point is more use toLower(x) == toLower(y) if you really must rather than toUpper(x) == toUpper(y)
10:14:25FromGitter<alehander42> yeah, and russians even have several letters on top :D
10:14:48Araqbut both are wrong and cmpIgnoreCase should be used or similar
10:14:49FromGitter<alehander42> aaah, I see, case-insensitive cmp
10:14:53FromGitter<alehander42> yep
10:15:11AraqI argued to remove toLower() and toUpper() since it never leads to correct code
10:15:21Araqbut "Python has it"
10:15:26Araqand "C# has it"
10:15:40FromGitter<alehander42> haha, well what would you use instead
10:15:43Araqso we have to eat dung because flies like it.
10:16:11Araqas I said, I would use cmpIgnoreCase instead
10:16:14FromGitter<alehander42> each language I know has it ; (
10:16:26FromGitter<alehander42> ok, but I mean, if you want to convert the case to lower ..
10:16:37Araqwhy would I?
10:17:44FromGitter<alehander42> if you take that philosophy further, text manipulation is a symptom of an existentially empty life
10:18:10FromGitter<alehander42> but you would, because it's a very commonly needed text operation
10:19:29Araqwhere? no editor I have ever used had "convert to lowercase" or maybe it did but I never used it once
10:19:50FromGitter<alehander42> oh, sublime has it :D
10:20:01Araqmaybe you shouldn't deal with so many people who SHOUT at you
10:20:05FromGitter<alehander42> I usually convert to caps lock
10:20:33Araqbut ok whatever, unicode.toLower exists, be happy
10:20:41FromGitter<alehander42> no araq, my usecase is to convert text to normal randomized I fE3l WeIrd HeRE stuff
10:21:26Araq"normal randomized I fE3l HeRE stuff" is not normal and hardly randomized.
10:21:28FromGitter<data-man> !eval import unicode echo isLower('Ё')
10:21:29NimBotCompile failed: in.nim(1, 31) Error: missing final ' for character literal
10:21:44FromGitter<data-man> !eval import unicode; echo isLower('Ё')
10:21:45NimBotCompile failed: <no output>
10:21:54Araq!eval import unicode; echo isLower("ß")
10:21:57NimBotfalse
10:22:06Araqoopps lol
10:22:14FromGitter<data-man> :)
10:22:26FromGitter<tim-st> I tested the implementation for isUpper and isLower for ß and it was correct. The ß will never be uppercase (also when people like to say so) because it's the only letter which can never be a first letter of a word
10:22:33FromGitter<alehander42> who needs german anyway
10:22:36FromGitter<data-man> !eval import unicode; echo isLower("Ё")
10:22:38NimBotfalse
10:22:43Araq!eval import unicode; echo isUpper("ß")
10:22:45NimBotfalse
10:22:54FromGitter<data-man> !eval import unicode; echo isLower("ё")
10:22:56NimBottrue
10:23:06Araqmaybe it's not lower because it cannot be turned into upper?
10:23:45Araqtim-st: Upper cased ß was added because on German passports ALLCAPS are used for the last name...
10:24:04Araqmaking names like GAUSS ambiguous (is that Gauß or Gauss?)
10:24:08FromGitter<tim-st> Yeah, i know but that isn't correct though
10:24:40FromGitter<tim-st> I think the current implementation is the most natural for this letter
10:24:48Araqwhat do you mean?
10:26:24Araqit's not lower because it should not be turned to upper case?
10:27:02FromGitter<tim-st> it is lower, and it can be used as uppercase but is still lower than^^
10:29:38FromGitter<tim-st> btw you told me to write the two lines of code on my own some time ago for hashmap merge, I tried it and the only way it worked was using a new proc? Is it working using a one liner?
10:30:20*user0 joined #nim
10:30:58FromGitter<tim-st> (I wanted to define it const not var)
10:31:48Araqfor k, v in pairs(mytab): dest[k] = v ?
10:32:06Araqah to put it in const, yeah
10:33:27FromGitter<data-man> @Araq: I have an idea about a new optimization option: -d: useAutoLikely. The compiler could automatically insert likely(condition) (and unlikely(...)) for the some statements. What do you think?
10:34:08Araqbased on what information?
10:35:25FromGitter<tim-st> so the plus operator for tables would be a good idea, would allow const also
10:35:35FromGitter<tim-st> and all ops from set
10:36:27FromGitter<data-man> If a statement started from "if" then to use likely. For "if not <condition>" to use unlikely
10:41:25*dddddd joined #nim
10:43:11*Trustable joined #nim
10:45:40Araqdata-man: that's a pretty wild rule
10:46:05*yglukhov joined #nim
10:46:14FromGitter<data-man> Just an idea :)
10:47:48FromGitter<tim-st> Shouldnt this be the task of the c commpiler? I heard it's very smart...
10:49:14*yglukhov quit (Read error: Connection reset by peer)
10:49:47*yglukhov joined #nim
10:50:04*yglukhov quit (Remote host closed the connection)
10:50:38FromGitter<data-man> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a476f7d232e79134da87614]
10:50:41*yglukhov joined #nim
10:50:56FromGitter<data-man> :(
10:53:18*endragor quit (Remote host closed the connection)
10:54:23FromGitter<data-man> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a47705f68d092bb620598e0]
10:54:53FromGitter<tim-st> Have you tried this manually and compared the compiled results?
10:55:33*yglukhov quit (Ping timeout: 264 seconds)
10:57:28*endragor joined #nim
10:58:36FromGitter<data-man> No, I did not measure speed. But very, very many С/С++ libraries use this hints for the compiler.
10:58:54FromGitter<data-man> *these hints
11:01:18FromGitter<tim-st> Ok, could be interesting than
11:09:44FromGitter<data-man> BTW TinyCC v.0.9.27 released http://git.savannah.gnu.org/cgit/tinycc.git/tree/Changelog
11:11:48*marenz__ joined #nim
11:18:42*yglukhov joined #nim
11:25:38*gokr joined #nim
11:26:21Araqdata-man: how about this: tonight I'll publish my ideas about Nim's new runtime and language features and you help implement it, it's a clean design (I hope), that will hopefully give us much more speed than micro optimizations
11:26:46Araqsee you later.
11:28:09FromGitter<data-man> Hooray! :)
11:41:01*BitPuffin|osx joined #nim
11:45:27avsejAraq, https://github.com/nim-lang/Nim/pull/6998
12:16:18*avsej quit (Ping timeout: 272 seconds)
12:23:52*natrys joined #nim
12:25:04*avsej joined #nim
12:25:04*avsej quit (Changing host)
12:25:04*avsej joined #nim
12:26:11*lastjedi joined #nim
12:31:47*Arrrr quit (Read error: Connection reset by peer)
12:35:54GitDisc<Lite5h4dow> whats better, parseOpt or os.paramStr?
12:40:17GitDisc<NopeDK> @Lite5h4dow os.paramStr is for manual handling of commandline, parseOpt is a full parser for commandline.
12:40:33GitDisc<Lite5h4dow> ill use parse opt then
12:40:51GitDisc<Lite5h4dow> let it do the work xD
12:41:55*miran quit (Quit: Konversation terminated!)
12:45:49*dandevelo joined #nim
12:55:28GitDisc<Lite5h4dow> can i just make sure i understand the parseopt documentation with someone?
12:55:44GitDisc<Lite5h4dow> if its not too much trouble
13:10:43FromGitter<tim-st> When I want to access the index of the Runes of a string multiple times it's best to save the str first as a seq[Rune] using toRunes instead of calling runeAtPos every time, isn't it?
13:12:31*Snircle joined #nim
13:15:47GitDisc<Lite5h4dow> i dont think anyone is here man
13:15:49GitDisc<Lite5h4dow> xD
13:15:51yglukhovtim-st: runeAtPos is linear complexity.
13:16:01GitDisc<Lite5h4dow> nvm
13:17:11yglukhovso yeah, indexing a seq is faster than calling runeAtPos. at the cost of additional memory usage in your case.
13:17:18FromGitter<tim-st> So basically 5 calls would have 5*O(n) and 5 calls to seq would be 5*O(1) + 1*O(n) --> the first toRunes call
13:17:34FromGitter<tim-st> OK, good, thanks
13:18:22FromGitter<tim-st> btw there are a few var declares that can be let in unicode.nim . does c compiler understand this?
13:18:45*user0 quit (Quit: user0)
13:19:01yglukhovlets and vars have the same C representation, as far as im concerned
13:20:13FromGitter<tim-st> Interesting if that's true. Than it would only be a safety check for the developer?
13:20:28yglukhovbut lets potentially may have more chances to be optimized by nim itself. even though i don't think nim currently exploits any benefits of those
13:21:05yglukhov> Than it would only be a safety check for the developer? yep, that's what it is currently. and readability improvements
13:21:25FromGitter<tim-st> Thanks for the answers. good to know
13:23:07*user0 joined #nim
13:28:25livcdbtw will there be some terminilogy changes with 1.0 eg. seqs being renamed ? :D
13:31:02*BitPuffin|osx quit (Ping timeout: 272 seconds)
13:35:37*Yardanico joined #nim
13:42:05*Kingsquee quit (Ping timeout: 265 seconds)
13:44:41*endragor quit (Remote host closed the connection)
13:46:37*Gnjurac joined #nim
13:46:43Gnjurachi
13:46:51dom96hello
13:47:06Gnjuracanyone using nim whit godot
13:47:36dom96Araq: ^
13:47:38Gnjuracgodotengine
13:48:16dom96why do you ask?
13:48:44*endragor joined #nim
13:49:30Gnjuraccuz duno if it works on github last build is marked erroe or faild i think
13:50:23Gnjuracand would like to know how it compers to c#/mono in build size
13:50:40Gnjuracam guessing nim is smaller
13:53:25*endragor quit (Ping timeout: 256 seconds)
13:55:14YardanicoGnjurac, it works
13:55:32Yardanicodon't worry about build: error
13:56:00Gnjuracoki will try when i get home atm am on phone
13:58:16*yglukhov quit (Remote host closed the connection)
13:59:02*yglukhov joined #nim
14:03:10*Gnjurac quit (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org)
14:04:34FromGitter<alehander42> Livcd why would you change seq
14:05:02FromGitter<tim-st> Rune type seems to be an distinct int32 but has a contructor Rune() where is this defined or how was it defined?
14:05:41FromGitter<tim-st> I want this for my tuples, too
14:07:49Yardanicoit's not a constructor
14:07:56YardanicoRune is a type
14:08:11Yardanicoand with Rune(...) you create Rune object with value :)
14:08:17Yardanicowell , it's kinda like constructor, but it's not
14:08:39FromGitter<tim-st> it is an object? where it is defined? I searched the code
14:08:54FromGitter<tim-st> I see it in unicode.nim as int32
14:09:26Yardanicohttps://github.com/nim-lang/Nim/blob/master/lib/pure/unicode.nim#L18
14:09:40Yardanicoah, sorry, it's not an object, but still
14:10:08FromGitter<tim-st> for me it is not clear why I can do Rune(100) but not MyTupleType()
14:11:01FromGitter<tim-st> or basically where I can find the Rune() proc/constructor/ template whatever it is to allow the braces style
14:12:01Yardanicoah, sorry again
14:12:10YardanicoRune(int32 value) is a type conversion
14:12:23FromGitter<tim-st> where you find it?
14:12:30Yardanicohttps://nim-lang.org/docs/manual.html#types-distinct-type
14:12:40YardanicoExplicit type conversions from a distinct type to its base type and vice versa are allowed.
14:14:03Yardanicotim-st: and you can already use "braces" style
14:14:14FromGitter<tim-st> Ok, thanks, so internally the braces are interpreted as a type conversion/Cast?
14:14:25FromGitter<tim-st> Really? for tuple with 0.17.2?
14:15:01Yardanicoe.g. if you have "type MyTupleType = tuple[x: int, y: string]"
14:15:19Yardanicoyou can create a MyTupleType variable like this: "let a = (x: 5, y: "hello")"
14:15:47FromGitter<tim-st> yes, but I want MyTupleType(x:5)
14:16:04FromGitter<tim-st> atm I find my self writing many procs for tuples
14:16:17YardanicoMyTupleType(x: 5) works only for objects
14:16:25FromGitter<tim-st> that allow the construction this way, for object I have them
14:16:31Yardanicohttps://nim-lang.org/docs/tut1.html#advanced-types-tuples
14:16:51Yardanicowhy would you want MyTupleType(x: 5) ?
14:17:00Yardanicothen you wouldn't know if it's an object or a tuple
14:17:28Yardanicolet a: MyTupleType = (x: 5, y: "hello")
14:17:34Yardanicoyou can write it like this ^^
14:18:15FromGitter<tim-st> I don't care if it's tuple or object that's the thing. I think the best way would be to not realize at all the difference. So I would get the perfomance from tuple and the nice style from object
14:18:49FromGitter<tim-st> But thanks for the answer, so I will continue writing procs
14:19:00FromGitter<tim-st> for construction
14:19:02Yardanicowhy?
14:19:12Yardanicolet a: MyTupleType = (x: 5, y: "hello") is better
14:19:39FromGitter<tim-st> No, in my opinion it is not. I think there are many very good styles in nim. This on isn't
14:19:46FromGitter<tim-st> *one
14:21:07Yardanicomaybe you can try to overload `()` ?
14:21:10YardanicoIDK if it works or not
14:21:48FromGitter<tim-st> good idea, will try
14:21:55dom96In case there is anybody left without Nim in Action here: https://www.reddit.com/r/nim/comments/7n1rhi/manning_megasale_on_301217_311217_and_010118_good/ :)
14:24:14livcdI hope they will have a sale for ebooks as well
14:24:15FromGitter<tim-st> @Yardanico there comes a warning it's experimental^^
14:24:21livcdi want to grab Well Grounded Rubyist
14:24:21YardanicoI know
14:24:56livcddom96: did they reply to you about that code formatting ?
14:26:13*Ven`` joined #nim
14:26:34FromGitter<tim-st> doesnt work, will stay with proc
14:35:41*lastjedi quit (Ping timeout: 260 seconds)
14:35:59Yardanicowhat do I need to use instead of "fromSeconds(1893456000)" ?
14:36:05Yardanicobecause fromSeconds is deprecated
14:36:37Yardanicoah, just Time(number)
14:37:12dom96livcd: yeah, they said they'll fix it
14:37:50livcddom96: ahh nice
14:38:01livcdi wonder how long will it take
14:41:42Yardanicohow do I convert Time to DateTime?
14:41:52YardanicoI have this code "getGMTime(getTime() + initInterval(hours=3))"
14:41:56Yardanicobut getGMTime is deprecated
14:42:26Yardanicoah
14:42:34Yardanicoutc(getTime() + initInterval(hours=3))
14:43:33*dandevelo quit (Ping timeout: 264 seconds)
14:47:12Yardanico(just was fixing deprecations in my project)
14:52:16*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:52:45dom96Yardanico: if the docs for getTime don't contain info about this then please add a mention of utc to them
14:54:12*yglukhov quit (Remote host closed the connection)
14:54:20Yardanicodom96, these 5 procs are very simple but they don't have info about replacement: https://github.com/nim-lang/Nim/blob/devel/lib/pure/times.nim#L1350
14:54:50dom96They need a comment that says they are deprecated as well
14:55:10dom96"**Deprecated since v0.18.0:** use ``utc`` instead"
14:55:16Yardanicook
14:56:19Xeis times finally getting fixed?
14:57:03dom96yep
14:57:06Yardanicodom96, about getLocalTime and getGMTime: should I use UFCS or not?
14:57:06Xeyay
14:57:11Yardanicoe.g. local(time) or time.local
14:57:17Xethis was the thing that made twtxtlist impossible to write
14:57:18Yardanicofor deprecation comment
14:57:40dom96Yardanico: doesn't really matter I don't think
14:58:57YardanicoAraq, and again :)
14:59:06Yardanicowrong branch - https://github.com/nim-lang/Nim/commit/9ca56863982fd623739e36adbc1455a2d5c5c8e7
15:02:26Yardanicodom96, and also, should I write it like ## Use ``Time(since1970)`` instead. or ## Use ``Time`` instead.
15:02:48dom96You should write it exactly like I've written it
15:03:01dom96## **Deprecated since v0.18.0:** use ``Time`` instead
15:03:30dom96Xe: There are more PRs being made by GULPF to fix even more things, you may wish to take a look at them
15:03:46Yardanicodom96, well there's toSeconds which is replaced by float()
15:04:02Yardanicoand it would probably be a little bit confusing since Time is a type
15:04:53*Ven`` joined #nim
15:05:10dom96So I contacted TIOBE about the Crystal mis-ranking (according to December's index Crystal is more popular than Rust) and they said that about 39% of the results are referring to "programming crystals" (ala https://meanings.crystalsandjewelry.com/how-to-program-crystals/), makes me wonder how accurate these stats are at all :)
15:06:17Yardanicodom96, and I can't find that is the replacement for getTimezone :P
15:06:19Yardanico*what is
15:06:21dom96Yardanico: okay, feel free to show that, but maybe put in an integer not ``since1970``.
15:08:45Xedom96: i'm gonna see if i can get nim packaged in alpine linux
15:08:50Xeit works perfectly on alpine fwiw
15:08:58dom96great
15:09:20YardanicoI can say more: nim works great in non-linux (partially posix compatible) OS :D
15:09:24*endragor joined #nim
15:09:46Yardanicowell I'm talking about basic tasks
15:09:57dom96Nim should work on pretty much anything
15:10:23Xeint 80h
15:10:43Yardanicodom96, https://github.com/nim-lang/Nim/pull/7001
15:11:24dom96and you didn't use the format I told you to use
15:13:13Yardanicodom96, fixed
15:14:02dom96also, please add an empty `##` between the doc and deprecation warning
15:14:06dom96otherwise they'll end up on the same line
15:14:54Yardanicodom96, done
15:15:18dom96thank you
15:15:53Yardanicodom96, but I didn't found the replacement for getTimezone - I'll ask GULPF about it and commit directly afterwards
15:16:07dom96ok
15:18:35*lastjedi joined #nim
15:24:05*natrys quit (Quit: natrys)
15:24:19FromGitter<tim-st> Is this a bug or a feature:
15:24:24FromGitter<tim-st> let x = 1 ⏎ ⏎ for num in 0..10: ⏎ let x = 2 ⏎ echo x ... [https://gitter.im/nim-lang/Nim?at=5a47afa784fb74b9401c5a51]
15:24:45FromGitter<tim-st> that I can redeclare in scope
15:24:57FromGitter<tim-st> "redeclare"
15:25:26FromGitter<Yardanico> @tim-st please use github markdown for code snippets on gitter :)
15:25:34Yardanicowell for has another scope
15:25:49FromGitter<tim-st> ok, but feels a bit strange
15:26:05FromGitter<Yardanico> why?
15:26:11FromGitter<tim-st> (yeah I meant another scope the word was lost^^)
15:26:25FromGitter<Yardanico> https://nim-lang.org/docs/manual.html#scope-rules-block-scope
15:26:39FromGitter<Yardanico> If a block contains a second block, in which the identifier is redeclared, then inside this block, the second declaration will be valid.
15:26:41FromGitter<mratsim> That's called shadowing. Happens in lot of language, it's bug prone I agree.
15:27:03FromGitter<Yardanico> @mratsim well it's not very bug prone in nim since you always need to use let/var
15:27:04FromGitter<tim-st> @mratsim exactly this was my feeling, thanks
15:27:10FromGitter<Yardanico> in python it's more bug prone I think
15:27:20FromGitter<mratsim> But it's like using foo as a local variable in a function and outside.
15:27:45FromGitter<mratsim> Yes the let/var helps.
15:28:24*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:29:59Yardanicohmm, what is the best config format to use with nim?
15:30:19YardanicoI want it to be human-readable (so users can edit it without too much hassle)
15:30:37Yardanicoparsecfg from stdlib is good, but sadly it doesn't support arrays
15:35:04dom96json then?
15:35:15dom96or you could just split(",") in parsecfg
15:35:34Yardanicodom96, yeah, I know about split(",") :)
15:36:01*vlad1777d quit (Ping timeout: 248 seconds)
15:36:16Yardanicowell, JSON isn't considered as a very good format for config files: https://arp242.net/weblog/json_as_configuration_files-_please_dont
15:38:48Yardanicomaybe TOML or YAML
15:39:09*vlad1777d joined #nim
15:40:24hiway+1 on YAML; seems straightforward enough, has tooling in IDEs
15:54:24FromGitter<tim-st> When I have `variable == variable2+1` in a for loop and `variable2` is declared with let is `variable2+1` recalculated in every loop?
15:55:34FromGitter<tim-st> basically: should I declared also `variable2` before the loop to prevent recalc?
15:56:04FromGitter<tim-st> I mean `variable2+1` sorry ^^
16:06:44*subsetpark_ joined #nim
16:09:39dom96hrm, do we want a `[]` for File in the stdlib?
16:10:39Yardanicodom96, for what?
16:11:00dom96file[5 .. 123] # returns a slice of the file's contents
16:16:51*MJCaley joined #nim
16:26:25*lastjedi quit (Ping timeout: 265 seconds)
16:28:29*lastjedi joined #nim
16:30:53*BitPuffin|osx joined #nim
16:33:08FromGitter<Varriount> Yardanico: Nim has a great YAML module
16:33:22Yardanicoyeah, I know about NimYAML :0
16:44:28*Yardanico_ joined #nim
16:45:15*natrys joined #nim
16:48:21*Yardanico quit (Ping timeout: 264 seconds)
16:52:52FromGitter<mratsim> Yaml is very readable, I'm not aware of a toml lib though parsecfg can probably fit the bills
16:59:13*gokr quit (Read error: Connection reset by peer)
17:01:22*willprice94 joined #nim
17:03:57*willprice quit (Ping timeout: 264 seconds)
17:06:07fvsbasic2d being depreciated? Always found it perfect for small vector based calcs where arrayMancer would be overkill.
17:06:09*miran joined #nim
17:07:10*xet7 quit (Quit: Leaving)
17:10:25*dandevelo joined #nim
17:11:17dom96just moved out of stdlib
17:14:12fvsinto nimble i see - that works
17:14:43Yardanico_fvs, the code in it is... not very good
17:15:11*dandevelo quit (Ping timeout: 248 seconds)
17:23:38*Yardanico_ quit (Read error: Connection reset by peer)
17:23:44*Yardanico__ joined #nim
17:27:04*Yardanico__ is now known as Yardanico
17:27:59*Yardanico is now known as ROSKOSMOS
17:28:17*ROSKOSMOS is now known as B_rot_her
17:29:16*B_rot_her is now known as _____
17:29:20*_____ is now known as ______
17:29:25*______ is now known as Yardanico
17:30:15*Yardanico_ joined #nim
17:33:46*Ven`` joined #nim
17:34:17*Yardanico quit (Ping timeout: 252 seconds)
17:34:18*deathstar joined #nim
17:36:57*lastjedi quit (Ping timeout: 264 seconds)
17:37:10*Yardanico_ is now known as Yardanico
17:38:13*lastjedi joined #nim
17:41:26*deathstar quit (Ping timeout: 252 seconds)
17:42:58*deathstar joined #nim
17:44:06*lastjedi quit (Ping timeout: 260 seconds)
17:47:10*deathstar quit (Ping timeout: 255 seconds)
17:48:19*lastjedi joined #nim
17:53:03*deathstar joined #nim
17:53:27*lastjedi quit (Ping timeout: 240 seconds)
17:54:18*Vladar quit (Quit: Leaving)
17:57:27FromGitter<Quelklef> Can someone help me understand methods better?
17:57:29FromGitter<Quelklef> https://gist.github.com/Quelklef/b1b57cae9be0d05c2ff62d1892eaaea1
17:58:04FromGitter<Quelklef> My understanding is that `$cont.inner` should give "Derived" because it's of the (runtime) derived type and not the base type
17:58:12FromGitter<Quelklef> Evidently, though, I'm wrong.
17:59:16*lastjedi joined #nim
18:00:29*deathstar quit (Ping timeout: 256 seconds)
18:02:16*nsf quit (Quit: WeeChat 2.0.1)
18:04:31*willprice94 quit (Ping timeout: 260 seconds)
18:11:18dom96Seems to me that way too
18:12:36FromGitter<Quelklef> oh. I should note, then, that I'm not on devel
18:13:49dom96gives me the same result
18:13:52dom96submit a bug report
18:14:01FromGitter<Quelklef> will do
18:14:22*xet7 joined #nim
18:16:01*Vladar joined #nim
18:20:44*deathstar joined #nim
18:22:37*lastjedi quit (Ping timeout: 268 seconds)
18:25:19FromGitter<stisa> @Quelklef I think inheritance needs `ref object of ...` to work as you want
18:27:14FromGitter<Quelklef> ok, thanks
18:27:15FromGitter<Quelklef> why's that?
18:29:20dom96ahh yeah, that's true. This is way too subtle. I think there should be a warning for this code.
18:29:55*deathstar quit (Quit: No Ping reply in 180 seconds.)
18:30:20dom96Although the two objects are the same size, so I wonder why it wouldn't work anyway
18:30:36FromGitter<Quelklef> should i close the issue report?
18:31:19*lastjedi joined #nim
18:33:08*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:33:15*lastjedi quit (Read error: Connection reset by peer)
18:34:37dom96nah
18:35:11*lastjedi joined #nim
18:37:23*Ven`` joined #nim
18:39:21*BitPuffin|osx quit (Ping timeout: 264 seconds)
18:41:56*miran quit (Quit: Konversation terminated!)
18:49:22*yglukhov joined #nim
18:51:10*lastjedi quit (Remote host closed the connection)
18:56:48*Jesin joined #nim
19:12:22*dandevelo joined #nim
19:12:31*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:17:31*dandevelo quit (Ping timeout: 265 seconds)
19:30:25*arecacea1 quit (Remote host closed the connection)
19:30:27*endragor quit (Remote host closed the connection)
19:30:43*arecacea1 joined #nim
19:33:36*lastjedi joined #nim
19:54:23*lastjedi quit (Remote host closed the connection)
20:01:58*nsf joined #nim
20:03:44*yglukhov quit (Remote host closed the connection)
20:15:19*MJCaley quit (Quit: MJCaley)
20:22:57*yglukhov joined #nim
20:30:55*endragor joined #nim
20:31:21*MJCaley joined #nim
20:35:47*endragor quit (Ping timeout: 252 seconds)
20:53:41*yglukhov quit (Remote host closed the connection)
20:54:28*vegax87 joined #nim
21:04:49*Vladar quit (Remote host closed the connection)
21:06:25*Ven`` joined #nim
21:07:57*MJCaley quit (Quit: MJCaley)
21:13:51*dandevelo joined #nim
21:17:31FromGitter<alehander42> @dom96 people in crystal community know perfectly well tiobe's positions are incorrect, it's similar with one indeed chart, where they had many "jobs" because of "crystal reports".
21:18:35*dandevelo quit (Ping timeout: 240 seconds)
21:19:38*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:20:50*Ven`` joined #nim
21:41:53*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:46:48*fvs left #nim ("ERC (IRC client for Emacs 25.3.1)")
22:24:37*yglukhov joined #nim
22:28:47*yglukhov quit (Ping timeout: 248 seconds)
22:32:41*ofelas joined #nim
22:37:39*xkapastel joined #nim
22:39:32*Trustable quit (Remote host closed the connection)
22:54:27*natrys quit (Quit: natrys)
23:12:40FromGitter<Quelklef> is there any kind of benefit to using `let` over var
23:12:59FromGitter<Quelklef> I've noticed I just always opt for `var`, even when the value really should be static
23:13:43FromGitter<Quelklef> is it gonna be worth it to teach myself to think a lil before writing let/var or should i just put the effort in when it actually counts
23:15:13*vlad1777d quit (Ping timeout: 248 seconds)
23:15:45*dandevelo joined #nim
23:18:35Yardanicoyes
23:18:41Yardanicolet helps you to understand your code
23:18:47Yardanicoor someone else' code]
23:18:58Yardanicoalso it's less error prone
23:19:07Yardanicobecause compiler checks if you're trying to write to let variable
23:20:28*dandevelo quit (Ping timeout: 268 seconds)
23:21:29dom96you should be using 'let' far more often than 'var'
23:21:43dom96most variables shouldn't need to be mutated
23:31:17*dandevelo joined #nim
23:32:22*endragor joined #nim
23:34:14*gokr joined #nim
23:34:20*gokr left #nim (#nim)
23:36:57*endragor quit (Ping timeout: 240 seconds)
23:42:11FromGitter<Quelklef> right
23:42:21FromGitter<Quelklef> ok time to habit build
23:50:42*Yardanico quit (Read error: Connection reset by peer)
23:55:33*marenz__ quit (Ping timeout: 264 seconds)
23:56:17*claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com)
23:58:43*nsf quit (Quit: WeeChat 2.0.1)