<< 06-05-2021 >>

00:08:03FromDiscord<retkid> Hey guys what vsc highlighter do you use
00:08:09FromDiscord<retkid> I I
00:09:13FromDiscord<retkid> I used one of the top ones and I think it didn’t have function highlighting so it was uggy
00:10:06FromDiscord<ajusa> is it possible for me to choosenim a fork of Nim? I want to try out https://github.com/nim-lang/Nim/pull/17373, what is the easiest way for me to do that?
00:11:05FromDiscord<ElegantBeef> you can manually clone it then do `choosenim path/to/branch`
00:11:53*xet7 joined #nim
00:13:13FromDiscord<ElegantBeef> Worth noting since it's just libraries you can just copy them to a directory and use them in there until stable
00:13:53FromDiscord<ajusa> yeah, but I think that it depends on a few modules that are in devel. I'll try what you suggested first though, that seems more stable then playing with devel
00:21:36FromDiscord<Rika> In reply to @ElegantBeef "I still want to": Why are you so against it? Note I’ve not taken a look at it at all
00:23:07FromDiscord<ElegantBeef> it does weird things i dont see the value in, like giving float/integer constants for `0..10` so `I0 = 0` and so on, it also throws all these values into a tuple manually, for no reason that i can see
00:27:11*njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
00:27:31*njoseph joined #nim
00:51:44FromDiscord<Rika> Eh he also uses if and not when for stuff that can be constants
00:52:32*hyiltiz quit (Ping timeout: 252 seconds)
00:52:52FromDiscord<Rika> Some of these are kinda not useful either huh
00:53:09*hyiltiz joined #nim
00:53:09*hyiltiz quit (Changing host)
00:53:09*hyiltiz joined #nim
00:55:08FromDiscord<Rika> Eh making generics concrete types is weird
00:55:18FromDiscord<ElegantBeef> Yep, it's just odd
00:55:29FromDiscord<ElegantBeef> The multiplatform stuff aswell
00:56:59FromDiscord<ElegantBeef> Also think about how much memory gets used if you access the `stringsconstants.Strings` tuple
00:59:14FromDiscord<ElegantBeef> Have you looked at `hex.nim` yet?
01:06:39FromDiscord<Rika> Well I might stop adding remarks as this might be too rude
01:07:09FromDiscord<Rika> Wait what the fuck
01:10:27FromDiscord<ajusa> In reply to @ajusa "is it possible for": I tried using an Open API Nim code generator, but it outputs code that only works on the C backend, not code that works on the JS backend lol. Once this PR is merged that should help a bit at least
01:12:36FromDiscord<ajusa> also I don't think it is possible to use `await` unless it is inside of a proc that returns a Future... but this gets pretty weird for the JS backend (since there is no waitFor as far as I can see in asyncjs)
01:14:15reversem3Blah unique pragma doesn’t work in inim using norm 😞
01:16:21*motersen quit (Ping timeout: 240 seconds)
01:18:09*motersen joined #nim
01:19:58*oddp quit (Quit: quit)
01:20:11*fmaruki quit (Ping timeout: 246 seconds)
01:44:45*motersen quit (Ping timeout: 240 seconds)
01:45:50*motersen joined #nim
01:52:48*spiderstew_ quit (*.net *.split)
01:52:48*Q-Master quit (*.net *.split)
01:52:48*conkker quit (*.net *.split)
01:52:48*kaliy quit (*.net *.split)
01:52:48*voidpi quit (*.net *.split)
01:52:48*Eyess quit (*.net *.split)
01:52:48*Araq quit (*.net *.split)
01:53:58*spiderstew_ joined #nim
01:53:59*Q-Master joined #nim
01:53:59*conkker joined #nim
01:53:59*kaliy joined #nim
01:53:59*voidpi joined #nim
01:53:59*Eyess joined #nim
01:53:59*Araq joined #nim
01:55:31*Jesin quit (Ping timeout: 265 seconds)
01:55:53*Jesin joined #nim
02:23:02*filcuc joined #nim
02:23:12*spiderstew_ quit (Quit: ZNC 1.7.2+deb3 - https://znc.in)
02:24:07*filcuc quit (Client Quit)
02:24:17*filcuc joined #nim
02:29:15*filcuc quit (Quit: Konversation terminated!)
02:29:29*filcuc joined #nim
02:32:24*filcuc quit (Read error: No route to host)
02:32:39*filcuc joined #nim
02:35:44*spiderstew joined #nim
02:37:42*filcuc quit (Quit: Konversation terminated!)
02:37:54*filcuc joined #nim
02:42:49*filcuc quit (Quit: Konversation terminated!)
02:43:01*filcuc joined #nim
02:44:43FromDiscord<treeform> In reply to @jtiai "My emulator is progressing...": I don't know why SDL2_ttf is doing that, but my library typography can render fonts well. Here is an SDL example: https://github.com/treeform/typography/blob/master/examples/sdl.nim
02:48:13*filcuc quit (Quit: Konversation terminated!)
02:48:21*filcuc joined #nim
02:53:13*filcuc quit (Client Quit)
02:53:26*filcuc joined #nim
02:58:23*filcuc quit (Quit: Konversation terminated!)
02:58:36*filcuc joined #nim
03:03:39*filcuc quit (Quit: Konversation terminated!)
03:03:40*krux02 quit (Remote host closed the connection)
03:03:47*filcuc_ joined #nim
03:08:56*filcuc_ quit (Quit: Konversation terminated!)
03:09:07*filcuc_ joined #nim
03:14:00*filcuc_ quit (Client Quit)
03:14:11*filcuc_ joined #nim
03:19:06*filcuc_ quit (Quit: Konversation terminated!)
03:19:24*filcuc_ joined #nim
03:24:17*filcuc_ quit (Client Quit)
03:24:34*filcuc_ joined #nim
03:31:55FromDiscord<ajusa> sent a code paste, see https://play.nim-lang.org/#ix=3lUV
03:33:43*filcuc_ quit (Ping timeout: 252 seconds)
03:42:46*thomasross quit (Ping timeout: 240 seconds)
03:43:55*spiderstew_ joined #nim
03:45:01*spiderstew quit (Ping timeout: 276 seconds)
04:24:59ForumUpdaterBotNew thread by Halloleo: Add a JS-backend only option to nim.cfg, see https://forum.nim-lang.org/t/7931
05:10:26*narimiran joined #nim
06:00:24*vsantana quit (Ping timeout: 268 seconds)
06:10:35*NimBot joined #nim
07:03:06*rockcavera quit (Remote host closed the connection)
07:14:18*fredrikhr joined #nim
07:45:29*PMunch joined #nim
07:46:47*vicfred quit (Quit: Leaving)
07:53:15FromDiscord<Varriount> In reply to @PMunch "Basically I want to": I feel like I've seen an implementation for something similar in the standard library... That being said, a ring buffer isn't that hard to write.
07:54:00PMunchThere is a linked ring structure in the linked list module, but that's not quite what I need
07:54:27PMunchIt's not that hard, just annoying to do if there is one already out there :P
08:01:10FromDiscord<willyboar> Is there a flag when compile with nim js to send the js file to other dir?
08:02:02FromDiscord<ElegantBeef> `--outdir` should work with js aswell
08:02:56FromDiscord<willyboar> you are the best
08:26:23FromDiscord<willyboar> PMunch playground is down?
08:26:34PMunchHmm, looks like it
08:27:43PMunchHmm, seems like the entire thing is down..
08:27:47PMunchI can't even SSH into it
08:28:44FromDiscord<Rika> have you checked your email
08:29:24PMunchMy email?
08:29:46FromDiscord<Rika> too indirect huh, i mean maybe your provider emailed you about downtime
08:29:52PMunchOh :P
08:30:29PMunchWell it's dom who's registered everywhere, I just have a access to the VPS to maintain the playground
08:30:48FromDiscord<Rika> oh okay i see
08:31:13FromDiscord<haxscramper> speaking of
08:31:19FromDiscord<haxscramper> 1.4.6 is up on godbolt
08:31:54FromDiscord<haxscramper> I think I forgot to mention I made a PR for latest release as well
08:33:24PMunchHmm, it does respond to ping though..
08:34:26PMunchGot in, rebooting now
08:36:40*lritter joined #nim
08:46:56PMunchWell, it's up now. Not sure why it was down though
08:58:38*vsantana joined #nim
09:00:11*FlammableDuck[m] quit (Quit: Idle for 30+ days)
09:00:49*Vladar joined #nim
09:50:03ForumUpdaterBotNew thread by JohnLuck: Trouble getting cross compilation to work, see https://forum.nim-lang.org/t/7932
09:51:54PMunchI've seen a lot of people do `-d:mingw` lately, is that actually supposed to work? If not, where did they get the idea from?
10:50:57Amun_RaPMunch: check your /etc/nim/nim.cfg
10:51:20PMunchI don't have one..
10:51:41Amun_RaPMunch: https://github.com/nim-lang/Nim/blob/devel/config/nim.cfg#L81-L105
10:52:14PMunchYeah it's in .choosenim/toolchains/nim-1.4.6/config/nim.cfg if you install via choosenim
10:52:29Amun_RaI've never used it
10:52:45PMunchHuh, neither have I
10:52:56PMunchI've just been setting it manually
10:53:12Amun_RaI use nim from OS repository
10:53:45PMunchI figured
10:53:50PMunchYou probably shouldn't by the way
10:54:15PMunchThey're typically a bit out of date, not as bad on Arch and its derivatives. But Ubuntu is usually ages behind..
10:54:30Amun_RaDebian testing
10:54:45Amun_RaNim Compiler Version 1.4.2 [Linux: amd64]
10:55:18PMunchEh okay, not that outdated
10:55:25Amun_Ramhm
10:58:02FromDiscord<mlokis> sent a code paste, see https://play.nim-lang.org/#ix=3lWq
10:58:17FromDiscord<mlokis> (edit) "https://play.nim-lang.org/#ix=3lWq" => "https://play.nim-lang.org/#ix=3lWr"
10:58:23FromDiscord<mlokis> (edit) "https://play.nim-lang.org/#ix=3lWr" => "https://paste.rs/1W8"
10:59:09FromDiscord<mlokis> i mean its not hard to implement but time consuming
10:59:12FromDiscord<haxscramper> We have several ORM libraries, https://github.com/nim-lang/Nim/wiki/Curated-Packages#database,
10:59:34FromDiscord<haxscramper> I'm not sure if any implements this particular feature
11:00:25FromDiscord<haxscramper> Also https://github.com/Araq/ormin
11:07:24FromDiscord<no name fits> I can't find the documentation for making the if's more or less likely to happen. I remember reading it somewhere that you could tell the compiler if an if was more or less likely to run
11:10:04FromDiscord<haxscramper> I don't think we have likely/unlikely annotations, and would recommend touse LTO+PGO instead anyway
11:10:24FromDiscord<no name fits> Must have been a fever dream then
11:10:39FromDiscord<haxscramper> https://forum.nim-lang.org/t/6295
11:11:34FromDiscord<carpal> what do you think about this assertio https://media.discordapp.net/attachments/371759389889003532/839821685929541662/IMG_20210506_131112.jpg
11:11:44FromDiscord<carpal> (edit) "assertio" => "assertion?"
11:12:37FromDiscord<no name fits> What is the assertion?
11:12:38ForumUpdaterBotNew post on r/nim by LoonixFan: Variable as untyped, see https://reddit.com/r/nim/comments/n64tja/variable_as_untyped/
11:12:59FromDiscord<haxscramper> I doubt ecosystem really supports turning off GC
11:13:04FromDiscord<haxscramper> there is little to no reason to do so
11:13:13FromDiscord<haxscramper> Especially with ARC
11:13:52FromDiscord<haxscramper> If you are talking about the highlighted part @carpal
11:16:24FromDiscord<carpal> yes the highlighted one
11:16:44FromDiscord<no name fits> I don't see why you would turn off the GC
11:16:57FromDiscord<carpal> well engine memory management
11:17:15FromDiscord<carpal> gc is a waste of performance in some specifi cases
11:17:20FromDiscord<carpal> (edit) "specifi" => "specific"
11:18:02FromDiscord<haxscramper> I would say that ARC covers almost all use cases, and ones that require turning it off are so niche that nobody will ever bother to support them
11:18:12FromDiscord<haxscramper> And ARC is deterministic, it does not scan stack or anything
11:19:51FromDiscord<carpal> for a kernel
11:20:03FromDiscord<carpal> you need a manual memory managment
11:20:18FromDiscord<carpal> but probably not the nim's libraries
11:21:55FromDiscord<haxscramper> Yes, I'm not saying that there are no use cases, just that they are rare enough so "ecosystem" is not suited for them
11:22:00FromDiscord<haxscramper> generially speaking
11:22:49FromDiscord<haxscramper> Another use case would be something like I-need-custom-allocator, or some scenarios where zero allocations are allowed etc.
11:50:49FromDiscord<no name fits> is there not a lerp somewhere in the std libs?
12:07:58*xace quit (Ping timeout: 252 seconds)
12:09:50*xace joined #nim
12:20:57FromDiscord<no name fits> oh I found the if thing https://nim-lang.org/docs/system.html#likely.t%2Cbool
12:22:47FromDiscord<no name fits> How do I unittest floats?
12:33:49*idf joined #nim
12:35:49*xet7 quit (Quit: Leaving)
12:53:17FromDiscord<no name fits> do I make my own "nearlyEqual" function?
12:58:12*clyybber joined #nim
12:58:58FromDiscord<haxscramper> https://github.com/nim-lang/Nim/issues/7504
12:59:04FromDiscord<haxscramper> looks like it
12:59:17*Jesin quit (Quit: Leaving)
13:04:54FromDiscord<no name fits> cool cool, good to know
13:07:45reversem3Anyone use nimssl to create keypairs and certificates?
13:08:00*rockcavera joined #nim
13:17:08*tane joined #nim
13:17:23*Jesin joined #nim
13:33:53*Onionhammer quit (Quit: Ping timeout (120 seconds))
13:34:08*Onionhammer joined #nim
13:34:54*ddevault quit (Remote host closed the connection)
13:35:13*federico3 quit (Remote host closed the connection)
13:35:35*ddevault joined #nim
13:36:22*federico3 joined #nim
13:45:23*vsantana quit (Quit: vsantana)
13:45:41*narimiran quit (Ping timeout: 246 seconds)
13:46:36*vsantana joined #nim
13:46:48*arecaceae quit (Remote host closed the connection)
13:47:08*arecaceae joined #nim
13:51:21FromDiscord<Elperson> Does this language use indentation for ifs and loops?
13:51:37FromDiscord<Elperson> Or brackets?
13:51:54PMunchIndentation, but you can technically use brackets if you really want to
13:52:08PMunchAlthough that's highly discouraged unless you need it for something in particular
13:52:20FromDiscord<Elperson> oof
13:52:55PMunchFan of extra typing?
13:53:16PMunchJust kidding, but you get used to it after a while. I was also in the preferring brackets camp, but now I've shifted a bit
13:53:17FromDiscord<Elperson> No, I just hate having to press TAB 50000 times.
13:53:57PMunchWell, if you use an editor that has even the most minimal support for scopes it will auto-indent for you
13:53:58Zoom[m]@Elperson, yeah, this is annoying and will bite you sooner or later on code refactoring, but it has its benefits
13:54:35PMunchI mean I use Vim and even that auto-indents without any extra thought
13:54:49PMunchThe refactoring thing is fair though
13:54:58Zoom[m]It's just something you need to get used to.
13:55:55FromDiscord<Rika> 👀
13:56:15Zoom[m]And it's one of the silliest things to discourage one from learning a PL
13:56:55Zoom[m]Hey, do we have the dates for NimConf?
13:57:45FromDiscord<PressF> Hey. What should I do to create a nim binding to a Js library?
14:03:39idfPressF: https://nim-lang.org/docs/jsffi.html
14:13:52FromDiscord<PressF> Thx @idf[IRC
14:20:28PMunchZoom[m], not sure
14:20:52ForumUpdaterBotNew thread by Aquachain: Force array type (javascript, webgl), see https://forum.nim-lang.org/t/7933
14:20:56PMunchI guess it will be around the same time as NimConf 2020, but a concrete day would be nice before submitting a talk..
14:21:12PMunchLike if it falls on my birthday I'm obviously not going to be able to join live
14:27:06*idf quit (Ping timeout: 260 seconds)
14:34:35*arecaceae quit (Remote host closed the connection)
14:35:14*arecaceae joined #nim
14:36:17Zoom[m]Ok, clear. Hope you guys manage to persuade Araq to buy a proper mic.
14:55:03*PMunch quit (Quit: leaving)
15:00:03*Gustavo6046_ joined #nim
15:00:05*Gustavo6046 quit (Ping timeout: 250 seconds)
15:02:14*Gustavo6046_ is now known as Gustavo6046
15:03:33*oddp joined #nim
15:29:59*Q-Master quit (Ping timeout: 246 seconds)
15:30:26*Q-Master joined #nim
15:45:21*fredrikhr quit (Quit: Client Disconnecting)
15:45:59FromDiscord<mlokis> is there that long regex for verifying email somewhere in std lib?
15:48:26FromDiscord<Rika> Oh God why
15:50:40Clonkk[m]<FromDiscord "<mlokis> is there that long rege"> I hope not
15:54:26reversem3damn nimssl won't compile on my machine
16:00:37FromDiscord<Hi02Hi> https://www.youtube.com/watch?v=xxX81WmXjPg
16:00:38ForumUpdaterBotNew question by LemongrabThree: Nim: Spawned Function Cannot Have a Var Parameter, but Argument to acquire Must Be Var, see https://stackoverflow.com/questions/67421812/nim-spawned-function-cannot-have-a-var-parameter-but-argument-to-acquire-must
16:02:30*tane quit (Quit: Leaving)
16:45:23*idf joined #nim
16:53:36FromDiscord<treeform> Can some one help me with `when nimvm or defined(js):` turns out I can't do that: https://nim-lang.org/docs/manual.html#statements-and-expressions-when-nimvm-statement
16:54:01FromDiscord<treeform> is there some sort of `when defined(vm) or defined(js):` I can use?
16:57:11FromDiscord<treeform> Basically just want a when block when vm or js is the backend.
17:00:10FromDiscord<haxscramper> no, `when nimvm` implemented using compiler magic
17:00:12FromDiscord<treeform> It appears that `when defined(nimvm) or defined(js):` compiles but does not work.
17:00:45FromDiscord<haxscramper> you need to use `when nimvm: <a> else: when defined(js): <a> else: <b>`
17:01:16FromDiscord<treeform> that does not appear to work either
17:02:22FromDiscord<haxscramper> https://github.com/nim-lang/Nim/blob/version-1-4/lib/system.nim#L2104
17:02:25FromDiscord<treeform> https://play.nim-lang.org/#ix=3lZa
17:03:22FromDiscord<treeform> `when nimvm` is different from a normal `when defined`
17:03:52FromDiscord<haxscramper> yes, it is implemented via separate VM opcode
17:03:57FromDiscord<haxscramper> so it is different
17:04:14FromDiscord<haxscramper> I don't known exact reasoning behind this though
17:05:07FromDiscord<haxscramper> `s/opcode/compiler "Magic"/`
17:14:05FromDiscord<Ig Yxnniz__> Où est le ballon de basket-ball
17:14:07FromDiscord<Ig Yxnniz__> Où est le ballon de basket-ball
17:14:08FromDiscord<Ig Yxnniz__> Où est le ballon de basket-ball
17:14:29FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:35FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:36FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:36FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:36FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:37FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:37FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:38FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:38FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:39FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:40FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:40FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:43FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:43FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:43FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:44FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:44FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:45FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:48FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:49FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:49FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:50FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:50FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:50FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:50FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:14:51FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:10FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAahttps://discord.gg/Q33TSpAa
17:15:11FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:11FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:12FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:12FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:12FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:13FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:34FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:34FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:35FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:35FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:36FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:36FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:37FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:37FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:37FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:40FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:41FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:41FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:41FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:42FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:42FromDiscord<haxscramper> <@&371760044473319454>
17:15:43FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:15:43FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAahttps://discord.gg/Q33TSpAa
17:15:43FromDiscord<Ig Yxnniz__> https://discord.gg/Q33TSpAa
17:16:01FromDiscord<Yardanico> banned
17:16:21FromDiscord<alehander42> why i am a mod
17:16:33FromDiscord<alehander42> (edit) "why" => "wow"
17:16:45FromDiscord<Revenge> https://discord.gg/XXp3ssAV
17:16:47FromDiscord<Revenge> https://discord.gg/XXp3ssAV
17:16:49FromDiscord<Revenge> https://discord.gg/XXp3ssAV
17:16:50FromDiscord<Revenge> https://discord.gg/XXp3ssAV
17:16:57FromDiscord<Yardanico> huh, that guy is mad because of something, wonder why
17:17:09FromDiscord<alehander42> i think it\s mostly spam
17:17:23FromDiscord<Yardanico> well, but he just joined from another account and started spamming again, that's why I'm wondering, also with the account named "Revenge"
17:17:47FromDiscord<Yardanico> poor IRC users got the link spammed like 50 times
17:18:07FromDiscord<alehander42> oh
17:20:33FromDiscord<Yardanico> also apparently there's a discord server following #announcements that has 1k-10k users
17:21:01FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/839914661045862500/unknown.png
17:21:23FromDiscord<haxscramper> is it possible to see exact list?
17:21:31FromDiscord<Yardanico> no, I don't think discord provides such info
17:21:56FromDiscord<dom96> In reply to @Yardanico "also apparently there's a": ooh, that's cool
17:22:03FromDiscord<Yardanico> you can only see how many servers are following, when they're joining/leaving
17:22:17FromDiscord<Yardanico> and how many servers did a published message reach
17:22:56FromDiscord<Yardanico> one thing I'm annoyed of is that discord doesn't auto-publish new posts from an announcement channel - a moderator (or admin, not sure) has to manually click the "publish" button
17:23:12FromDiscord<Yardanico> so if the MonitorRSS posts something - it's not gonna get published to other servers until someone presses "Publish"
17:37:09*vicfred joined #nim
17:55:54FromDiscord<hamidb80> hey
17:56:16FromDiscord<hamidb80> why i cant use `openArray[openArray[someType]]` ?
17:56:23FromDiscord<hamidb80> (edit) "why ... i" added "cant" | removed "cant"
17:57:11FromDiscord<hamidb80> (edit) "why cant i use `openArray[openArray[someType]]` ? ... " added "in argument list?"
17:57:14FromDiscord<hamidb80> (edit) removed "?"
17:58:57FromDiscord<exelotl> openArray is a second-class citizen for now
17:59:11FromDiscord<hamidb80> !?
17:59:56FromDiscord<Yardanico> In reply to @hamidb80 "!?": you can't have an openArray inside of an openArray because then the inner openArray must be a first class type
18:00:02FromDiscord<Yardanico> but openArray is not a first class type
18:00:43FromDiscord<exelotl> it will work when view types land: https://nim-lang.github.io/Nim/manual_experimental.html#view-types
18:01:00FromDiscord<exelotl> but... that's probably a way off I guess
18:21:06*vsantana quit (Ping timeout: 240 seconds)
18:31:31*Vladar quit (Read error: Connection reset by peer)
18:32:09*lritter quit (Ping timeout: 260 seconds)
18:36:14*rockcavera quit (Remote host closed the connection)
18:47:53*Vladar joined #nim
19:12:24reversem3Has anyone tried re-creating cli tools like ls, find, grep and so on?
19:13:59*idf quit (Ping timeout: 246 seconds)
19:15:39PrestigeI'd be interested in seeing that work
19:25:53*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
19:26:07*Lord_Nightmare joined #nim
19:27:31FromDiscord<jtiai> About naming conventions... Nim likes to use snakeCase... I'm converting some old C-code and it has constants like "VIA_T1C_L", How should I go with Nim naming convention here?
19:29:06FromDiscord<willyboar> In reply to @reversem3 "Has anyone tried re-creating": https://github.com/madprops/lq
19:29:12FromDiscord<ElegantBeef> well C uses the whole "first part is a namespace" so you can tend to drop that since more than likely this would be in a `via` module
19:29:35FromDiscord<jtiai> True that...
19:29:45FromDiscord<ElegantBeef> So `T1CL` is fine
19:30:07FromDiscord<jtiai> I guessed so since all are acronyms.
19:30:51FromDiscord<ElegantBeef> The same applies to functions, you can drop the namespace and move it as a first parameter typically
19:31:07FromDiscord<ElegantBeef> for instance `proc pullDown(gpio: Gpio) {.importC: "gpio_pull_down".}`
19:38:18FromDiscord<jtiai> Now lets see if I can figure out how to emulate via6522...
19:38:39FromDiscord<ElegantBeef> by emulating via0 to 6521 then incrementiing the last by 1 😛
19:53:55reversem3<FromDiscord "<willyboar> In reply to @reverse"> Wow thats impressive, thanks
19:56:37*nisstyre quit (Quit: WeeChat 3.1)
19:57:15*nisstyre joined #nim
20:07:57*jack joined #nim
20:32:08*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
20:40:10*Lord_Nightmare joined #nim
20:40:45reversem3I'm reading from a file but I want the command arg to not be a string , so for e.g. I want to do Howmany <filename> without quotes " "
20:42:23FromDiscord<ElegantBeef> aslong as there is no space you dont need quotes
20:43:53FromDiscord<ElegantBeef> Also if you're working on CLI might want to look at cligen or my "in development, but havent touched it in forever" https://github.com/beef331/commander
20:49:42FromDiscord<arnetheduck> sent a long message, see https://paste.rs/EuP
20:53:12FromDiscord<arnetheduck> In reply to @Varriount "<@!449019668296892420> Regarding the discussion": we're talking about text files, it'll be a while before duplicates become a problem - I'm not a fan of hidden magic locations with more magic to make it work, they tend to be hard to wrap your head around for very little gain - when the whole project is contained in a folder, it's easy to reason about, easy to move around, easy to delete and start over etc
20:54:00FromDiscord<dom96> In reply to @Varriount "I'm at the point": That's a dangerous sentiment
20:54:14FromDiscord<ElegantBeef> Care to elaborate how that's dangerous?
20:54:50FromDiscord<arnetheduck> I'm also mostly interested in the abstract / logical model which serves as a starting point: that starting point should be that each project is isolated and independent - on top of that, one might optimize bottlenecks with caches, but a cache should never change that abstract model that we started with
20:55:10FromDiscord<dom96> Sure, two alternative competing standard library implementations will fracture the community
20:55:53FromDiscord<arnetheduck> I tend to believe people are smart enough in general, over time, to figure such things out
20:56:07jack\q
20:56:48*jack quit (Quit: WeeChat 3.1)
20:56:49FromDiscord<Varriount> In reply to @dom96 "That's a dangerous sentiment": I'm past the point of caring. Unless Nim can get past several core problems - the state of the standard library being one of them - it's not going to go anywhere.
20:57:31FromDiscord<haxscramper> There are a lot of API problems in large number of stdlib packages, I don't think "opinionated, new stdlib" will "fracture" the community, more like "everyone will use it after some time"
20:57:46FromDiscord<haxscramper> For example I basically rewrote `std/os` for my needs
20:58:07FromDiscord<haxscramper> Not from scratch, but I would never touch `std/os` in my code again
20:58:08FromDiscord<arnetheduck> and we did `io` recently 😉
20:58:14FromDiscord<ElegantBeef> Exactly, be it os, json, or whatever the module will just stay in the stdlib for legacy and people will move on
20:58:43FromDiscord<haxscramper> `nim-lang/graveyard` is expanding into core library
20:58:45FromDiscord<ElegantBeef> The big issue is with a batteries included stdlib you'd hope that the modules would be the "best" whatever that means 😄
20:59:06FromDiscord<arnetheduck> but, it's a shame that it's hard to share this code with others and the next step right now is to lower that barrier
20:59:09FromDiscord<haxscramper> well, there is no "best" and the only solution to this problem is working PM
20:59:29FromDiscord<ElegantBeef> I agree the PM needs to be improved
20:59:30FromDiscord<haxscramper> that I can trust, that does not break my installation in unrofseeable wasy that I can't reason about
21:00:17FromDiscord<haxscramper> that is - not even starting on relatively bad ergonomics
21:01:34FromDiscord<dom96> When I see "new stdlib" I hear "your program and all the libraries you depend on better use this new stdlib or your code will not work"
21:02:24FromDiscord<dom96> That would be a big problem for the community
21:02:31FromDiscord<haxscramper> `> you`↵I"m not so sure about that part, More like, or at least would not put too much accent on it
21:02:43FromDiscord<ajusa> I remember install https://github.com/status-im/nim-chronicles and noticed that it brought in like 15 other dependencies, including stew and faststreams which felt... excessive for a logging library? Maybe it does use those under the hood directly, but like dom says too much fracturing is bad
21:02:51FromDiscord<ajusa> (edit) "install" => "installing"
21:03:27FromDiscord<ajusa> (as an aside, I love chronicles it's super easy to work with, thanks for open sourcing it!)
21:03:42FromDiscord<dom96> Regarding the PM, if you've got time please help us review https://github.com/nim-lang/nimble/pull/913
21:04:02FromDiscord<haxscramper> In reply to @dom96 "When I see "new": and how this is different from literally any project that requires any non-stdlib libraries?
21:04:15FromDiscord<haxscramper> (edit) "In reply to @dom96 "When I see "new": and how this is different from literally any ... project" added "other"
21:05:07FromDiscord<dom96> In reply to @haxscramper "and how this is": most non-stdlib libraries work in harmony with the stdlib, in fact I would say all of them do
21:05:26FromDiscord<dom96> well, depends which subset of the stdlib we're talking about
21:05:41FromDiscord<haxscramper> And i'm not sure why there is such a strong drive to label non-stdlib stuff "non-working", or think that adding dependencies is an insane liability that should be avoided at the cost of forever keeping current implementation
21:07:05FromDiscord<haxscramper> And aside from types (someone mentioned that stdlib could provide types that other libraries can work with) there is nothing that would make it impossible to use stdlib and other libraries (including improved stdlib for example)
21:07:24FromDiscord<haxscramper> I.e. it is not `A or B` decision in my eyes anyway
21:07:45FromDiscord<haxscramper> And we are avoiding issue of having to keep "improved" version in the nim core
21:07:45FromDiscord<exelotl> will there eventually be a push towards Nim 2.0 during which the devel branch will begin to make sweeping changes to the stdlib (for the better)?
21:07:48FromDiscord<ElegantBeef> Yea unless we used my dumb idea of overriding the `std/` path we wouldnt have any conflicting implementations
21:08:06FromDiscord<dom96> Nothing is impossible, but doing it is usually impractical due to the time necessary to make it work
21:08:27FromDiscord<ElegantBeef> Currently exelotl the question is "How to continue the stdlib in a way that enables sweeping changes but not destroying past projects"
21:08:50FromDiscord<dom96> but I don't see why you need to frame it as "new stdlib"
21:08:55FromDiscord<haxscramper> we can just start with `fusion/json2` or `fusion/packedjson` for example, and also add improved versions
21:08:57FromDiscord<dom96> just create better versions of what's in the stdlib
21:09:12FromDiscord<exelotl> if it's for Nim 2.0 you can break past projects
21:09:21FromDiscord<dom96> I doubt you would even want to recreate everything in the stdlib, a lot of it works quite well
21:09:29FromDiscord<haxscramper> there has already been a case of things moving from stdlib to fusion, so ...
21:09:43FromDiscord<ElegantBeef> Sure but 2.0 isnt next week, we have a need for a better json module so we have to either have `json2` or another alternative
21:10:14FromDiscord<haxscramper> maybe `nim 2.0` could just break some things instead of adding v2 version of everything?
21:10:15FromDiscord<Varriount> In reply to @ElegantBeef "Sure but 2.0 isnt": No.
21:10:29FromDiscord<Varriount> No hacks, no hasty "lets add this now, omg!"
21:10:40FromDiscord<haxscramper> well, not everything, but `io, json, os, osproc,` etc
21:10:47FromDiscord<ElegantBeef> Varriount that's my point
21:10:49FromDiscord<Varriount> That's how most of the existing mess has been caused in the first place.
21:10:50FromDiscord<haxscramper> and other things that were mentioned
21:11:15FromDiscord<jtiai> In my short experience having a nice predictable release schedule with predictable deprecation policies works best.
21:11:36FromDiscord<arnetheduck> eh, the std lib is a monolith with issues around obsolete code, poor api, difficulties to evolve, difficult to upgrade and above all to patch bugs in with a reasonable timeline - there's no point in repeating the same mistake and expect a different outcome in a fictive 2.0 libraries: it simply has to go
21:11:47FromDiscord<exelotl> In reply to @Varriount "No hacks, no hasty": I agree the more cohesive the better, and you don't get that cohesion by improving 1 module at a time
21:12:01FromDiscord<ElegantBeef> The point was "we need a reliable way of growing the stdlib, and deprecating modules in it, without waiting for a major version change"
21:12:07FromDiscord<Varriount> In reply to @jtiai "In my short experience": Yes, but deprecation (as it exists today) can only do so much. For instance, even if a function is deprecated, its name can't be removed and reused until the implementation itself if removed.
21:12:43FromDiscord<jtiai> Well some libraries I work with do remove old implementations after a while.
21:12:54FromDiscord<arnetheduck> > we need a reliable way of growing the stdlib,↵we need a reliable way to share code without growing the std lib 🙂
21:12:55FromDiscord<jtiai> (read: about 1.5 years)
21:13:17FromDiscord<dom96> In reply to @arnetheduck "> we need a": this is where lock files come in 🙂
21:13:28FromDiscord<Varriount> In reply to @exelotl "I agree the more": You mean like 99% of the standard-library PRs I review?
21:14:11*rockcavera joined #nim
21:14:13FromDiscord<Varriount> I have experienced a non-trivial amount of anger, sadness, and frustration dealing with those PRs, just this past week.
21:14:18FromDiscord<dom96> Every stdlib evolves this way, I don't think it's realistic to start from scratch for any programming language
21:14:35FromDiscord<ElegantBeef> In reply to @Varriount "I have experienced a": But i didnt submit any PR's this week for setutils 😛
21:15:08FromDiscord<Varriount> _stamps @ElegantBeef with the "NO" stamp._
21:15:22FromDiscord<ElegantBeef> You dont like setutils? 😦
21:16:09FromDiscord<Varriount> In reply to @dom96 "Every stdlib evolves this": From what I've seen, most standard libraries introduce mostly-whole, complete modules, and introduce one or two functions every release. Not 5 or 10
21:16:23FromDiscord<Varriount> (edit) "every release." => "every release."
21:16:57FromDiscord<dom96> In reply to @Varriount "From what I've seen,": Fair enough, that sounds like a problem with how we review additions/changes to the stdlib
21:17:57FromDiscord<Varriount> In reply to @ElegantBeef "*You dont like setutils?*": Enough utils, tools, etc. Or at least, put a pause on them, and actually plan on what should be in those modules.
21:19:04FromDiscord<Varriount> Right now it seems like anything marked with a "utils" or "tools" prefix/suffix is just a magnet for repeated scotch-tape additions
21:19:21FromDiscord<haxscramper> loud sounds of `std/enumerate`
21:19:25FromDiscord<haxscramper> (edit) "loud" => "loud" | "`std/enumerate`" => "`std/enumerate`("
21:19:38FromDiscord<haxscramper> `std/with`
21:19:51FromDiscord<haxscramper> and other single-proc modules
21:20:02ForumUpdaterBotNew Nimble package! dik - Table implemented as optimized sorted hashed dictionary of {array[char]: Option[T]}, same size as OrderedTable, see https://github.com/juancarlospaco/dik
21:20:03FromDiscord<exelotl> std/with needs to go lol, it's not good 😅
21:20:44FromDiscord<haxscramper> why could not it be in `std/sugar` is beyond me
21:21:45FromDiscord<haxscramper> we have `import except`, so "breaking people stuff if they already have `with` of their own" is a poor excecuse
21:22:16FromDiscord<haxscramper> same with `enumerate`, though I can agree that putting it in `sequtils` would annoy too much people
21:22:17FromDiscord<Varriount> sent a long message, see http://ix.io/3m0m
21:22:32FromDiscord<arnetheduck> once you pop, you can't stop - the people that keep adding little personal utility helpers to the std lib do so because it's the path of least resistance for them: mostly any pet peeve library is accepted and the PM situation is what it is
21:22:57FromDiscord<haxscramper> I solved it by piling crap in my own "utils" package
21:23:10FromDiscord<Varriount> In reply to @arnetheduck "once you pop, you": I have an entire rant/comment saved in my sticky notes on this.
21:23:30FromDiscord<haxscramper> And I seriously consider moving to monorepo, because it is just too annoying to deal with nimble sometimes, even if I control almost all of my deps
21:24:20FromDiscord<Varriount> "Oh, but it's so convenient" (yes, convenient for you), "oh, but it's just one function" (yes. one. single. function.)
21:24:33FromDiscord<haxscramper> oh, CI broke even though everything looks perfectly fine? Well, just push new version, and it somehow magically resolves the issue, Or not
21:24:35FromDiscord<dom96> In reply to @Varriount "You know what I": What I'd love is to establish a rule that RFCs need to be written to a certain standard before being considered, that could be a great filter which would save us a lot of time and ensure that we don't miss anything important.
21:25:11FromDiscord<haxscramper> it is not a problem of writing RFCs I think, more like "stdlib packages MUST be backed by RFC before addition"
21:25:33FromDiscord<haxscramper> writing/reading RFCs
21:26:07FromDiscord<dom96> In reply to @haxscramper "And I seriously consider": Help us review/test the lock files PR instead so we can ensure the implementation is going to work for all of us 🙂
21:26:36FromDiscord<dom96> FWIW I've been essentially emulating lock files in my projects, https://github.com/nim-lang/nimforum/blob/master/nimforum.nimble#L24
21:26:40FromDiscord<Varriount> In reply to @dom96 "Help us review/test the": Do lock files use hashes at all?
21:26:44FromDiscord<dom96> It is manageable for smaller projects
21:26:47FromDiscord<Varriount> Or is it just version numbers?
21:27:08FromDiscord<dom96> They use hashes and checksums
21:27:13FromDiscord<Varriount> Oh good.
21:27:57FromDiscord<Varriount> That's what annoyed me about the next big thing in Python's dependency management landscape, Poetry: https://github.com/python-poetry/poetry
21:28:10FromDiscord<Varriount> The lock files only use version numbers.
21:28:20FromDiscord<haxscramper> In reply to @dom96 "Help us review/test the": My main complaints are not about lock files, but about questionable dependency resolution, and I mostly write libraries, rarely final tools, so this problem is not so important for me. But when I make two new versions of my libraryes and nimble somehow manages to fail resolution ... that what annoys me
21:28:48FromDiscord<ElegantBeef> The information is there hax, but i couldnt get anything nice to get it resolved
21:28:52FromDiscord<arnetheduck> In reply to @dom96 "What I'd love is": you don't need a rule, and you don't need RFC's _really_ - code that is good gets used, and that's about as complicated as it is, unless there are subventions and artificial barriers around - one such barrier is the PM, and one such subvention is "it's in the std lib" - what the std lib does mostly is give ammunition to people to defend sub-par quality code in the name of unnamed community risk
21:29:14FromDiscord<dom96> In reply to @arnetheduck "you don't need a": True, I agree.
21:29:28FromDiscord<dom96> In reply to @Varriount "That's what annoyed me": Love how that package manager still advertises its support for Python 2 😄
21:30:23FromDiscord<dom96> In reply to @Varriount "The lock files only": To be fair, that might not be that much of an issue (assuming that the service hosting the packages prevents uploaded versions being replaced)
21:31:09FromDiscord<exelotl> sent a long message, see http://ix.io/3m0p
21:31:47FromDiscord<dom96> In reply to @haxscramper "My main complaints are": I see, then that PR may fix some bugs but at the end of the day Nimble needs changes so that it can have the full dependency graph before installing anything
21:31:58FromDiscord<haxscramper> In reply to @ElegantBeef "The information is there": I feel like main roadblock is the fact that nimble can't resolve dependencies fast (without evaluating nimscript), and without downloading whole package, which makes dependency graph construction harder. I feel like current approach of "download-while-resolve-while-download" largely dictated by the fact it is almost impossible to evaluate `.nimble` file otherwise.
21:32:39FromDiscord<haxscramper> well, not impossible, but
21:32:40FromDiscord<arnetheduck> In reply to @haxscramper "I feel like main": shouldn't that be done like.. once?
21:32:46FromDiscord<ElegantBeef> Yea i think i had it working with fidget 0.7.5 but i tried disrupteks ups and it wasnt finding grok
21:33:13FromDiscord<haxscramper> In reply to @arnetheduck "shouldn't that be done": yes, caching etc. is of course needed
21:36:30FromDiscord<dom96> Yep, there are different solutions to this. I think a lot of people don't realise that Nimble doesn't have the full dependency graph before installing packages.
21:37:31FromDiscord<Varriount> In reply to @dom96 "To be fair, that": True. And Python's package manager only officially supports downloading from an index server, so I guess the trust is centralized there. It's not like Github, where one could technically replace an existing version (I think...)
21:38:00FromDiscord<dom96> In reply to @Varriount "True. And Python's package": Yep, you can change what commit a version tag points to easily.
21:38:35FromDiscord<Varriount> The "I think" was meant more for what the python package index allows/doesn't allow.
21:39:15*thomasross joined #nim
21:41:20FromDiscord<Varriount> We need, like, some sort of wiki or google-docs-like discussion on all these topics.↵@dom96 Assuming that most packages have static requirements, could Nimble support a purely static file format, and allow packagers to dictate if there are scripts that need to be run to resolve values?
21:42:28FromDiscord<Varriount> Would that improve things, actually? Do other language package managers know a package's dependencies before downloading it?
21:43:23*Vladar quit (Quit: Leaving)
21:45:33FromDiscord<dom96> In reply to @Varriount "We need, like, some": yes, this can be done, but there are other problems. The distributed nature of Nimble adds a lot of edge cases, for example: how do we read the .nimble files without knowing which version of the .nimble file to read ahead of time?
21:47:47FromDiscord<Varriount> In reply to @dom96 "yes, this can be": Two approaches:↵ - Require the file to state the version it's written in (this could be added when the file is first created, and updated by the user).↵ - Try formats until things work.
21:47:56FromDiscord<Varriount> (edit) "In reply to @dom96 "yes, this can be": Two ... approaches:↵" added "possible"
21:48:22FromDiscord<dom96> no, I don't mean the file format version
21:48:31FromDiscord<haxscramper> When I was generating statistics for the #830 I used public github API, and there were only 53 (out of 1.5k+ libraries) that I failed to retrieve (non-github, 404 etc)
21:48:48FromDiscord<dom96> Packages can have different versions, each with different .nimble packages (which define different dependencies)
21:48:59FromDiscord<dom96> We need to know which to read ahead of time
21:49:14FromDiscord<dom96> (edit) "packages" => "files"
21:50:16FromDiscord<Varriount> Isn't that what declaring the required version is for in dependency lists?
21:50:25FromDiscord<haxscramper> I thought maybe we can just fetch required `.nimble` dependencies on cheap from github by downloading only `.nimble`, and of course caching as much as possible
21:50:46FromDiscord<haxscramper> fallback to download-all when first option fails
21:50:50FromDiscord<dom96> In reply to @Varriount "Isn't that what declaring": yes, but then you're already doing what Nimble does: picking versions
21:51:01FromDiscord<dom96> (edit) "In reply to @Varriount "Isn't that what declaring": yes, but then you're already doing what Nimble does: picking versions ... " added "one-by-one"
21:51:10FromDiscord<dom96> so you're back to the problem you're trying to solve
21:52:07FromDiscord<Varriount> All I can say is: Look at what similar tools do, see if what they are doing has any inherent problems, and if it doesn't, copy what they do.
21:53:18FromDiscord<dom96> Yes, all others as far as I'm aware are centralised 🙂
21:54:47FromDiscord<Varriount> In reply to @dom96 "Yes, all others as": Doesn't Golang not require a central host? I know it uses a cache and version index, but they aren't required, if I recall correctly.
21:55:32FromDiscord<dom96> hm, true. I think more research is definitely in order
21:59:46FromDiscord<haxscramper> What prevents us from pushing for more centralization as well? Or it is fundamentally impossible to provide "mostly centralized" solution that still allows for random dependencies?
22:00:21FromDiscord<haxscramper> We can have something like "centralized cache" if you could say this
22:00:30FromDiscord<Varriount> In reply to @haxscramper "What prevents us from": Cost. A centralized solution requires a hosting server.
22:01:22FromDiscord<ajusa> In reply to @haxscramper "We can have something": Also private setups for companies (like status) need to be considered as well
22:02:24FromDiscord<hamidb80> hey
22:02:44FromDiscord<hamidb80> im really stuck↵https://play.nim-lang.org/#ix=3m0H↵i want to convert `NimNode: nnkBracket` to `seq[NimNode]`
22:02:54FromDiscord<Varriount> In reply to @ajusa "Also private setups for": This is actually what's nice about a solution like Go's - You don't have to have a centralized setup.↵When I worked for company that had private Go packages on Github, we just had to use the correct URL and credentials
22:04:32FromDiscord<haxscramper> sent a code paste, see https://paste.rs/iyg
22:04:50FromDiscord<haxscramper> Everything else works fine I suppose?
22:04:57FromDiscord<Varriount> @hamidb80 `echo(treeRepr(infixExp))` in your macro will print the structure of the expression.
22:05:11*so_ quit (Ping timeout: 240 seconds)
22:07:21FromDiscord<hamidb80> sent a code paste, see https://play.nim-lang.org/#ix=3m0K
22:07:33*so joined #nim
22:07:40FromDiscord<hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0K" => "https://play.nim-lang.org/#ix=3m0L"
22:07:57FromDiscord<hamidb80> but nim says NimIdent is depricated
22:07:58FromDiscord<hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0L" => "https://play.nim-lang.org/#ix=3m0M"
22:07:59FromDiscord<hamidb80> (edit) "NimIdent" => "`NimIdent`"
22:08:05FromDiscord<hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0M" => "https://play.nim-lang.org/#ix=3m0L"
22:08:12FromDiscord<hamidb80> (edit) "depricated" => "deprecated"
22:08:27FromDiscord<hamidb80> and i should use `NimNode`
22:08:47FromDiscord<hamidb80> and i want to do it with `NimNode`
22:10:35FromDiscord<hamidb80> sent a code paste, see https://play.nim-lang.org/#ix=3m0N
22:10:53FromDiscord<haxscramper> Yes, if you print `a` using loop it works
22:11:12FromDiscord<hamidb80> sent a code paste, see https://paste.rs/nMI
22:12:17FromDiscord<hamidb80> oh
22:14:01FromDiscord<hamidb80> i want to have that `nnkBracket` as a seq
22:14:23FromDiscord<hamidb80> then i can pop, add, slice, ... idents to it
22:14:54FromDiscord<hamidb80> add works for nnkBracket but other functions not
22:14:56FromDiscord<haxscramper> You already have it in `a`? The code you sent does exactly that - extracts `[x, y]` elements into `seq[NimNode]`
22:15:00FromDiscord<hamidb80> (edit) "add" => "`add`" | "nnkBracket" => "`nnkBracket`"
22:15:11FromDiscord<haxscramper> The only issue it had was incorrect `echo` usage
22:15:33FromDiscord<haxscramper> If you fix that you will see it prints `x`, `y`
22:15:37FromDiscord<Anonymous Poet> quick question: where does testament store stdout? all my echos seem to be eaten but i cant figure out where they're going
22:24:59FromDiscord<hamidb80> sent a code paste, see https://play.nim-lang.org/#ix=3m0T
22:25:30FromDiscord<hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0T" => "https://play.nim-lang.org/#ix=3m0U"
22:48:24ForumUpdaterBotNew thread by Alexeypetrushin: Can't compile, error "could not import: X509_check_host", see https://forum.nim-lang.org/t/7942
22:52:25FromDiscord<Varriount> sent a long message, see http://ix.io/3m0V
22:54:35FromDiscord<dom96> yep, I've always seen the macros module as a raw API
22:54:55FromDiscord<dom96> I've been waiting for years for someone to create a high-level library on top of it that makes writing macros easier
22:55:10FromDiscord<dom96> I don't think this is necessarily something Nim should ship with
22:57:15FromDiscord<Varriount> I agree with that. There's also certain limitations to things that people often want to implement, like automatically registering a type in a table when a pragma is used, stuff like that.
23:00:11FromDiscord<ElegantBeef> The macro cache makes that rather easy, and i think removes a lot of limitation
23:00:18FromDiscord<ElegantBeef> (edit) "limitation" => "limitations"
23:01:13FromDiscord<hamidb80> what is the actual function name for slicing a `seq` ? a[0..1]
23:01:31FromDiscord<ElegantBeef> `[](a: openArray, Slice[int]`
23:02:07FromDiscord<ElegantBeef> https://nim-lang.org/docs/system.html#%5B%5D%2CopenArray%5BT%5D%2CHSlice%5BU%2CV%5D
23:02:09FromDiscord<ElegantBeef> Close enough
23:02:16FromDiscord<Varriount> In reply to @ElegantBeef "The macro cache makes": Macro cache?
23:02:38FromDiscord<ElegantBeef> https://nim-lang.org/docs/macrocache.html gives you a ton of cross module support
23:02:57FromDiscord<ElegantBeef> If you add a symbol in one module you can remove it from another module and actually can invoke it
23:03:18FromDiscord<ElegantBeef> Yardanico made a nice writeup for it on devel https://nim-lang.github.io/Nim/macrocache.html
23:04:29FromDiscord<ElegantBeef> In essence it's a cross module collection that lets you subscribe AST to a collection and retrieve it in another module still looked up
23:06:20FromDiscord<ElegantBeef> An example of calling a procedure that isnt exported from another module https://media.discordapp.net/attachments/371759389889003532/840001564088598557/unknown.png
23:25:45FromDiscord<exelotl> In reply to @ElegantBeef "Yardanico made a nice": Ohh wow that's nice, it was missing good docs :)
23:25:50FromDiscord<ElegantBeef> Indeed
23:28:57*xet7 joined #nim
23:29:50*xet7 quit (Remote host closed the connection)
23:32:37federico3Araq: was there a security advisory for this? https://github.com/nim-lang/Nim/commit/abac35e7437dd1ac2b3687dfa51de7f9d4b6e853#diff-123d798b39756a95de82d119d2fe6661157ebb20407e2c394b7490e7588d2294R635
23:55:38FromDiscord<matf> Can I return a function from a proc? Maybe I'm mangling the syntax. I can pass a function to a proc, but can I return one?
23:55:50FromDiscord<matf> (edit) "syntax." => "syntax this evening."
23:56:54FromDiscord<ElegantBeef> Yep https://play.nim-lang.org/#ix=3m13
23:58:28FromDiscord<matf> Doh that was my mistake, not returning proc but the sugar'd version. Thanks
23:58:41FromDiscord<matf> HoF ftw.
23:59:22FromDiscord<ElegantBeef> I totally know what HoF means, and agree