<< 03-05-2018 >>

00:07:14*athenot quit (Read error: Connection reset by peer)
00:10:54*athenot joined #nim
00:10:54*athenot quit (Remote host closed the connection)
00:11:10*athenot_ joined #nim
00:14:27*CodeVance2 quit (Ping timeout: 240 seconds)
00:16:02*CodeVance joined #nim
00:21:13*athenot_ quit (Read error: Connection reset by peer)
00:21:30*athenot joined #nim
00:22:01*lukas__ quit (Ping timeout: 256 seconds)
00:24:25*lukas__ joined #nim
00:28:13*athenot quit (Ping timeout: 265 seconds)
00:31:06*athenot joined #nim
00:50:19*CodeVance quit (Ping timeout: 260 seconds)
00:58:52*CodeVance joined #nim
01:01:31*g-glitch quit (Remote host closed the connection)
01:09:07*yglukhov joined #nim
01:13:35*yglukhov quit (Ping timeout: 256 seconds)
01:28:02*vivus quit (Quit: Leaving)
01:40:22*flaviu joined #nim
01:42:21flaviuI just wanted to drop in and complain that appveyor takes for-fucking-ever to run tests :P
01:44:11*CodeVance quit (Ping timeout: 256 seconds)
01:53:10*leorize quit (Read error: Connection reset by peer)
02:02:16*leorize joined #nim
02:36:02*athenot quit (Ping timeout: 276 seconds)
02:45:30FromGitter<Varriount> CodeVance: Well, for "dyamic" variables I would just use object variants.
02:45:59FromGitter<Varriount> Or have overloaded procedures deal with different types.
02:46:04FromGitter<Varriount> Or use generics.
03:02:41*dddddd quit (Remote host closed the connection)
03:19:53*endragor joined #nim
03:21:57*leorize quit (Ping timeout: 264 seconds)
03:23:42*leorize joined #nim
03:30:26*CodeVance joined #nim
03:42:10*lukas__ quit (Ping timeout: 268 seconds)
04:04:49*leorize quit (Ping timeout: 248 seconds)
04:08:45*lukas__ joined #nim
04:11:32*r3d9u11 joined #nim
04:15:29*lukas__ quit (Ping timeout: 256 seconds)
04:37:17*darithorn quit (Quit: Leaving)
04:39:48*girvo quit (Quit: Ping timeout (120 seconds))
04:40:14*girvo joined #nim
04:50:25*miran joined #nim
04:53:14*r3d9u11 quit (Remote host closed the connection)
05:06:42*bl4rk_ quit (Remote host closed the connection)
05:16:03*rokups joined #nim
05:18:28*leorize joined #nim
05:31:01leorizehi, can someone please resend the confirmation email for the account leorize on the Nim forum?
05:34:49*nsf joined #nim
05:36:23*xet7 joined #nim
05:41:59*CodeVance quit (Ping timeout: 260 seconds)
05:42:06*def- quit (Quit: -)
05:43:58*CodeVance joined #nim
05:44:55*def- joined #nim
05:46:32*tiorock joined #nim
05:46:32*tiorock quit (Changing host)
05:46:32*tiorock joined #nim
05:46:32*rockcavera quit (Killed (verne.freenode.net (Nickname regained by services)))
05:46:32*tiorock is now known as rockcavera
05:52:40*gangstacat quit (Remote host closed the connection)
05:53:10*gangstacat joined #nim
05:59:04*leorize quit (Ping timeout: 268 seconds)
06:11:06FromGitter<Varriount> Leorize: You may have to wait until some of the admins are awake. What happened to the original email?
06:12:13*miran quit (Ping timeout: 256 seconds)
06:12:37*leorize joined #nim
06:52:19*NimBot joined #nim
06:56:43FromGitter<gogolxdong> I'm issuing request from javascript websocket.
07:29:39FromGitter<gogolxdong> question is how to adjust javascript websocket headers.
07:37:08*PMunch joined #nim
07:41:51FromGitter<gogolxdong> never mind ,figured it out.
07:54:04FromGitter<gogolxdong> javascript websocket will cause ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeac01cb37eab7d0463554d]
07:54:19*noonien joined #nim
08:03:07*yglukhov joined #nim
08:04:51*sendell joined #nim
08:12:40FromGitter<gogolxdong> @PMunch , readAll doesn't read as I newFileStream of the protobuf data file.
08:17:33FromGitter<gogolxdong> strange , readFile() and FileStream.readAll doesn't read protobuf data file.
08:18:50FromGitter<gogolxdong> data file sizes 152.6KB
08:19:38*floppydh joined #nim
08:21:02PMunchHmm, that sounds like you're either doing something wrong, or that it's a bug with streams.
08:21:07PMunchCode and file?
08:22:29FromGitter<gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeac6c4b37eab7d04636cca]
08:24:12FromGitter<gogolxdong> data file has messy code in gist ,because of chinese character. https://gist.github.com/gogolxdong/cc9c4f63c63104af88f68a55ffdaed2a
08:25:39FromGitter<gogolxdong> It's not only stream , system.readFile() doesn't read neither.
08:31:01*yglukhov quit (Read error: Connection reset by peer)
08:31:36*yglukhov joined #nim
08:32:59*PMunch quit (Quit: Leaving)
08:34:14*PMunch joined #nim
08:37:32PMunchSeems to work fine for me
08:40:03PMunchgogolxdong: http://ix.io/19ip/
08:40:14FromGitter<survivorm> What's common error type for type mismatch?
08:40:52FromGitter<survivorm> And is there a way to add compile-time check to the template?
08:41:38FromGitter<survivorm> Like `+=` template check for `a[T] + b = c[T]`?
08:42:38PMunchNot quite sure what you want to do there
08:44:57*Vladar joined #nim
08:45:14FromGitter<survivorm> I want to perform a check on ⏎ ⏎ ```template `+=`*(a, b: typed)= ⏎ ## Mutator for a[T] if a + b = c[T] operation is declared``` ⏎ ⏎ Check a + b = c[T], where T = type of a [https://gitter.im/nim-lang/Nim?at=5aeacc19b982f08504ed792f]
08:47:22FromGitter<survivorm> It produces error otherwise, but not quite the exact one, in my opinion
08:47:53PMunchAh, you want to improve the error message
08:48:03*Sembei quit (Ping timeout: 256 seconds)
08:48:03*MyMind joined #nim
08:48:21PMunchWell, you could use "when compiles"
08:48:28PMunchBut that will take any error
08:49:17PMunchOr use "static: assert" to check the types yourself
08:51:38FromGitter<survivorm> How to get the type of expression?
08:52:12PMunchSilly little example: http://ix.io/19iv/
08:52:40PMunchWill throw the error like that on compile-time. But if you change 5.0 to 5 it doesn't throw an error and runs fine.
08:53:13PMunchOh, you don't need the typetraits module for that either
08:53:20PMunchSo you can remove the import
08:56:20PMunchIf you want to use the type name in the error message you can include it though: http://ix.io/19ix/
08:58:07FromGitter<survivorm> Oh, thanks, it's precisely that i needed
08:58:37PMunchNo problem :)
09:08:15*Ven`` joined #nim
09:08:26*Ven`` quit (Read error: Connection reset by peer)
09:09:30*Ven`` joined #nim
09:10:34FromGitter<survivorm> except last one doesn't work without typetraits...
09:10:58FromGitter<survivorm> And i'm not quite sure to add it as a dependency
09:16:30FromGitter<mratsim> typetraits is part of stdlib
09:16:45*def- quit (Quit: -)
09:16:46FromGitter<mratsim> you don’t need to add it as a dependency, just import it
09:18:34*def- joined #nim
09:27:24FromGitter<survivorm> Thanks
09:29:29*yglukhov quit (Read error: Connection reset by peer)
09:30:02*yglukhov joined #nim
09:47:27FromGitter<data-man> @PMunch: You don't want to add your binaryparse library to this list? https://github.com/dloss/binary-parsing
09:50:14PMunchUh, sure. I'm doing a little cleanup of the project and writing a bit about it right now. I'll add it when it's done :)
10:00:06*leorize quit (Ping timeout: 240 seconds)
10:02:44*xkapastel quit (Quit: Connection closed for inactivity)
10:16:17*sz0 quit (Quit: Connection closed for inactivity)
10:18:58*yglukhov_ joined #nim
10:21:27*yglukhov quit (Ping timeout: 240 seconds)
10:33:07*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:37:41PMunchgogolxdong, how is protobuf working for you now? Got it running?
10:48:14*rockcavera quit (Ping timeout: 260 seconds)
10:55:56FromGitter<alehander42> what is the best way to read async from a process ? osproc seems to be sync only
10:57:01PMunchFrom a process?
10:58:13dom96asynctools package
10:58:15dom96or use a thread
11:01:45FromGitter<alehander42> asynctools seems good thanks
11:04:21FromGitter<alehander42> ok it worked, I will use it
11:06:47*yglukhov_ quit (Ping timeout: 268 seconds)
11:10:25*yglukhov joined #nim
11:25:19*leorize joined #nim
11:28:51*crem quit (Ping timeout: 240 seconds)
11:31:54FromGitter<gogolxdong> @PMunch ,yes ,thanks for asking , stuck at the websocket sending.
11:31:57*crem joined #nim
11:34:04*rockcavera joined #nim
11:57:19PMunchVindaar, doing some functional programming in Nim?
11:57:29PMunchSaw you had stared my persistent vectors library :)
12:18:47planetis[m]Hey can you review this PR https://github.com/nim-lang/Nim/pull/7276
12:26:10FromGitter<krux02> planetis: why did you remove {.nosideeffect.}?
12:27:33planetis[m]because factTable in the previous commit was global
12:27:43planetis[m]think is I dont know if I need to make it global or have it as now
12:28:00planetis[m]*thing
12:31:34planetis[m]Thanks for the comments!
12:31:37*dddddd joined #nim
13:03:50*athenot joined #nim
13:10:12*FuntDobra joined #nim
13:10:25*SenasOzys quit (Ping timeout: 248 seconds)
13:11:03*endragor quit (Remote host closed the connection)
13:14:51*SenasOzys joined #nim
13:19:50PMunchHmm, is there a way to get the name of fields in a type?
13:32:02*endragor joined #nim
13:32:48*SenasOzys quit (Remote host closed the connection)
13:35:31*nixfreak joined #nim
13:36:27*endragor quit (Ping timeout: 240 seconds)
13:38:25*FuntDobra quit (Quit: Leaving)
13:38:26*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
13:38:57*nixfreak quit (Client Quit)
13:43:33FromGitter<xmonader> Any practical Idea for nim day 5?
13:45:32*xkapastel joined #nim
13:47:23FromGitter<Bennyelg> echoing jsonNode
13:52:55*athenot_ joined #nim
13:54:38*athenot quit (Ping timeout: 276 seconds)
13:57:42*rockcavera quit (Remote host closed the connection)
13:59:56PMunchYeah what is this nim day thing of yours xmonader?
14:00:00PMunchI'm enjoying it :)
14:02:29*leorize quit (Ping timeout: 260 seconds)
14:10:55*rockcavera joined #nim
14:14:42FromGitter<survivorm> @dom96 here?
14:15:30FromGitter<survivorm> then you said to move `+=` and other mutators to system, you've meant lib/system.nim?
14:15:44FromGitter<survivorm> or somethere else?
14:16:19dom96yes, but I talked with Araq about it and he thinks we'll need to solve this some other way
14:16:19*Vladar quit (Quit: Leaving)
14:16:24dom96so maybe an issue is better
14:16:39FromGitter<survivorm> And if so, then how to do with typetraits? system.nim have no imports, and i think for a reason
14:16:57*leorize joined #nim
14:17:03FromGitter<survivorm> then what will we do with my pr?
14:20:16dom96survivorm: your PR doesn't depend on these operators
14:20:25dom96We can figure out how to introduce them later
14:20:59FromGitter<survivorm> then what? Throw out the mutators commit?
14:22:23FromGitter<survivorm> Frankly, that was one of the points why i started the pr. Consistency. Times had plenty places where you have, for example, `+` and don't have `+=` and etc.
14:22:43FromGitter<survivorm> That was just infuriating me
14:24:21dom96I see. I think this should be a separate PR, we can add these procs as a stop-gap until we figure out a nicer way to introduce them. But I want us to have a discussion about the long-term of how these procs should be implemented, I don't want every single damn library to define twice as many operators to have `+=` and `+`.
14:24:43*miran joined #nim
14:32:17livcdhmm I am trying to run the mofuw example but when I visit the localhost:8080 it just crashes
14:33:50PMunchWhat example?
14:35:19livcdbasically this: https://github.com/2vg/mofuw/blob/master/tests/helloworld/minimal.nim
14:36:21PMunchOh, a new webserver thingy?
14:37:15livcdcan anyone check it out on windows nim 0.18.1
14:39:04PMunchI think my brain strained something reading that README :P
14:39:21PMunchI'm on linux so I can't help you :(
14:39:33livcdwell the guy is japanese :)
14:39:53PMunchThat makes sense
14:40:13PMunchI was more talking about the S T Y L E of his writing
14:42:43*yglukhov quit (Read error: Connection reset by peer)
14:43:17*yglukhov joined #nim
14:43:21livcdhmm bummer
14:46:11livcdI'll try on linux then.
14:51:57*leorize quit (Quit: WeeChat 2.1)
14:54:50*ieatnerds joined #nim
14:55:28*darithorn joined #nim
14:59:15PMunchYeees, join the dark side of the force
14:59:15dom96It's possible mofuw was never tested on Windows
14:59:29dom96I specifically ignored Windows for my httpbeast package
14:59:36PMunchWell he does have a build badge for Windows which says passed
14:59:52PMunchBut then it says that Windows is shitty two sentences below..
14:59:53livcdwell it compiles but that's it
14:59:56PMunchSo who knows
14:59:59livcdthat's a shame tbh
15:00:18dom96What's wrong with asynchttpserver? :)
15:01:34livcdnothing i just wanted to test this one out
15:14:19*PMunch quit (Quit: Leaving)
15:20:09*floppydh quit (Quit: WeeChat 2.1)
15:30:28*Trustable joined #nim
15:44:07*yglukhov_ joined #nim
15:46:49*yglukhov quit (Ping timeout: 256 seconds)
15:59:16FromGitter<data-man> It's correct. use s.len-1 or s.high
16:03:33miransomething is broken again, i don't see stisa's message on IRC
16:03:45FromGitter<Vindaar> @PMunch: nope, not exactly. Just really like the persistent vectors in Clojure and might want to play around with it :)
16:04:03miran(but i see vindaar's and data-man's messages)
16:04:06ieatnerds@miran: same...
16:04:43miranhmmm, maybe is the same thing in the gitter settings that has made mratsim's messages invisible
16:06:00*Vindaar joined #nim
16:06:23shashlickmiran: I don't see stisa in either gitter (via irc.gitter.com) or #nim
16:06:32shashlickbut i see it on gitter proper
16:06:50FromGitter<narimiran> hey @mratsim what does @stisa have to do so his messages are seen on IRC?
16:07:02VindaarLet's see if I have problems with irc too. Have noticed before though that sometimes @mratsim's messages don't pop up on gitter
16:07:23FromGitter<mratsim> Deactivate Gitter “next"
16:07:42VindaarI can see that :)
16:07:58FromGitter<mratsim> but I don’t see stisa’s messages on Gitter, when was it?
16:08:07FromGitter<Vindaar> 18:03
16:08:16miran17:35
16:08:27FromGitter<Vindaar> I meant the last one
16:08:38*icebattle joined #nim
16:08:52FromGitter<stisa> lets try, I deactivated next, is this visible?
16:08:55FromGitter<mratsim> yes
16:08:59miranyes!!
16:09:00FromGitter<mratsim> now I see your message
16:09:20FromGitter<stisa> great, thanks
16:09:47FromGitter<mratsim> I guess they still didn’t solve the issue from yesterday or the day before for their dev version
16:12:21FromGitter<mratsim> by the way @miran, regarding the slowness vs Python, Arraymancer is heavily impacted by this: https://github.com/nim-lang/Nim/issues/7743
16:13:28miranyeah, i've seen that you have raised it. hopefully this will be fixed in the near future so we can have our performance back
16:13:49FromGitter<mratsim> I think what’s happening is that when you have an object that contains a seq as a result value, the GC will run at the start of the proc, and then it will re-run again when I actually assign the `result=`. To avoid this I used {.noInit.} but now they are ignored to solve another bug.
16:14:19miranthat is way above my level of understanding nim :)
16:15:01FromGitter<mratsim> proc foo(): seq[int] = —> upon entering the proc, GC runs for the result
16:15:18FromGitter<mratsim> result = @[1, 2, 3] —> GC runs again to allocate the seq
16:15:37FromGitter<mratsim> (and maybe it runs again a 3rd time for the = assignment ?)
16:15:44miranouch
16:15:44FromGitter<krux02> is the GC really started for every allocation?
16:16:30FromGitter<krux02> @mratsim well soon seq shouldn't depend on the GC anymore at all.
16:16:31FromGitter<mratsim> it’s been a while since I hunted this kind of perf issue but, basically {.noInit.} allowed me to remove a bunch of GenericReset/Aux that are super slow
16:16:34FromGitter<krux02> (I think)
16:16:52miran"soon (TM)"? :)
16:16:59FromGitter<mratsim> Soon Valve Time
16:17:19FromGitter<Vindaar> now that's just mean :P
16:17:25FromGitter<krux02> λ3?
16:17:30FromGitter<mratsim> :P
16:18:02FromGitter<krux02> I always thought λ has an h like in halflife
16:18:04dom96mratsim: why does it run upon entering the proc?
16:18:08FromGitter<krux02> until I learned differently
16:19:15FromGitter<mratsim> @dom96, I’m not really sure, actually I think the GC is inserting some GenericReset where it can. I remember while debugging a slowness in my go playing bot, I had GenericResetAux call in a completely unrelated proc.
16:19:22FromGitter<mratsim> I turned it into an iterator to avoid that
16:20:01FromGitter<mratsim> https://github.com/mratsim/golem-prime/commit/a61b3d41051208ce22ff5c332c514dd3379b1fb1
16:23:24FromGitter<Vindaar> @mratsim would you be willing to someday write some notes about how you do that kind of performance profiling? Or point me the right direction if there's anything out there?
16:24:05FromGitter<mratsim> Apple Instruments —> Time profiler. It gives you timing, details on each proc, the call counts, the inline assembly.
16:24:51FromGitter<mratsim> I should write a blog about that yes
16:24:57FromGitter<mratsim> I actually should code my blog :P
16:25:33FromGitter<mratsim> example of the high level view: https://github.com/mratsim/Arraymancer/issues/221, and the assembly view when you click on any proc: https://github.com/status-im/nim-stint/issues/10
16:26:18FromGitter<Vindaar> that would be sweet! ⏎ Ahh, I remember seeing that screenshot before. I guess I need to find a Linux tool providing the same then
16:27:19FromGitter<mratsim> gcc -S might help but the ASM still has a lot of useless fluff, also `perf` can give you cache misses and instruction per cycle
16:27:28FromGitter<mratsim> and maybe can be more instrumentalized.
16:28:59FromGitter<Vindaar> yeah, used `perf` at some point in the past, but didn't spend enough time with it to get much use out of it. Unfortunately performance profiling is not *needed* for me, so I can hardly justify time spent on it, although I like doing it :/
16:29:12*FromDiscord quit (Remote host closed the connection)
16:29:51dom96IIRC somebody wrote an article explaining how to use Apple Instruments with Nim
16:29:53*FromDiscord joined #nim
16:30:04dom96maybe I was dreaming though
16:30:46*sendell quit (Remote host closed the connection)
16:38:18*lukas_ joined #nim
16:39:06*vivus joined #nim
16:40:23*Eyess is now known as SunDwarf
16:41:35*kier quit (Ping timeout: 240 seconds)
16:41:39*Ven`` joined #nim
16:43:21*Ven`` quit (Read error: Connection reset by peer)
16:45:41*kier joined #nim
16:50:13*jrbrt joined #nim
16:52:45shashlickdo we want github issue updates in here?
16:52:47*thor77_ is now known as thor77
16:58:03FromGitter<data-man> @stisa: Done #7763
16:58:08FromGitter<data-man> Thanks!
17:01:21*xet7 quit (Ping timeout: 248 seconds)
17:12:09*xet7 joined #nim
17:15:00*xkapastel quit (Quit: Connection closed for inactivity)
17:20:35*brainproxy quit (Quit: WeeChat 2.1)
17:25:27dom96shashlick: nah, too noisy
17:30:27*lukas_ quit (Ping timeout: 240 seconds)
17:33:55Araqplease
17:34:07Araqdom96: I want them here
17:34:16Araqpeople need to be exposed to the action
17:35:06mirancan't we just click "watch" on the github repo and be exposed to the action?
17:37:00ieatnerdsYeah, I don't see much reason to have the updates pop up on here. Already quite a few ways to keep an eye on them without cluttering a text chat.
17:37:41FromGitter<krux02> I also don't like issue updates here
17:38:31FromGitter<krux02> it is like those online offline messages in IRC, you just have to work very hard to get them finally be filtered out.
17:38:43FromGitter<krux02> but nobody cares
17:39:25FromGitter<krux02> but maybe I am wrong, issues are not that many as people coming/leaving
17:41:15ieatnerdsI doubt any of us have access to irc without access to email updates for the issues or other notifications from github. just seems like it might be excessive.
17:43:25Araqok, never mind then
17:44:18*PMunch joined #nim
17:48:51FromGitter<data-man> I don't use receiving github notifications to the mail.
17:51:12FromGitter<krux02> @data-man you get notifications to the mail on your own issues. And that is quite fine to me.
17:52:36FromGitter<data-man> No, I don't get notifications. I turned off this option.
17:54:30FromGitter<alehander42> what would be cool would be some kind of updates in the right panel (under people in gitter), one can see it in the Julia room
17:54:40FromGitter<alehander42> it doesn't mess with the chat and it's easily hide-able
17:54:44FromGitter<alehander42> but that's gitter-only
17:55:00ieatnerdscould just have another room specifically for issue updates.
17:55:37FromGitter<alehander42> I meant the activity tab in https://gitter.im/JuliaLang/julia
17:55:59FromGitter<alehander42> (they use it for SO, but it can be easily adapted for other stuff)
18:08:32*lukas_ joined #nim
18:12:25*Vindaar left #nim ("ERC (IRC client for Emacs 26.0.50.2)")
18:20:32FromGitter<krux02> I think IRC is too important to people here
18:21:55shashlickwe could always have a separate channel for that
18:22:23shashlicklike #nimbuild which isn't really used looks like
18:23:58shashlickin the last 3 hours, I have 7 messages
18:29:50FromGitter<Vindaar> just created a PR to `nim-mode` to add the `func` keyword https://github.com/nim-lang/nim-mode/pull/194
18:30:11FromGitter<Vindaar> (after seeing @mratsim using it all the time already, haha)
18:47:05*lukas_ quit (Ping timeout: 240 seconds)
18:50:55*lukas_ joined #nim
18:56:28*Vladar joined #nim
18:58:31livcdso i cant use choosenim on x64 windows
18:58:59miranlivcd: yeah, it's a bummer, and a problem i faced recently
18:59:11dom96Huh? You totally can
18:59:22mirannim-64bit
18:59:23dom96You'll get 32bit Nim, but why is that a big deal?
18:59:44livcdi do not want 32bit nim!
19:00:09miranlivcd: install from https://nim-lang.org/install_windows.html
19:00:27livcdi will!
19:01:09dom96why not?
19:01:20shashlickdom96: what's the main limitation in choosenim for x64? anything architectural or just implementation + test
19:02:31*xkapastel joined #nim
19:02:33FromGitter<krux02> choosenim can't do 64 bit? what?
19:02:35dom96Just implementation. Also a good plan of how the CLI should work for choosing a specific cpu arch
19:02:46mirankrux02: on windows
19:02:47dom96choosenim --cpu:amd64 stable?
19:02:51FromGitter<krux02> isn't 32 bit CPU almost non-existent
19:02:59dom96choosenim cpu amd64; choosenim stable?
19:03:15dom96krux02: Windows supports 32bit apps for backwards compatibility
19:03:22shashlicki think x64 OS should install x64 by default, unless user says 32bit
19:03:36livcdso now i am reinstalling nim...ill report on experience
19:03:36shashlickobviously installing 64bit on 32bit OS should not be allowed at all
19:03:43dom96shashlick: Okay, that's what I thought. Good.
19:04:09shashlickis there any compiler detection code in choosenim?
19:04:34miranlivcd: for me it was surprisingly simple and problem-free
19:04:38dom96I guess the architecture of Nim doesn't really matter, rather it's about the C compiler that is installed.
19:04:49livcdmiran: choosenim worked flawlessly on linux
19:04:51FromGitter<data-man> And 32bit apps on Windows have memory limitations.
19:05:02livcdso i have an existing mingw64 installed
19:05:08miranlivcd: yeah, for me too. linux at home, win at work....
19:05:09livcdnow unziping Nim
19:05:27*darithorn quit (Ping timeout: 240 seconds)
19:05:29dom96oh yeah, if you have an existing mingw64 install then choosenim will fail
19:06:10dom96FWIW when I used Nim on Windows I always compiled software for 32bit because finding 64bit DLLs for things was a nightmare
19:06:35shashlickI do the same thing - I just use 32bit since none of my progs need 64bit plus easier to distribute one binary
19:07:13*darithorn joined #nim
19:07:16shashlicknow I don't know if 64-bit compiled program is faster or whatever but i'm not trying to break any world records either
19:07:53shashlickso dom96, if choosenim is downloading source and compiling, why does it care what the arch is?
19:08:04AraqI use Win64 all the time without problems fwiw
19:08:05shashlickassuming a compiler is already present, it should simply detect and use it
19:08:30livcdnim.exe is not in your PATH...buuut it is...
19:08:32shashlicki asked this question on the issue tracker as well but couldn't figure out the response
19:08:47shashlicklivcd: using finish.exe?
19:08:49dom96choosenim doesn't know what arch the C compiler in your PATH targets
19:09:20livcdshashlick: yes
19:09:27*lukas_ quit (Ping timeout: 240 seconds)
19:09:43shashlickokay so if you compile csources with a 64-bit compiler, you just get a 64-bit nim right? why does choosenim then not support a 64-bit setup?
19:09:51shashlicklivcd: i fixed some bugs in finish recently
19:10:03livcddoing koch nimble
19:11:00dom96shashlick: because I decided to simply go with 32bit as it always worked for me
19:11:44dom9632bit vs 64bit is just a case of running build.bat vs. build64.bat and having a C compiler with the correct architecture in your PATH
19:11:55FromGitter<data-man> choosenim could parse the output of gcc -v
19:12:33livcdok smooth installation
19:12:39shashlickthat code's already in finish.exe to detect compiler
19:13:22FromGitter<data-man> Or gcc -dumpmachine
19:13:30shashlickaah - that's the key - run build.bat vs build64.bat
19:13:54livcdnvm i thought the problem for the mofuw thing was 0.18.1 Nim
19:14:07livcdthat's why I installed 0.18.0 but it still crashes
19:14:43Araqversions come and go, crashes persist
19:14:56shashlickso looking at build.bat and build64.bat, there's no difference besides 1_1 vs 1_2
19:15:27Araqquality of Nim -- it's reliably unreliable throughout the decades
19:15:28livcdso what do i do to check where it crashes ?
19:16:06shashlickso why are there two batch files? what's the difference between 1_1 and 1_2 in csources
19:16:12Araqlivcd: gdb it?
19:16:28Araqdata-man: please read finish.nim
19:16:36Araqwhat you suggest is unreliable
19:17:09shashlickif we could merge the two bat files into one like build.sh, it will be great
19:17:15Araqshashlick: 1_2 is the 64bit build
19:17:45Araq1_1 is the 32 bit build
19:18:31shashlickokay - i'll see if we can merge the two into a single batch file - that way choosenim will just work on 64-bit
19:18:35Araqdunno how to detect this, it doesn't depend on the OS
19:18:47Araqbut on the installed mingw.
19:19:18Araqyou can ask finish.exe in the bat file...
19:19:27livcdI never used gdb doh
19:19:33dom96noooo
19:19:33FromGitter<data-man> @Araq: I already suggested that everyone use MSYS2
19:19:47dom96This is a conscious choice for the user IMO
19:19:54AraqMSYS2 is crap.
19:19:55livcdfrom the quick tutorial i just read I get this: https://paste.fedoraproject.org/paste/eOQg7kPIe8tomLFQVUlQTQ
19:20:18shashlickwell, so i think installing a compiler should be separate
19:20:23dom96At least 4% of Windows users still use 32bit Windows
19:20:29shashlicknim installer should detect, not install
19:20:47Araqthe Nim installer is called "finish.exe" and it does detect it.
19:20:48dom96So I'd rather distribute my binaries as 32bit exes
19:21:00shashlickuser could use mingw, msys, vc++, tcc or whatever
19:21:01mirandom96: ...and they can install 32bit version from nim main page
19:21:01Araqthe installation process also does NOT involve build(64).bat
19:21:13shashlickAraq: in choosenim, it does
19:21:23miranother 96% users can choose either official install or choosenim 64bit
19:21:26shashlickcause it installs from source today
19:21:38shashlickthat's another feature that needs to come - install the binary already posted
19:22:05Araqwell from source builds are for people who know more things
19:22:08dom96oh right, forgot we distribute binaries for Windows
19:22:23*yglukhov_ quit (Read error: Connection reset by peer)
19:22:28Araqnot sure what choosenim should do.
19:22:50shashlickfeature list: finish GUI, finish independence from binary package, choosenim 64-bit, choosenim binary install, finish use choosenim
19:22:59*yglukhov joined #nim
19:23:08livcdwhen I try to compile with --debugger:on i get this https://paste.fedoraproject.org/paste/-nHMJ1sniGI2FHpBVVNLmQ
19:23:20Araqcompile with --debugger:native
19:23:29livcdoops
19:23:48FromGitter<xmonader> https://github.com/xmonader/nim-configparser day 5: reviews are appreciated
19:23:49planetis[m]Sup, Araq: what is needed for https://github.com/nim-lang/Nim/pull/7276 to be merged?
19:25:23Araquuhh wait 2 weeks until my mood gets better?
19:25:24dom96xmonader: Please follow NEP: 2 spaces, no space before ':', 'type' on its own line.
19:26:13FromGitter<xmonader> @dom96 thanks! I think i got spoiled by auto formatters on save :)
19:26:34dom96xmonader: Also types should be capitalised :)
19:26:47planetis[m]whats wrong with your mood ? :p
19:27:04dom96xmonader: cool tutorial though. You need to create a website that lists all of your days :)
19:27:23FromGitter<xmonader> @dom96 capitalized as in Ini not INI?
19:27:31miranIni
19:27:48FromGitter<xmonader> @dom96 I'm considering though, or even donating them to nim-lang.org if they're good enough
19:27:55dom96Yes, but also `parserState`
19:28:03shashlickaraq, dom96: of my feature list in my last message, what's the priority?
19:28:15shashlicki'm thinking choosenim 64-bit
19:28:24shashlickfollowed by choosenim binary install
19:28:24FromGitter<xmonader> ah of course you're right will update
19:28:25Araqshashlick: fix that bloody website
19:28:30FromGitter<data-man> @Araq: What can improve your mood? It's a pity that there is no Araq'sMood repository :(
19:28:35shashlickaraq: oh ya, install instructions
19:28:48shashlickya I'll fix that, only able to do it at home since i need jekyll on my linux box
19:28:51Araqthat's prio no 1, nobody understands it
19:28:56shashlickokay done
19:29:17dom96What's wrong with the website?
19:29:21dom96shashlick: https://github.com/dom96/choosenim/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Araq%27s+wishlist%22
19:29:45Araqdom96: the installation instructions for Windows are misleading to the point that Windows users don't want to install it
19:29:49shashlicksuper confusing - shows finish is optional, asks to install mingw when finish can do that for you, etc.
19:30:03*rokups quit (Quit: Connection closed for inactivity)
19:30:14shashlickthe windows dlls, are not required if doing binary download
19:30:23PMunchNice little parser tutorial there xmonader
19:30:29shashlickthey are only needed if you build from source I think
19:30:34shashlickdoes choosenim download those dlls?
19:30:40dom96yes
19:30:53shashlickcan I also mention choosenim on this website?
19:30:59shashlickas another way to install
19:31:11dom96shashlick: Not until that wishlist is taken care of
19:31:26FromGitter<xmonader> @PMunch thanks! reviews are pretty important so i don't mislead ppl reading, as i'm not nim expert myself
19:32:33PMunchxmonader, what is that link in the "How to" section doing there?
19:32:38PMunchIt seems a bit out of place
19:32:58Araqmy mood is at an all-time low, cannot go jogging, hunting some bizarre memory corruptions
19:33:01*lukas__ joined #nim
19:33:23shashlickokay i'll work on those dom96
19:33:38*athenot_ quit (Remote host closed the connection)
19:33:48FromGitter<xmonader> @PMunch: the page supposed to be example section on how to use the parser and a how to section a `tutorial`
19:33:49dom96shashlick: great :)
19:34:09livcdhmm so it's this: https://paste.fedoraproject.org/paste/k2Y8Va4OYLhjZAHhPln29A
19:34:17PMunchAraq, we all appreciate your hard work. But your health (mental and otherwise) is more important! If you're that bummed out go for a jog, you might even have a eureka moment :)
19:34:22*athenot joined #nim
19:34:24miranxmonader: "Simple toString proc using * operator" - this should be "... using $ operator", right?
19:34:53shashlickdom96: one other thing, does choosenim carry some binaries within it? dlls, etc?
19:35:03FromGitter<xmonader> you're right @miran my bad
19:35:06PMunchxmonader, yeah I know but the sentence is about regexes, so I'm not sure what a link to pythons cfgparser is doing there :P
19:35:08AraqPMunch: can't, I have a ligament rupture
19:35:13PMunchAh :P
19:35:18PMunchWell that's a bummer
19:35:48dom96Araq: You should get a rowing machine and do some rowing when you can't do jogging :)
19:36:00FromGitter<xmonader> @PmunchI added that link as an example of parsing with regex, in python maybe i should remove it all together though
19:37:15PMunchOr go to a pool, aren't those good for such things?
19:38:05PMunchxmonader, you could just change it to "You can certainly use regular expressions, like pythons configparser, but we will go for a simpler approach here"
19:38:13PMunchJust makes the sentence a bit more cohesive
19:38:16Araqthe only sport I could do is lifting some barbells
19:38:41PMunchWell that sucks
19:39:02FromGitter<xmonader> @PMunch (y)
19:39:18Araqyeah. but it will be over in 2 weeks
19:39:53PMunchWell that's good, at least it's not something that will take a really long time to heal, like a broken leg or something
19:40:49livcduh well this is a bummer
19:41:31*rockcavera quit (Remote host closed the connection)
19:41:40PMunch"ini is the object to be returned after parsing", normally in Nim we use the result implicit variable for that
19:45:07PMunchI'm liking these daily small projects of yours by the way, very neat
19:50:47FromGitter<data-man> Something's wrong with AppVeyor again
19:50:59*jjido joined #nim
19:51:45planetis[m]Araq: injury?
19:52:19Araqplanetis[m]: yeah...
19:52:45FromGitter<xmonader> @Pmunch @dom96 I updated the the tutorial with ur feedback, except for the space count can't set it to nim files only in vscode
19:52:49planetis[m]Well no offence jogging sucks
19:53:10miranxmonader: yes you can
19:53:30planetis[m]Have you tried swimming, or biking
19:53:53miran"[nim]": {"editor.tabSize": 2}
19:53:55FromGitter<xmonader> @Pmunch oh thanks! I hope it helps new comers. they're basically things i did in my job or excited about and familiar with so i try to implement them in nim ^_^
19:54:51Araqplanetis[m]: don't be silly, swimming and biking suck, jogging rules
19:55:12dom96Cycling is awesome
19:55:31FromGitter<data-man> chess, checkers, go or dominoes is awesome :)
19:55:42miranbackgammon is awesome!
19:55:58Araqchlorine or saddles, no thanks
19:57:36FromGitter<xmonader> @miran do i need a formatter? is there any ? ⏎ I added ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeb69b01eddba3d04ce1a4e]
19:58:13AraqValve is working on a Nim formatter
19:58:26livcdValve ?
19:58:33miranxmonader: i have it in my settings as i have typed it here, and it works
19:58:45FromGitter<data-man> Yesterday I played badminton for several hours, and today everything hurts. Oh, yes, there were dances. :)
19:59:00Araqyeah, it's confirmed.
19:59:12FromGitter<xmonader> I see, thank you nevertheless :)
19:59:13Araqthey can't develop Half Life 3 without one.
19:59:33FromGitter<narimiran> @xmonader this is copypasted from my user settings: ⏎ ⏎ ```"[nim]": { ⏎ "editor.insertSpaces": true, ⏎ "editor.tabSize": 2, ⏎ },``` [https://gitter.im/nim-lang/Nim?at=5aeb6a2540f24c43044e87ef]
20:00:27FromGitter<narimiran> don't forget to save that file (if you don't have autosave), and the next time you're working on .nim file, pressing Tab should give you two spaces
20:01:39FromGitter<xmonader> @narimiran I think i know the problem, i don't have tabs in my file they're all converted to 4 spaces already i guess
20:01:59livcdis this the infamous german humor ? :P
20:02:29miranwell, the next time you press tab it will be converted to 2 spaces. it doesn't magically convert 4 spaces to 2 spaces
20:02:46planetis[m]Then you get what you signed for :p
20:02:58miranyou can use `ctrl+[` to de-indent your code
20:03:05*lukas__ quit (Ping timeout: 240 seconds)
20:03:39FromGitter<xmonader> yup thanks a lot ^_^
20:04:42livcdthere's haxe summit in Seattle atm
20:08:08*brainproxy joined #nim
20:15:17*Vladar quit (Quit: Leaving)
20:19:02FromGitter<krux02> I have the impression I only see half the conversation
20:21:00FromGitter<data-man> You need to turn around at the proper angle. Use quaternions.
20:21:34miranbut it is for younger than 24, you know
20:23:04FromGitter<mratsim> wow this is pretty: https://github.com/emekoi/cactus
20:23:44FromGitter<mratsim> ah I thought this was in Nim as the guy as a Nim library
20:23:49FromGitter<mratsim> > _>
20:23:56livcdThis looks like a Nim introduction in Japanese https://2vg.github.io/Nim-World/
20:27:10PMunchdata-man, dom96, now Nim has an article on file handling: https://peterme.net/handling-files-in-nim.html
20:28:04dom96PMunch: Nice!
20:30:25*miran quit (Ping timeout: 268 seconds)
20:35:15*rockcavera joined #nim
20:36:02FromGitter<data-man> @PMunch: Thanks! I'm thinking about adding MemoryMappedStream.
20:37:46PMunchOooh, that would be nice
20:38:10PMunchOh well, I'm off to bed
20:38:11*PMunch quit (Quit: leaving)
20:38:48FromGitter<data-man> But I don't know how well this will work in Windows. :(
20:48:31*yglukhov quit (Remote host closed the connection)
20:50:42*CodeVance quit (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org)
20:54:34*CodeVance joined #nim
20:58:49*athenot quit (Read error: Connection reset by peer)
20:59:03*athenot_ joined #nim
20:59:53FromGitter<Varriount> Windows has memory maps
21:01:25CodeVance>
21:01:27CodeVance?
21:02:06CodeVanceoh
21:03:21*athenot_ quit (Ping timeout: 240 seconds)
21:03:47*yglukhov joined #nim
21:06:05*ieatnerds quit (Ping timeout: 240 seconds)
21:06:53FromGitter<data-man> AFAIR, in Windows zero-length file can't be mapped. E.g. libmdbx and lmdb heavily used memory mapping, but use "hacking" techniques with the importing of some functions from ntdll.
21:07:06FromGitter<xmonader> ```code paste, see link``` ⏎ ⏎ here i get undefined el in expr `el > 2` any idea why? [https://gitter.im/nim-lang/Nim?at=5aeb79f900dc4888049268f7]
21:10:51FromGitter<xmonader> apparently that's why i'm looking for https://github.com/nim-lang/Nim/blob/master/lib/pure/future.nim#L126, thought i could do it with templates
21:11:53CodeVancexmonader make it a proc
21:12:24FromGitter<xmonader> @codevance yeah it works with proc already ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeb7b38b37eab7d0466383b]
21:12:27FromGitter<Vindaar> @xmonader: with a slight change you can do it: ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ Your `el` variable needs to be injected into the calling scope for `el > 2` to make sense [https://gitter.im/nim-lang/Nim?at=5aeb7b3a6d98e53e044df473]
21:12:59*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:13:09FromGitter<xmonader> @Vindaar nice!! thanks a ton
21:13:53FromGitter<Vindaar> glad I could help :)
21:14:02FromGitter<CodeVance> That's initeresting
21:15:45*jjido joined #nim
21:16:18FromGitter<xmonader> i tried to use .inject pargma but couldn't find the correct way i was like ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeb7c2100dc488804926fdd]
21:17:00FromGitter<Vindaar> well, you can simplify it slightly I just realized: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeb7c4c00dc488804927242]
21:18:12FromGitter<Vindaar> and a tip: if you use the code blocks here, just add nim right after the three ` to get proper higlighting
21:19:05FromGitter<xmonader> shouldn't it be converted to after processign into ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeb7cc900dc488804927400]
21:19:52*leru joined #nim
21:21:19FromGitter<xmonader> ```code paste, see link``` ⏎ ⏎ this makes sense to me but doesn't work don't know why cond {.inject.} doesn't get replaced by `el>3` [https://gitter.im/nim-lang/Nim?at=5aeb7d4e5cf0b8300454a533]
21:21:29FromGitter<Vindaar> the inject is used to mark the variable in front of it such that it is known in the calling scope. Hence you can use `el` in the untyped `cond`. So that `cond` can simply be a statement which is allowed to contain the variable `el`
21:22:21FromGitter<Vindaar> The thing is that injecting is *upwards* and not *downwards* so to say
21:22:30FromGitter<xmonader> @Vindaar according to u the prev snippet should be valid because cond includes a variable el that's already defined in the el
21:22:44FromGitter<xmonader> oh that's tricky!!
21:23:33FromGitter<Vindaar> so yeah, your last snippet is valid, but it doesn't do what you were expecting
21:23:57FromGitter<Vindaar> oh, nevermind
21:24:07FromGitter<Vindaar> misread that snippet :)
21:26:35*jrbrt quit (Quit: jrbrt)
21:29:36*sz0 joined #nim
21:42:05*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:44:22*nsf quit (Quit: WeeChat 2.0.1)
21:47:57FromGitter<Varriount> Araq: It appears that I will be writing an interpreter in Nim for a summer university project. :D
21:51:36CodeVanceinterpreter for what?
21:51:50FromGitter<Varriount> Probably some made up language.
21:52:11FromGitter<Varriount> I mean, I'm writing an interpreter for a small programming language that I will be designing.
21:52:53CodeVancehave you seen https://min-lang.org/?
21:53:48CodeVanceor is the point to design your own?
21:54:47FromGitter<Varriount> The point is to design my own
21:55:27FromGitter<Varriount> The course I'm taking is an "independent study course", which either means writing a paper, or doing a project.
21:56:53FromGitter<Varriount> Though, a stack-oriented programming language seems like a good idea, as it's probably easier to implement.
21:57:13CodeVanceNah I was just wanting to show you a interesting link
21:57:22CodeVanceShowing "it has been done"
21:57:53CodeVanceif dsl counted nim would certainly be clear leader in this area
21:58:03*jrbrt joined #nim
22:04:00FromGitter<sherjilozair> If int and float are caster to cint and cfloat implicitly, why isn't string casted to cstring implicitly?
22:04:12FromGitter<Varriount> I believe it is.
22:04:34FromGitter<Varriount> Also, int and float are not casted to cint and cfloat implicitly.
22:04:45FromGitter<Varriount> Well, not on 64-bit platforms, anyway
22:06:19dom96IIRC cstring->string is implicit, the other way around isn't
22:06:37FromGitter<sherjilozair> If I'm wrapping a C library, I have to do a lot of type-casting for it to work. Is there a way to automatically specify which types should be casted to what?
22:08:21FromGitter<sherjilozair> Yeah int doesn't cast to cint implicitly, but if I wrap a C function and use int instead of cint in the declaration, that somehow works, but the same thing doesn't work for strings.
22:09:04FromGitter<sherjilozair> This works: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeb888003cafa797b255abd]
22:09:18FromGitter<sherjilozair> This doesn't work: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5aeb888dda323a7c04f58628]
22:09:52FromGitter<sherjilozair> But passing a `string` to `InitWindow`works.
22:10:17FromGitter<sherjilozair> So it's not clear what's happening where.
22:10:33dom96cstring is a pointer to an array of chars
22:10:41dom96string is a struct containing a cstring + len field
22:10:46dom96This is why they are distinct
22:14:19FromGitter<sherjilozair> @dom96 Is there a way generate bindings automatically by parsing C headers?
22:14:22FromGitter<Varriount> @sherjilozair I wouldn't use `int` in C functions. In Nim the `int` type is roughly equivalent to `size_t`
22:14:40dom96sherjilozair: yes, c2nim
22:14:46FromGitter<Varriount> @sherjilozair https://github.com/nim-lang/c2nim and https://github.com/genotrance/nimgen
22:16:48FromGitter<Varriount> @sherjilozair Also, what are you planning to do if a Nim float/int can't be converted to a cfloat/cint without data loss?
22:16:50FromGitter<xmonader> How is strtabs compared to Table[string, string]? someone suggested i use strtabs instead, but I also can't find delete function on that?
22:17:41FromGitter<sherjilozair> @Varriount loss of precision is okay for me, but I understand why it's not being done automatically.
22:18:08FromGitter<Varriount> Integers will overflow too. :/
22:18:40FromGitter<sherjilozair> Don't need larger than 2**32 integers as well. :D
22:18:50FromGitter<sherjilozair> Do I have to feed preprocessed header to c2nim?
22:20:33FromGitter<Varriount> Not entirely preprocessed, but C2Nim can't parse the entirety of the C language.
22:20:58FromGitter<Varriount> I'd recommend NimGen, it's a layer on top of C2Nim that makes translation of larger libraries easier.
22:21:14dom96xmonader: just use Table[string, string], strtabs has some small performance gains and ability to use style insensitive keys
22:21:55FromGitter<xmonader> and no deletes @dom96 too?
22:22:14dom96dunno
22:23:02FromGitter<sherjilozair> @Varriount I can't figure out how to use NimGen. It's not clear where to specify the file which must be converted.
22:23:06FromGitter<xmonader> ok i'll stick to table[string, string] thanks
22:23:19FromGitter<sherjilozair> @Varriount There are no examples.
22:23:24FromGitter<mratsim> @sherjilozair this works: `let a: cstring = “Foo”`
22:24:03FromGitter<mratsim> also here is an actual example of nimgen with the result: https://github.com/numforge/nim-clblast/blob/master/clblast_nimgen.cfg
22:27:42*Trustable quit (Remote host closed the connection)
22:36:41*darithorn quit (Quit: Leaving)
22:38:40*jrbrt quit (Quit: jrbrt)
22:46:54FromGitter<sherjilozair> Thanks @mratsim. This example was useful.
22:47:11FromGitter<mratsim> you’re welcome
22:47:37FromGitter<sherjilozair> I think the nimcache folder that's created should be hidden. Doing it in linux and macos is easy. Just need to add a period, i.e. `.nimcache`.
22:47:44FromGitter<sherjilozair> Any reason why it's not hidden right now?
22:48:27FromGitter<mratsim> I think there was some proposition to put it into /tmp/username
22:49:00FromGitter<mratsim> it was also one of my main annoyance when I came to Nim at first, to easy to litter your folders with nimcache everywhere
22:49:18FromGitter<mratsim> but now, I look at the generated C/C++ code quite often so ...
22:49:55FromGitter<sherjilozair> Most regular users of Nim won't. And I don't think it should go to `/tmp`. It can remain in the same folder but hidden. This is what Python does with `__pycache__`.
22:50:38FromGitter<sherjilozair> Python used to generate pyc files, until the users rebelled, and now we there's `__pycache__`. I think changing from `nimcache` to `.nimcache` would be a really simple change.
22:53:24*leru quit (Quit: Leaving)
22:55:41dom96Araq really won't like that :)
22:55:54dom96He wants me to change ~/.nimble to ~/nimble
22:57:01FromGitter<sherjilozair> That's crazy. It's better to follow convention on such matters than be "innovative".
22:57:18FromGitter<sherjilozair> Does Araq specify any reasons for this preference?
22:57:53dom96Crazy is a bit of an exaggeration.
22:58:14FromGitter<mratsim> “Be explicit and don’t hide things” I suppose
22:58:56dom96He gives good reason: he accesses ~/nimble often and it contains many files (and is thus large) and so should not be hidden.
22:59:56FromGitter<sherjilozair> pip uses `~/.local`, and it's pretty large too.
23:01:09FromGitter<sherjilozair> Should regular users be accessing nimble? That compiler devs access it often doesn't seem like good enough reason.
23:01:38FromGitter<mratsim> nimble should stay ~/.nimble
23:02:07FromGitter<sherjilozair> Another principle to keep in mind for UX design is "Don't surprise users.", and putting a nimcache directory and binaries in their folder qualifies as very surprising.
23:02:10FromGitter<mratsim> though when playing with Rust I don’t really like when dustup/cargo stores 700MB of stuff in there
23:02:27FromGitter<mratsim> dustup-> rustup
23:06:00dom96sherjilozair: I agree that it should stay ~/.nimble but it's important to realise if we never surprise users then we will never innovate anywhere.
23:07:09dom96Regular users might indeed access Nimble. You might wish to fix a package that's broken for example.
23:07:57FromGitter<sherjilozair> What about nimcache? How often do you think they should be accessing nimcache?
23:08:25dom96Probably less often
23:12:12dom96ugh, I really wish Github's search was better
23:13:39FromGitter<mratsim> github search is awful ...
23:14:15dom96Thankfully Google works better: https://irclogs.nim-lang.org/27-04-2017.html#18:21:36
23:15:53dom96I need to create a markov chain based on Nim's IRC logs
23:33:16FromGitter<gogolxdong> @PMunch are you around?
23:35:49FromGitter<sherjilozair> @dom96 If you have a cuda-capable GPU you could also try char-rnn: https://github.com/sherjilozair/char-rnn-tensorflow
23:36:26dom96Cool. Just got a MacBook right now though, no idea if it even supports CUDA
23:38:12FromGitter<Varriount> OSX is notorious for being out-of-date with regard to opengl
23:40:09FromGitter<mratsim> nop, Nvidia and Apple are not friends anymore
23:40:14FromGitter<sherjilozair> @dom96 I see. You could try training with the CPU. Would be slower but if your dataset is small, might still work.
23:41:50FromGitter<mratsim> by the way if it helps I added PCA today to Arraymancer
23:43:59FromGitter<mratsim> if you have some suggestion I can implement them
23:44:09FromGitter<mratsim> going to sleep now
23:51:48*Pisuke joined #nim
23:52:01*MyMind quit (Ping timeout: 248 seconds)
23:53:16*noonien quit (Quit: Connection closed for inactivity)
23:58:29FromGitter<sherjilozair> Can nimgen/c2nim include comments from the original header? How do I enable this?