00:08:03 | FromDiscord | <retkid> Hey guys what vsc highlighter do you use |
00:08:09 | FromDiscord | <retkid> I I |
00:09:13 | FromDiscord | <retkid> I used one of the top ones and I think it didn’t have function highlighting so it was uggy |
00:10:06 | FromDiscord | <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:05 | FromDiscord | <ElegantBeef> you can manually clone it then do `choosenim path/to/branch` |
00:11:53 | * | xet7 joined #nim |
00:13:13 | FromDiscord | <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:53 | FromDiscord | <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:36 | FromDiscord | <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:07 | FromDiscord | <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:44 | FromDiscord | <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:52 | FromDiscord | <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:08 | FromDiscord | <Rika> Eh making generics concrete types is weird |
00:55:18 | FromDiscord | <ElegantBeef> Yep, it's just odd |
00:55:29 | FromDiscord | <ElegantBeef> The multiplatform stuff aswell |
00:56:59 | FromDiscord | <ElegantBeef> Also think about how much memory gets used if you access the `stringsconstants.Strings` tuple |
00:59:14 | FromDiscord | <ElegantBeef> Have you looked at `hex.nim` yet? |
01:06:39 | FromDiscord | <Rika> Well I might stop adding remarks as this might be too rude |
01:07:09 | FromDiscord | <Rika> Wait what the fuck |
01:10:27 | FromDiscord | <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:36 | FromDiscord | <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:15 | reversem3 | Blah 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:43 | FromDiscord | <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:55 | FromDiscord | <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:59 | ForumUpdaterBot | New 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:15 | FromDiscord | <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:00 | PMunch | There is a linked ring structure in the linked list module, but that's not quite what I need |
07:54:27 | PMunch | It's not that hard, just annoying to do if there is one already out there :P |
08:01:10 | FromDiscord | <willyboar> Is there a flag when compile with nim js to send the js file to other dir? |
08:02:02 | FromDiscord | <ElegantBeef> `--outdir` should work with js aswell |
08:02:56 | FromDiscord | <willyboar> you are the best |
08:26:23 | FromDiscord | <willyboar> PMunch playground is down? |
08:26:34 | PMunch | Hmm, looks like it |
08:27:43 | PMunch | Hmm, seems like the entire thing is down.. |
08:27:47 | PMunch | I can't even SSH into it |
08:28:44 | FromDiscord | <Rika> have you checked your email |
08:29:24 | PMunch | My email? |
08:29:46 | FromDiscord | <Rika> too indirect huh, i mean maybe your provider emailed you about downtime |
08:29:52 | PMunch | Oh :P |
08:30:29 | PMunch | Well it's dom who's registered everywhere, I just have a access to the VPS to maintain the playground |
08:30:48 | FromDiscord | <Rika> oh okay i see |
08:31:13 | FromDiscord | <haxscramper> speaking of |
08:31:19 | FromDiscord | <haxscramper> 1.4.6 is up on godbolt |
08:31:54 | FromDiscord | <haxscramper> I think I forgot to mention I made a PR for latest release as well |
08:33:24 | PMunch | Hmm, it does respond to ping though.. |
08:34:26 | PMunch | Got in, rebooting now |
08:36:40 | * | lritter joined #nim |
08:46:56 | PMunch | Well, 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:03 | ForumUpdaterBot | New thread by JohnLuck: Trouble getting cross compilation to work, see https://forum.nim-lang.org/t/7932 |
09:51:54 | PMunch | I'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:57 | Amun_Ra | PMunch: check your /etc/nim/nim.cfg |
10:51:20 | PMunch | I don't have one.. |
10:51:41 | Amun_Ra | PMunch: https://github.com/nim-lang/Nim/blob/devel/config/nim.cfg#L81-L105 |
10:52:14 | PMunch | Yeah it's in .choosenim/toolchains/nim-1.4.6/config/nim.cfg if you install via choosenim |
10:52:29 | Amun_Ra | I've never used it |
10:52:45 | PMunch | Huh, neither have I |
10:52:56 | PMunch | I've just been setting it manually |
10:53:12 | Amun_Ra | I use nim from OS repository |
10:53:45 | PMunch | I figured |
10:53:50 | PMunch | You probably shouldn't by the way |
10:54:15 | PMunch | They're typically a bit out of date, not as bad on Arch and its derivatives. But Ubuntu is usually ages behind.. |
10:54:30 | Amun_Ra | Debian testing |
10:54:45 | Amun_Ra | Nim Compiler Version 1.4.2 [Linux: amd64] |
10:55:18 | PMunch | Eh okay, not that outdated |
10:55:25 | Amun_Ra | mhm |
10:58:02 | FromDiscord | <mlokis> sent a code paste, see https://play.nim-lang.org/#ix=3lWq |
10:58:17 | FromDiscord | <mlokis> (edit) "https://play.nim-lang.org/#ix=3lWq" => "https://play.nim-lang.org/#ix=3lWr" |
10:58:23 | FromDiscord | <mlokis> (edit) "https://play.nim-lang.org/#ix=3lWr" => "https://paste.rs/1W8" |
10:59:09 | FromDiscord | <mlokis> i mean its not hard to implement but time consuming |
10:59:12 | FromDiscord | <haxscramper> We have several ORM libraries, https://github.com/nim-lang/Nim/wiki/Curated-Packages#database, |
10:59:34 | FromDiscord | <haxscramper> I'm not sure if any implements this particular feature |
11:00:25 | FromDiscord | <haxscramper> Also https://github.com/Araq/ormin |
11:07:24 | FromDiscord | <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:04 | FromDiscord | <haxscramper> I don't think we have likely/unlikely annotations, and would recommend touse LTO+PGO instead anyway |
11:10:24 | FromDiscord | <no name fits> Must have been a fever dream then |
11:10:39 | FromDiscord | <haxscramper> https://forum.nim-lang.org/t/6295 |
11:11:34 | FromDiscord | <carpal> what do you think about this assertio https://media.discordapp.net/attachments/371759389889003532/839821685929541662/IMG_20210506_131112.jpg |
11:11:44 | FromDiscord | <carpal> (edit) "assertio" => "assertion?" |
11:12:37 | FromDiscord | <no name fits> What is the assertion? |
11:12:38 | ForumUpdaterBot | New post on r/nim by LoonixFan: Variable as untyped, see https://reddit.com/r/nim/comments/n64tja/variable_as_untyped/ |
11:12:59 | FromDiscord | <haxscramper> I doubt ecosystem really supports turning off GC |
11:13:04 | FromDiscord | <haxscramper> there is little to no reason to do so |
11:13:13 | FromDiscord | <haxscramper> Especially with ARC |
11:13:52 | FromDiscord | <haxscramper> If you are talking about the highlighted part @carpal |
11:16:24 | FromDiscord | <carpal> yes the highlighted one |
11:16:44 | FromDiscord | <no name fits> I don't see why you would turn off the GC |
11:16:57 | FromDiscord | <carpal> well engine memory management |
11:17:15 | FromDiscord | <carpal> gc is a waste of performance in some specifi cases |
11:17:20 | FromDiscord | <carpal> (edit) "specifi" => "specific" |
11:18:02 | FromDiscord | <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:12 | FromDiscord | <haxscramper> And ARC is deterministic, it does not scan stack or anything |
11:19:51 | FromDiscord | <carpal> for a kernel |
11:20:03 | FromDiscord | <carpal> you need a manual memory managment |
11:20:18 | FromDiscord | <carpal> but probably not the nim's libraries |
11:21:55 | FromDiscord | <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:00 | FromDiscord | <haxscramper> generially speaking |
11:22:49 | FromDiscord | <haxscramper> Another use case would be something like I-need-custom-allocator, or some scenarios where zero allocations are allowed etc. |
11:50:49 | FromDiscord | <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:57 | FromDiscord | <no name fits> oh I found the if thing https://nim-lang.org/docs/system.html#likely.t%2Cbool |
12:22:47 | FromDiscord | <no name fits> How do I unittest floats? |
12:33:49 | * | idf joined #nim |
12:35:49 | * | xet7 quit (Quit: Leaving) |
12:53:17 | FromDiscord | <no name fits> do I make my own "nearlyEqual" function? |
12:58:12 | * | clyybber joined #nim |
12:58:58 | FromDiscord | <haxscramper> https://github.com/nim-lang/Nim/issues/7504 |
12:59:04 | FromDiscord | <haxscramper> looks like it |
12:59:17 | * | Jesin quit (Quit: Leaving) |
13:04:54 | FromDiscord | <no name fits> cool cool, good to know |
13:07:45 | reversem3 | Anyone 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:21 | FromDiscord | <Elperson> Does this language use indentation for ifs and loops? |
13:51:37 | FromDiscord | <Elperson> Or brackets? |
13:51:54 | PMunch | Indentation, but you can technically use brackets if you really want to |
13:52:08 | PMunch | Although that's highly discouraged unless you need it for something in particular |
13:52:20 | FromDiscord | <Elperson> oof |
13:52:55 | PMunch | Fan of extra typing? |
13:53:16 | PMunch | Just 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:17 | FromDiscord | <Elperson> No, I just hate having to press TAB 50000 times. |
13:53:57 | PMunch | Well, if you use an editor that has even the most minimal support for scopes it will auto-indent for you |
13:53:58 | Zoom[m] | @Elperson, yeah, this is annoying and will bite you sooner or later on code refactoring, but it has its benefits |
13:54:35 | PMunch | I mean I use Vim and even that auto-indents without any extra thought |
13:54:49 | PMunch | The refactoring thing is fair though |
13:54:58 | Zoom[m] | It's just something you need to get used to. |
13:55:55 | FromDiscord | <Rika> 👀 |
13:56:15 | Zoom[m] | And it's one of the silliest things to discourage one from learning a PL |
13:56:55 | Zoom[m] | Hey, do we have the dates for NimConf? |
13:57:45 | FromDiscord | <PressF> Hey. What should I do to create a nim binding to a Js library? |
14:03:39 | idf | PressF: https://nim-lang.org/docs/jsffi.html |
14:13:52 | FromDiscord | <PressF> Thx @idf[IRC |
14:20:28 | PMunch | Zoom[m], not sure |
14:20:52 | ForumUpdaterBot | New thread by Aquachain: Force array type (javascript, webgl), see https://forum.nim-lang.org/t/7933 |
14:20:56 | PMunch | I guess it will be around the same time as NimConf 2020, but a concrete day would be nice before submitting a talk.. |
14:21:12 | PMunch | Like 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:17 | Zoom[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:59 | FromDiscord | <mlokis> is there that long regex for verifying email somewhere in std lib? |
15:48:26 | FromDiscord | <Rika> Oh God why |
15:50:40 | Clonkk[m] | <FromDiscord "<mlokis> is there that long rege"> I hope not |
15:54:26 | reversem3 | damn nimssl won't compile on my machine |
16:00:37 | FromDiscord | <Hi02Hi> https://www.youtube.com/watch?v=xxX81WmXjPg |
16:00:38 | ForumUpdaterBot | New 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:36 | FromDiscord | <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:01 | FromDiscord | <treeform> is there some sort of `when defined(vm) or defined(js):` I can use? |
16:57:11 | FromDiscord | <treeform> Basically just want a when block when vm or js is the backend. |
17:00:10 | FromDiscord | <haxscramper> no, `when nimvm` implemented using compiler magic |
17:00:12 | FromDiscord | <treeform> It appears that `when defined(nimvm) or defined(js):` compiles but does not work. |
17:00:45 | FromDiscord | <haxscramper> you need to use `when nimvm: <a> else: when defined(js): <a> else: <b>` |
17:01:16 | FromDiscord | <treeform> that does not appear to work either |
17:02:22 | FromDiscord | <haxscramper> https://github.com/nim-lang/Nim/blob/version-1-4/lib/system.nim#L2104 |
17:02:25 | FromDiscord | <treeform> https://play.nim-lang.org/#ix=3lZa |
17:03:22 | FromDiscord | <treeform> `when nimvm` is different from a normal `when defined` |
17:03:52 | FromDiscord | <haxscramper> yes, it is implemented via separate VM opcode |
17:03:57 | FromDiscord | <haxscramper> so it is different |
17:04:14 | FromDiscord | <haxscramper> I don't known exact reasoning behind this though |
17:05:07 | FromDiscord | <haxscramper> `s/opcode/compiler "Magic"/` |
17:14:05 | FromDiscord | <Ig Yxnniz__> Où est le ballon de basket-ball |
17:14:07 | FromDiscord | <Ig Yxnniz__> Où est le ballon de basket-ball |
17:14:08 | FromDiscord | <Ig Yxnniz__> Où est le ballon de basket-ball |
17:14:29 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:35 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:36 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:36 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:36 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:37 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:37 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:38 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:38 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:39 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:40 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:40 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:43 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:43 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:43 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:44 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:44 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:45 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:48 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:49 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:49 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:50 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:50 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:50 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:50 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:14:51 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:10 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAahttps://discord.gg/Q33TSpAa |
17:15:11 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:11 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:12 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:12 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:12 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:13 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:34 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:34 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:35 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:35 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:36 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:36 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:37 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:37 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:37 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:40 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:41 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:41 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:41 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:42 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:42 | FromDiscord | <haxscramper> <@&371760044473319454> |
17:15:43 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:15:43 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAahttps://discord.gg/Q33TSpAa |
17:15:43 | FromDiscord | <Ig Yxnniz__> https://discord.gg/Q33TSpAa |
17:16:01 | FromDiscord | <Yardanico> banned |
17:16:21 | FromDiscord | <alehander42> why i am a mod |
17:16:33 | FromDiscord | <alehander42> (edit) "why" => "wow" |
17:16:45 | FromDiscord | <Revenge> https://discord.gg/XXp3ssAV |
17:16:47 | FromDiscord | <Revenge> https://discord.gg/XXp3ssAV |
17:16:49 | FromDiscord | <Revenge> https://discord.gg/XXp3ssAV |
17:16:50 | FromDiscord | <Revenge> https://discord.gg/XXp3ssAV |
17:16:57 | FromDiscord | <Yardanico> huh, that guy is mad because of something, wonder why |
17:17:09 | FromDiscord | <alehander42> i think it\s mostly spam |
17:17:23 | FromDiscord | <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:47 | FromDiscord | <Yardanico> poor IRC users got the link spammed like 50 times |
17:18:07 | FromDiscord | <alehander42> oh |
17:20:33 | FromDiscord | <Yardanico> also apparently there's a discord server following #announcements that has 1k-10k users |
17:21:01 | FromDiscord | <Yardanico> https://media.discordapp.net/attachments/371759389889003532/839914661045862500/unknown.png |
17:21:23 | FromDiscord | <haxscramper> is it possible to see exact list? |
17:21:31 | FromDiscord | <Yardanico> no, I don't think discord provides such info |
17:21:56 | FromDiscord | <dom96> In reply to @Yardanico "also apparently there's a": ooh, that's cool |
17:22:03 | FromDiscord | <Yardanico> you can only see how many servers are following, when they're joining/leaving |
17:22:17 | FromDiscord | <Yardanico> and how many servers did a published message reach |
17:22:56 | FromDiscord | <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:12 | FromDiscord | <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:54 | FromDiscord | <hamidb80> hey |
17:56:16 | FromDiscord | <hamidb80> why i cant use `openArray[openArray[someType]]` ? |
17:56:23 | FromDiscord | <hamidb80> (edit) "why ... i" added "cant" | removed "cant" |
17:57:11 | FromDiscord | <hamidb80> (edit) "why cant i use `openArray[openArray[someType]]` ? ... " added "in argument list?" |
17:57:14 | FromDiscord | <hamidb80> (edit) removed "?" |
17:58:57 | FromDiscord | <exelotl> openArray is a second-class citizen for now |
17:59:11 | FromDiscord | <hamidb80> !? |
17:59:56 | FromDiscord | <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:02 | FromDiscord | <Yardanico> but openArray is not a first class type |
18:00:43 | FromDiscord | <exelotl> it will work when view types land: https://nim-lang.github.io/Nim/manual_experimental.html#view-types |
18:01:00 | FromDiscord | <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:24 | reversem3 | Has anyone tried re-creating cli tools like ls, find, grep and so on? |
19:13:59 | * | idf quit (Ping timeout: 246 seconds) |
19:15:39 | Prestige | I'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:31 | FromDiscord | <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:06 | FromDiscord | <willyboar> In reply to @reversem3 "Has anyone tried re-creating": https://github.com/madprops/lq |
19:29:12 | FromDiscord | <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:35 | FromDiscord | <jtiai> True that... |
19:29:45 | FromDiscord | <ElegantBeef> So `T1CL` is fine |
19:30:07 | FromDiscord | <jtiai> I guessed so since all are acronyms. |
19:30:51 | FromDiscord | <ElegantBeef> The same applies to functions, you can drop the namespace and move it as a first parameter typically |
19:31:07 | FromDiscord | <ElegantBeef> for instance `proc pullDown(gpio: Gpio) {.importC: "gpio_pull_down".}` |
19:38:18 | FromDiscord | <jtiai> Now lets see if I can figure out how to emulate via6522... |
19:38:39 | FromDiscord | <ElegantBeef> by emulating via0 to 6521 then incrementiing the last by 1 😛 |
19:53:55 | reversem3 | <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:45 | reversem3 | I'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:23 | FromDiscord | <ElegantBeef> aslong as there is no space you dont need quotes |
20:43:53 | FromDiscord | <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:42 | FromDiscord | <arnetheduck> sent a long message, see https://paste.rs/EuP |
20:53:12 | FromDiscord | <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:00 | FromDiscord | <dom96> In reply to @Varriount "I'm at the point": That's a dangerous sentiment |
20:54:14 | FromDiscord | <ElegantBeef> Care to elaborate how that's dangerous? |
20:54:50 | FromDiscord | <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:10 | FromDiscord | <dom96> Sure, two alternative competing standard library implementations will fracture the community |
20:55:53 | FromDiscord | <arnetheduck> I tend to believe people are smart enough in general, over time, to figure such things out |
20:56:07 | jack | \q |
20:56:48 | * | jack quit (Quit: WeeChat 3.1) |
20:56:49 | FromDiscord | <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:31 | FromDiscord | <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:46 | FromDiscord | <haxscramper> For example I basically rewrote `std/os` for my needs |
20:58:07 | FromDiscord | <haxscramper> Not from scratch, but I would never touch `std/os` in my code again |
20:58:08 | FromDiscord | <arnetheduck> and we did `io` recently 😉 |
20:58:14 | FromDiscord | <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:43 | FromDiscord | <haxscramper> `nim-lang/graveyard` is expanding into core library |
20:58:45 | FromDiscord | <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:06 | FromDiscord | <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:09 | FromDiscord | <haxscramper> well, there is no "best" and the only solution to this problem is working PM |
20:59:29 | FromDiscord | <ElegantBeef> I agree the PM needs to be improved |
20:59:30 | FromDiscord | <haxscramper> that I can trust, that does not break my installation in unrofseeable wasy that I can't reason about |
21:00:17 | FromDiscord | <haxscramper> that is - not even starting on relatively bad ergonomics |
21:01:34 | FromDiscord | <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:24 | FromDiscord | <dom96> That would be a big problem for the community |
21:02:31 | FromDiscord | <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:43 | FromDiscord | <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:51 | FromDiscord | <ajusa> (edit) "install" => "installing" |
21:03:27 | FromDiscord | <ajusa> (as an aside, I love chronicles it's super easy to work with, thanks for open sourcing it!) |
21:03:42 | FromDiscord | <dom96> Regarding the PM, if you've got time please help us review https://github.com/nim-lang/nimble/pull/913 |
21:04:02 | FromDiscord | <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:15 | FromDiscord | <haxscramper> (edit) "In reply to @dom96 "When I see "new": and how this is different from literally any ... project" added "other" |
21:05:07 | FromDiscord | <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:26 | FromDiscord | <dom96> well, depends which subset of the stdlib we're talking about |
21:05:41 | FromDiscord | <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:05 | FromDiscord | <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:24 | FromDiscord | <haxscramper> I.e. it is not `A or B` decision in my eyes anyway |
21:07:45 | FromDiscord | <haxscramper> And we are avoiding issue of having to keep "improved" version in the nim core |
21:07:45 | FromDiscord | <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:48 | FromDiscord | <ElegantBeef> Yea unless we used my dumb idea of overriding the `std/` path we wouldnt have any conflicting implementations |
21:08:06 | FromDiscord | <dom96> Nothing is impossible, but doing it is usually impractical due to the time necessary to make it work |
21:08:27 | FromDiscord | <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:50 | FromDiscord | <dom96> but I don't see why you need to frame it as "new stdlib" |
21:08:55 | FromDiscord | <haxscramper> we can just start with `fusion/json2` or `fusion/packedjson` for example, and also add improved versions |
21:08:57 | FromDiscord | <dom96> just create better versions of what's in the stdlib |
21:09:12 | FromDiscord | <exelotl> if it's for Nim 2.0 you can break past projects |
21:09:21 | FromDiscord | <dom96> I doubt you would even want to recreate everything in the stdlib, a lot of it works quite well |
21:09:29 | FromDiscord | <haxscramper> there has already been a case of things moving from stdlib to fusion, so ... |
21:09:43 | FromDiscord | <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:14 | FromDiscord | <haxscramper> maybe `nim 2.0` could just break some things instead of adding v2 version of everything? |
21:10:15 | FromDiscord | <Varriount> In reply to @ElegantBeef "Sure but 2.0 isnt": No. |
21:10:29 | FromDiscord | <Varriount> No hacks, no hasty "lets add this now, omg!" |
21:10:40 | FromDiscord | <haxscramper> well, not everything, but `io, json, os, osproc,` etc |
21:10:47 | FromDiscord | <ElegantBeef> Varriount that's my point |
21:10:49 | FromDiscord | <Varriount> That's how most of the existing mess has been caused in the first place. |
21:10:50 | FromDiscord | <haxscramper> and other things that were mentioned |
21:11:15 | FromDiscord | <jtiai> In my short experience having a nice predictable release schedule with predictable deprecation policies works best. |
21:11:36 | FromDiscord | <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:47 | FromDiscord | <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:01 | FromDiscord | <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:07 | FromDiscord | <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:43 | FromDiscord | <jtiai> Well some libraries I work with do remove old implementations after a while. |
21:12:54 | FromDiscord | <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:55 | FromDiscord | <jtiai> (read: about 1.5 years) |
21:13:17 | FromDiscord | <dom96> In reply to @arnetheduck "> we need a": this is where lock files come in 🙂 |
21:13:28 | FromDiscord | <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:13 | FromDiscord | <Varriount> I have experienced a non-trivial amount of anger, sadness, and frustration dealing with those PRs, just this past week. |
21:14:18 | FromDiscord | <dom96> Every stdlib evolves this way, I don't think it's realistic to start from scratch for any programming language |
21:14:35 | FromDiscord | <ElegantBeef> In reply to @Varriount "I have experienced a": But i didnt submit any PR's this week for setutils 😛 |
21:15:08 | FromDiscord | <Varriount> _stamps @ElegantBeef with the "NO" stamp._ |
21:15:22 | FromDiscord | <ElegantBeef> You dont like setutils? 😦 |
21:16:09 | FromDiscord | <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:23 | FromDiscord | <Varriount> (edit) "every release." => "every release." |
21:16:57 | FromDiscord | <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:57 | FromDiscord | <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:04 | FromDiscord | <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:21 | FromDiscord | <haxscramper> loud sounds of `std/enumerate` |
21:19:25 | FromDiscord | <haxscramper> (edit) "loud" => "loud" | "`std/enumerate`" => "`std/enumerate`(" |
21:19:38 | FromDiscord | <haxscramper> `std/with` |
21:19:51 | FromDiscord | <haxscramper> and other single-proc modules |
21:20:02 | ForumUpdaterBot | New 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:03 | FromDiscord | <exelotl> std/with needs to go lol, it's not good 😅 |
21:20:44 | FromDiscord | <haxscramper> why could not it be in `std/sugar` is beyond me |
21:21:45 | FromDiscord | <haxscramper> we have `import except`, so "breaking people stuff if they already have `with` of their own" is a poor excecuse |
21:22:16 | FromDiscord | <haxscramper> same with `enumerate`, though I can agree that putting it in `sequtils` would annoy too much people |
21:22:17 | FromDiscord | <Varriount> sent a long message, see http://ix.io/3m0m |
21:22:32 | FromDiscord | <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:57 | FromDiscord | <haxscramper> I solved it by piling crap in my own "utils" package |
21:23:10 | FromDiscord | <Varriount> In reply to @arnetheduck "once you pop, you": I have an entire rant/comment saved in my sticky notes on this. |
21:23:30 | FromDiscord | <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:20 | FromDiscord | <Varriount> "Oh, but it's so convenient" (yes, convenient for you), "oh, but it's just one function" (yes. one. single. function.) |
21:24:33 | FromDiscord | <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:35 | FromDiscord | <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:11 | FromDiscord | <haxscramper> it is not a problem of writing RFCs I think, more like "stdlib packages MUST be backed by RFC before addition" |
21:25:33 | FromDiscord | <haxscramper> writing/reading RFCs |
21:26:07 | FromDiscord | <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:36 | FromDiscord | <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:40 | FromDiscord | <Varriount> In reply to @dom96 "Help us review/test the": Do lock files use hashes at all? |
21:26:44 | FromDiscord | <dom96> It is manageable for smaller projects |
21:26:47 | FromDiscord | <Varriount> Or is it just version numbers? |
21:27:08 | FromDiscord | <dom96> They use hashes and checksums |
21:27:13 | FromDiscord | <Varriount> Oh good. |
21:27:57 | FromDiscord | <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:10 | FromDiscord | <Varriount> The lock files only use version numbers. |
21:28:20 | FromDiscord | <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:48 | FromDiscord | <ElegantBeef> The information is there hax, but i couldnt get anything nice to get it resolved |
21:28:52 | FromDiscord | <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:14 | FromDiscord | <dom96> In reply to @arnetheduck "you don't need a": True, I agree. |
21:29:28 | FromDiscord | <dom96> In reply to @Varriount "That's what annoyed me": Love how that package manager still advertises its support for Python 2 😄 |
21:30:23 | FromDiscord | <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:09 | FromDiscord | <exelotl> sent a long message, see http://ix.io/3m0p |
21:31:47 | FromDiscord | <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:58 | FromDiscord | <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:39 | FromDiscord | <haxscramper> well, not impossible, but |
21:32:40 | FromDiscord | <arnetheduck> In reply to @haxscramper "I feel like main": shouldn't that be done like.. once? |
21:32:46 | FromDiscord | <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:13 | FromDiscord | <haxscramper> In reply to @arnetheduck "shouldn't that be done": yes, caching etc. is of course needed |
21:36:30 | FromDiscord | <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:31 | FromDiscord | <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:00 | FromDiscord | <dom96> In reply to @Varriount "True. And Python's package": Yep, you can change what commit a version tag points to easily. |
21:38:35 | FromDiscord | <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:20 | FromDiscord | <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:28 | FromDiscord | <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:33 | FromDiscord | <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:47 | FromDiscord | <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:56 | FromDiscord | <Varriount> (edit) "In reply to @dom96 "yes, this can be": Two ... approaches:↵" added "possible" |
21:48:22 | FromDiscord | <dom96> no, I don't mean the file format version |
21:48:31 | FromDiscord | <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:48 | FromDiscord | <dom96> Packages can have different versions, each with different .nimble packages (which define different dependencies) |
21:48:59 | FromDiscord | <dom96> We need to know which to read ahead of time |
21:49:14 | FromDiscord | <dom96> (edit) "packages" => "files" |
21:50:16 | FromDiscord | <Varriount> Isn't that what declaring the required version is for in dependency lists? |
21:50:25 | FromDiscord | <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:46 | FromDiscord | <haxscramper> fallback to download-all when first option fails |
21:50:50 | FromDiscord | <dom96> In reply to @Varriount "Isn't that what declaring": yes, but then you're already doing what Nimble does: picking versions |
21:51:01 | FromDiscord | <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:10 | FromDiscord | <dom96> so you're back to the problem you're trying to solve |
21:52:07 | FromDiscord | <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:18 | FromDiscord | <dom96> Yes, all others as far as I'm aware are centralised 🙂 |
21:54:47 | FromDiscord | <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:32 | FromDiscord | <dom96> hm, true. I think more research is definitely in order |
21:59:46 | FromDiscord | <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:21 | FromDiscord | <haxscramper> We can have something like "centralized cache" if you could say this |
22:00:30 | FromDiscord | <Varriount> In reply to @haxscramper "What prevents us from": Cost. A centralized solution requires a hosting server. |
22:01:22 | FromDiscord | <ajusa> In reply to @haxscramper "We can have something": Also private setups for companies (like status) need to be considered as well |
22:02:24 | FromDiscord | <hamidb80> hey |
22:02:44 | FromDiscord | <hamidb80> im really stuck↵https://play.nim-lang.org/#ix=3m0H↵i want to convert `NimNode: nnkBracket` to `seq[NimNode]` |
22:02:54 | FromDiscord | <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:32 | FromDiscord | <haxscramper> sent a code paste, see https://paste.rs/iyg |
22:04:50 | FromDiscord | <haxscramper> Everything else works fine I suppose? |
22:04:57 | FromDiscord | <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:21 | FromDiscord | <hamidb80> sent a code paste, see https://play.nim-lang.org/#ix=3m0K |
22:07:33 | * | so joined #nim |
22:07:40 | FromDiscord | <hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0K" => "https://play.nim-lang.org/#ix=3m0L" |
22:07:57 | FromDiscord | <hamidb80> but nim says NimIdent is depricated |
22:07:58 | FromDiscord | <hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0L" => "https://play.nim-lang.org/#ix=3m0M" |
22:07:59 | FromDiscord | <hamidb80> (edit) "NimIdent" => "`NimIdent`" |
22:08:05 | FromDiscord | <hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0M" => "https://play.nim-lang.org/#ix=3m0L" |
22:08:12 | FromDiscord | <hamidb80> (edit) "depricated" => "deprecated" |
22:08:27 | FromDiscord | <hamidb80> and i should use `NimNode` |
22:08:47 | FromDiscord | <hamidb80> and i want to do it with `NimNode` |
22:10:35 | FromDiscord | <hamidb80> sent a code paste, see https://play.nim-lang.org/#ix=3m0N |
22:10:53 | FromDiscord | <haxscramper> Yes, if you print `a` using loop it works |
22:11:12 | FromDiscord | <hamidb80> sent a code paste, see https://paste.rs/nMI |
22:12:17 | FromDiscord | <hamidb80> oh |
22:14:01 | FromDiscord | <hamidb80> i want to have that `nnkBracket` as a seq |
22:14:23 | FromDiscord | <hamidb80> then i can pop, add, slice, ... idents to it |
22:14:54 | FromDiscord | <hamidb80> add works for nnkBracket but other functions not |
22:14:56 | FromDiscord | <haxscramper> You already have it in `a`? The code you sent does exactly that - extracts `[x, y]` elements into `seq[NimNode]` |
22:15:00 | FromDiscord | <hamidb80> (edit) "add" => "`add`" | "nnkBracket" => "`nnkBracket`" |
22:15:11 | FromDiscord | <haxscramper> The only issue it had was incorrect `echo` usage |
22:15:33 | FromDiscord | <haxscramper> If you fix that you will see it prints `x`, `y` |
22:15:37 | FromDiscord | <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:59 | FromDiscord | <hamidb80> sent a code paste, see https://play.nim-lang.org/#ix=3m0T |
22:25:30 | FromDiscord | <hamidb80> (edit) "https://play.nim-lang.org/#ix=3m0T" => "https://play.nim-lang.org/#ix=3m0U" |
22:48:24 | ForumUpdaterBot | New thread by Alexeypetrushin: Can't compile, error "could not import: X509_check_host", see https://forum.nim-lang.org/t/7942 |
22:52:25 | FromDiscord | <Varriount> sent a long message, see http://ix.io/3m0V |
22:54:35 | FromDiscord | <dom96> yep, I've always seen the macros module as a raw API |
22:54:55 | FromDiscord | <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:10 | FromDiscord | <dom96> I don't think this is necessarily something Nim should ship with |
22:57:15 | FromDiscord | <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:11 | FromDiscord | <ElegantBeef> The macro cache makes that rather easy, and i think removes a lot of limitation |
23:00:18 | FromDiscord | <ElegantBeef> (edit) "limitation" => "limitations" |
23:01:13 | FromDiscord | <hamidb80> what is the actual function name for slicing a `seq` ? a[0..1] |
23:01:31 | FromDiscord | <ElegantBeef> `[](a: openArray, Slice[int]` |
23:02:07 | FromDiscord | <ElegantBeef> https://nim-lang.org/docs/system.html#%5B%5D%2CopenArray%5BT%5D%2CHSlice%5BU%2CV%5D |
23:02:09 | FromDiscord | <ElegantBeef> Close enough |
23:02:16 | FromDiscord | <Varriount> In reply to @ElegantBeef "The macro cache makes": Macro cache? |
23:02:38 | FromDiscord | <ElegantBeef> https://nim-lang.org/docs/macrocache.html gives you a ton of cross module support |
23:02:57 | FromDiscord | <ElegantBeef> If you add a symbol in one module you can remove it from another module and actually can invoke it |
23:03:18 | FromDiscord | <ElegantBeef> Yardanico made a nice writeup for it on devel https://nim-lang.github.io/Nim/macrocache.html |
23:04:29 | FromDiscord | <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:20 | FromDiscord | <ElegantBeef> An example of calling a procedure that isnt exported from another module https://media.discordapp.net/attachments/371759389889003532/840001564088598557/unknown.png |
23:25:45 | FromDiscord | <exelotl> In reply to @ElegantBeef "Yardanico made a nice": Ohh wow that's nice, it was missing good docs :) |
23:25:50 | FromDiscord | <ElegantBeef> Indeed |
23:28:57 | * | xet7 joined #nim |
23:29:50 | * | xet7 quit (Remote host closed the connection) |
23:32:37 | federico3 | Araq: was there a security advisory for this? https://github.com/nim-lang/Nim/commit/abac35e7437dd1ac2b3687dfa51de7f9d4b6e853#diff-123d798b39756a95de82d119d2fe6661157ebb20407e2c394b7490e7588d2294R635 |
23:55:38 | FromDiscord | <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:50 | FromDiscord | <matf> (edit) "syntax." => "syntax this evening." |
23:56:54 | FromDiscord | <ElegantBeef> Yep https://play.nim-lang.org/#ix=3m13 |
23:58:28 | FromDiscord | <matf> Doh that was my mistake, not returning proc but the sugar'd version. Thanks |
23:58:41 | FromDiscord | <matf> HoF ftw. |
23:59:22 | FromDiscord | <ElegantBeef> I totally know what HoF means, and agree |