00:11:53 | FromDiscord | <mratsim> master is not supposed to be used |
00:11:57 | FromDiscord | <mratsim> it should be deleted |
00:14:57 | FromDiscord | <Clyybber> delete master |
00:15:01 | FromDiscord | <Clyybber> reinstate shogunate |
00:16:53 | * | altarrel joined #nim |
00:23:03 | * | altarrel quit (Ping timeout: 260 seconds) |
00:25:08 | Araq | hey Clyybber |
00:25:21 | FromDiscord | <Fern & Simula (They/Them)> what's supposed to be used then, just the tagged releases? |
00:28:14 | FromDiscord | <snluu> semver has one benefit tho, that is to get new minor versions automatically? |
00:28:48 | FromDiscord | <snluu> automatically pulls bug fixes and stuff |
00:28:58 | FromDiscord | <snluu> commit hashes have no incremental guarantee |
00:32:29 | FromDiscord | <Clyybber> Araq: Hey, sup! |
00:33:07 | Araq | working on my alternative exception implementation for fun and profit |
00:36:06 | Araq | if only I could do 'jc procReturn' easily in C |
00:36:22 | FromDiscord | <Clyybber> lol, nice, based on quirky i expect? |
00:36:32 | Araq | yeah |
00:38:41 | disruptek | good. and, thanks (and congrats) for hitting deadline on arc. good story. 😁 |
00:41:02 | Araq | it's still junk but I'll ensure nimgrep and niminst will work with it |
00:41:16 | Araq | (if they don't already) |
00:41:23 | Araq | and then it's time for something bigger |
00:49:26 | dwdv | A rust-like iterator module? ;) |
00:59:07 | Araq | sequtils, zero-functional, sugar.collect |
00:59:11 | Araq | dunno |
01:01:11 | disruptek | we should talk about the cyclic import situation. |
01:02:54 | Araq | workarounds: RootObj, var pseudoCallback: proc (...) |
01:04:29 | Araq | good night |
01:04:50 | disruptek | peace |
01:06:08 | * | Trustable quit (Quit: Leaving) |
01:24:26 | * | gangstacat joined #nim |
01:45:30 | FromDiscord | <Zachary Carter> gitter seems down? |
01:46:17 | FromDiscord | <Zachary Carter> video now - https://imgur.com/xUUVxfv |
02:17:59 | FromDiscord | <Clyybber> @Zachary Carter hey, sup |
02:18:30 | FromDiscord | <Zachary Carter> hey bud |
02:18:46 | * | uu91 joined #nim |
02:18:59 | FromDiscord | <Clyybber> that terrain looks hella nice |
02:19:52 | FromDiscord | <Zachary Carter> thanks |
02:19:53 | * | altarrel joined #nim |
02:20:06 | FromDiscord | <Zachary Carter> need to splat map it now |
02:20:28 | * | Hideki joined #nim |
02:20:36 | FromDiscord | <Clyybber> btw, are you going to use nulkear or imgui? |
02:20:52 | * | Hideki is now known as Guest53989 |
02:21:33 | * | altarrel quit (Client Quit) |
02:21:38 | FromDiscord | <Zachary Carter> probably imgui |
02:21:46 | FromDiscord | <Zachary Carter> since I'm already targeting cpp anyway |
02:23:45 | FromDiscord | <Clyybber> so not via cimgui? |
02:24:57 | FromDiscord | <Zachary Carter> not 100% sure yet |
02:25:11 | * | altarrel joined #nim |
02:25:13 | FromDiscord | <Zachary Carter> plan is to start on a map editor after I figure out how I want to do this terrain |
02:25:24 | FromDiscord | <Zachary Carter> I liked my last approach, but it wasn't performing well with all of the blending I was doing |
02:25:29 | * | Guest53989 quit (Ping timeout: 268 seconds) |
02:25:45 | FromDiscord | <Zachary Carter> rendering this terrain seems to be quite performant since it's using compute programs and tessellation to produce the terrain geometry |
02:25:50 | blackbeard420 | neat terrain, thats done in nim? |
02:27:41 | FromDiscord | <Zachary Carter> yeah |
02:27:51 | FromDiscord | <Zachary Carter> and thanks |
02:35:38 | * | altarrel quit (Ping timeout: 240 seconds) |
02:43:14 | * | dwdv quit (Ping timeout: 240 seconds) |
02:48:53 | * | ofelas quit (Ping timeout: 260 seconds) |
03:12:32 | * | muffindrake quit (Ping timeout: 260 seconds) |
03:14:42 | * | muffindrake joined #nim |
03:17:35 | * | sealmove joined #nim |
03:21:36 | * | dddddd quit (Ping timeout: 268 seconds) |
03:25:28 | * | seerix quit (Ping timeout: 258 seconds) |
03:36:05 | * | seerix joined #nim |
03:58:26 | FromDiscord | <potatotot> Hi, is there a way to represent null values for all types of variables in Nim? I'm trying to code something like |
03:58:26 | FromDiscord | <potatotot> |
03:58:27 | FromDiscord | <potatotot> ``` |
03:58:27 | FromDiscord | <potatotot> variable = None |
03:58:27 | FromDiscord | <potatotot> for i in this_list: |
03:58:27 | FromDiscord | <potatotot> if f(i): |
03:58:27 | FromDiscord | <potatotot> variable = g(i) |
03:58:29 | FromDiscord | <potatotot> |
03:58:30 | FromDiscord | <potatotot> if variable: |
03:58:32 | FromDiscord | <potatotot> doThis() |
03:58:33 | FromDiscord | <potatotot> ``` |
03:58:37 | FromDiscord | <potatotot> where I need to go through an entire list to check something, and based on some condition, I want to set a variable with scope outside of the loop. Is there an elegant way to do this? I couldn't find a NULL or None equivalent in Nim. Is there a particular reason why such a Null concept is not implemented in Nim? |
03:59:29 | sealmove | potatotot: there is Option |
04:00:19 | sealmove | primitive types (which include even stuff like seq and I think set) don't have concept of null |
04:00:27 | sealmove | objects have nil |
04:00:41 | sealmove | but if you want a generic concepts of None, there is options module |
04:00:53 | FromDiscord | <potatotot> right, great. Option sounds like exactly what I need |
04:00:57 | FromDiscord | <potatotot> thanks! |
04:01:38 | sealmove | https://nim-lang.org/docs/options.html |
04:02:13 | sealmove | you're welcome :-] |
04:13:02 | FromDiscord | <potatotot> another basic question: how come the division `/` operator for uint / uint types not implemented? |
04:13:19 | aeverr[m] | sealmove: ref objects have null |
04:13:49 | FromDiscord | <potatotot> for example, when I try to do: |
04:13:49 | FromDiscord | <potatotot> ``` |
04:13:50 | FromDiscord | <potatotot> var tt: uint = 2 |
04:13:50 | FromDiscord | <potatotot> var ttt: uint = 4 |
04:13:50 | FromDiscord | <potatotot> echo tt / ttt |
04:13:50 | FromDiscord | <potatotot> ``` |
04:14:00 | aeverr[m] | potatotot use `div` |
04:14:18 | aeverr[m] | `echo tt div ttt` |
04:14:45 | aeverr[m] | `/` is float division and AFAIK needs one float operator |
04:14:51 | aeverr[m] | I mean argument |
04:14:54 | FromDiscord | <potatotot> I see |
04:15:41 | FromDiscord | <potatotot> It seems it is implemented for int / int operations |
04:15:49 | FromDiscord | <potatotot> ``` |
04:15:49 | FromDiscord | <potatotot> Error: type mismatch: got <uint, uint> |
04:15:50 | FromDiscord | <potatotot> but expected one of: |
04:15:50 | FromDiscord | <potatotot> proc `/`(x, y: int): float |
04:15:50 | FromDiscord | <potatotot> first type mismatch at position: 1 |
04:15:50 | FromDiscord | <potatotot> required type for x: int |
04:15:52 | FromDiscord | <potatotot> but expression 'tt' is of type: uint |
04:15:54 | FromDiscord | <potatotot> proc `/`(x, y: float32): float32 |
04:15:55 | FromDiscord | <potatotot> first type mismatch at position: 1 |
04:15:57 | FromDiscord | <potatotot> required type for x: float32 |
04:15:58 | FromDiscord | <potatotot> but expression 'tt' is of type: uint |
04:16:00 | FromDiscord | <potatotot> proc `/`(x, y: float): float |
04:16:02 | FromDiscord | <potatotot> first type mismatch at position: 1 |
04:16:02 | FromDiscord | <potatotot> required type for x: float |
04:16:03 | FromDiscord | <potatotot> but expression 'tt' is of type: uint |
04:16:05 | FromDiscord | <potatotot> |
04:16:06 | FromDiscord | <potatotot> expression: tt / ttt |
04:16:07 | FromDiscord | <potatotot> ``` |
04:16:10 | FromDiscord | <potatotot> Do you know why the design choice was made to overload integer types but not uint? |
04:17:50 | aeverr[m] | Nope |
04:18:19 | aeverr[m] | Maybe it's in the lenientops module |
04:19:21 | aeverr[m] | Doesn't seem so |
04:22:44 | * | rockcavera quit (Remote host closed the connection) |
04:37:15 | FromDiscord | <Zachary Carter> need to add lighting badly |
04:37:16 | FromDiscord | <Zachary Carter> but |
04:37:19 | FromDiscord | <Zachary Carter> https://imgur.com/IYZDvho |
04:43:01 | * | endragor joined #nim |
04:47:48 | * | chemist69 quit (Ping timeout: 245 seconds) |
04:50:05 | * | chemist69 joined #nim |
04:57:56 | sealmove | :O |
05:00:17 | FromDiscord | <Zachary Carter> well this looks better |
05:00:28 | FromDiscord | <Zachary Carter> https://imgur.com/rljWlrl - textures weren't being sampled correctly in that last screenshot |
05:30:30 | * | NimBot joined #nim |
05:35:06 | sealmove | yeah, feels like more depth in last one |
05:49:29 | FromDiscord | <Zachary Carter> https://imgur.com/8GMSbRG |
05:52:38 | * | uu91 quit (Ping timeout: 260 seconds) |
05:54:05 | * | Hideki joined #nim |
05:54:28 | * | Hideki is now known as Guest40272 |
05:57:17 | * | ponyrider quit (Ping timeout: 258 seconds) |
06:05:17 | * | sagax quit (Read error: Connection reset by peer) |
06:10:37 | * | sagax joined #nim |
06:11:02 | * | sagax quit (Remote host closed the connection) |
06:15:59 | * | kevinchau joined #nim |
06:19:53 | * | kevinchau quit (Client Quit) |
06:20:37 | * | kevinchau joined #nim |
06:20:50 | kevinchau | 👑 |
06:27:49 | * | sagax joined #nim |
06:28:12 | * | judd_ joined #nim |
06:28:58 | * | Guest40272 quit (Remote host closed the connection) |
06:30:28 | judd_ | hello |
06:32:37 | * | solitudesf joined #nim |
06:35:13 | * | narimiran joined #nim |
06:53:46 | FromDiscord | <mfiano> Has anyone gotten another backend besides asyncomplete working with nim.nvim? asyncomplete is much too buggy |
06:57:50 | judd_ | Visual studio Code + vim plugin + nim plugin, :) |
06:59:26 | FromDiscord | <mfiano> No thanks. I prefer working remotely without a GUI |
07:00:20 | sealmove | I don't know, I use ALE plugin |
07:00:29 | sealmove | it works quite nicely |
07:00:43 | sealmove | https://github.com/dense-analysis/ale |
07:01:15 | FromDiscord | <mfiano> I do use ale but I couldn't get it configured for completion with numsuggest |
07:01:24 | FromDiscord | <mfiano> I do use ale but I couldn't get it configured for completion with nimsuggest |
07:01:27 | sealmove | it uses nim check |
07:01:44 | sealmove | yeah, I don't know about completion |
07:01:55 | sealmove | I've seen some cool plugins around but didn't try |
07:02:02 | FromDiscord | <mfiano> Yes I have that much. I'm looking for completion |
07:02:22 | sealmove | this one worth trying? https://github.com/alaviss/nim.nvim |
07:02:35 | FromDiscord | <mfiano> That's what I am using but it's very buggy |
07:02:51 | sealmove | i see :| |
07:03:10 | sealmove | well, there is the server |
07:03:23 | sealmove | PMunch is working on it |
07:03:42 | sealmove | https://github.com/PMunch/nimlsp/ |
07:04:15 | judd_ | When will there be a new release? |
07:04:31 | sealmove | no idea |
07:04:40 | sealmove | maybe you should motivate PMunch :D |
07:04:56 | FromDiscord | <mfiano> Looks like even that uses asyncomplete for completion |
07:05:04 | FromDiscord | <mfiano> That's the unusable/buggy thing of nim.nvim |
07:05:13 | sealmove | hmm... |
07:05:19 | FromDiscord | <mfiano> Looks like it was only tested with automatic completion, and not completion on trigger key |
07:05:26 | * | judd_ quit (Quit: Leaving) |
07:05:33 | FromDiscord | <mfiano> Typing 1 character of the word to complete works, but anything more and it does not |
07:07:17 | * | Hideki joined #nim |
07:07:41 | * | Hideki is now known as Guest42092 |
07:21:01 | sealmove | Zevv: found a bug in npeg |
07:21:56 | sealmove | I used `myArray[^1]` in a match-block and npeg confused `^1` with something else |
07:22:29 | sealmove | errors with: `type mismatch: got <seq[int], NimNode>` |
07:26:33 | * | Guest42092 quit (Ping timeout: 260 seconds) |
07:39:54 | * | sealmove quit (Quit: WeeChat 2.7) |
07:44:23 | * | nsf joined #nim |
08:00:00 | * | gmpreussner quit (Quit: kthxbye) |
08:05:13 | * | gmpreussner joined #nim |
08:06:52 | Zevv | Aah dang I realized that and forgot to fix it. I think I messed up the if/Else chain logic in doSugar in codegen |
08:08:23 | Zevv | I refactored that to add the `@` sugar (which was not even needed in the end), it misses an else case |
08:08:45 | Araq | er ... is this a PR friday? |
08:09:18 | Zevv | 50% of the requirements met |
08:35:07 | * | uu91 joined #nim |
08:38:33 | * | ng0 quit (Quit: leaving) |
08:39:31 | Araq | gotto love modern optimizers, https://godbolt.org/z/VeSnYc |
08:40:39 | * | Hideki joined #nim |
08:41:03 | * | Hideki is now known as Guest26698 |
08:41:06 | * | Guest26698 quit (Remote host closed the connection) |
08:41:39 | Zevv | I even loved the old fashioned and classic ones |
08:43:12 | Araq | 2 instructions per loop or per function call |
08:43:37 | Araq | results are worse for ARM though :-/ |
08:44:50 | Araq | anyway, should be better than our setjmp crap |
08:45:30 | Araq | good thing we have precise exception tracking |
09:12:02 | * | NimBot joined #nim |
09:58:11 | * | salewski joined #nim |
09:59:59 | salewski | I have still no idea if GC_ref() and GC_unref() will work with --gc:arc. Seems it compiles at least... |
10:01:23 | Araq | it's supported |
10:01:38 | Araq | (there is a bug though ... ;-) ) |
10:02:55 | salewski | Oh fine! |
10:04:03 | * | narimiran quit (Ping timeout: 260 seconds) |
10:04:04 | salewski | I thought about if I can replace finalizers with destructors and finally remembered that |
10:04:28 | salewski | subclassing widgets like in https://github.com/StefanSalewski/gintro#extending-or-sub-classing-widgets |
10:05:17 | salewski | would be hardest part. I loose all additional fields of proxy object, its content, |
10:05:56 | salewski | when I get back a gtk widget from gtk and then generate a new Nim proxy object. |
10:06:44 | salewski | But when GC_ref() works and we may perhaps get finalizers again gintro may survive. |
10:06:48 | salewski | Bye. |
10:07:02 | * | kevinchau quit (Remote host closed the connection) |
10:07:46 | * | dwdv joined #nim |
10:09:30 | salewski | And for the cdt crash I have condensed it to furum post https://forum.nim-lang.org/t/5746 |
10:10:47 | salewski | I guess that is a trivial bug, maybe on my side. |
10:10:52 | * | salewski quit (Quit: WeeChat 2.6) |
10:16:06 | Araq | please use the issue tracker... |
10:21:24 | * | krux02 joined #nim |
10:22:03 | * | salewski joined #nim |
10:22:42 | salewski | Yesterday evening I was not really sure that it is a Nim issue... |
10:23:10 | Araq | we can close bugs with "not our bug" too ;-) |
10:23:10 | salewski | Will condense it more and create a github issue then. |
10:23:17 | Araq | thank you |
10:23:23 | salewski | Bye. |
10:23:33 | * | salewski quit (Client Quit) |
10:44:01 | * | ofelas joined #nim |
10:50:20 | * | nsf quit (Quit: WeeChat 2.6) |
11:05:17 | * | Hideki joined #nim |
11:05:40 | * | Hideki is now known as Guest75417 |
11:19:53 | * | ofelas quit (Ping timeout: 245 seconds) |
11:28:59 | * | ofelas joined #nim |
11:32:27 | * | Connor[m] quit (Quit: killed) |
11:32:32 | * | lasso[m] quit (Quit: killed) |
11:32:32 | * | macsek1911[m] quit (Quit: killed) |
11:32:34 | * | Demos[m] quit (Quit: killed) |
11:32:39 | * | nc-x[m] quit (Quit: killed) |
11:32:46 | * | planetis[m] quit (Quit: killed) |
11:32:46 | * | TheManiac[m] quit (Quit: killed) |
11:32:46 | * | yglukhov[m] quit (Quit: killed) |
11:32:49 | * | BitPuffin quit (Quit: killed) |
11:32:53 | * | nergal[m]1 quit (Quit: killed) |
11:32:53 | * | leorize[m] quit (Quit: killed) |
11:32:57 | * | k0mpjut0r quit (Quit: killed) |
11:32:59 | * | xomachine[m] quit (Quit: killed) |
11:32:59 | * | spymasterd[m] quit (Quit: killed) |
11:32:59 | * | aeverr[m] quit (Quit: killed) |
11:32:59 | * | LEdoian[m] quit (Quit: killed) |
11:32:59 | * | watzon[m] quit (Quit: killed) |
11:33:00 | * | GitterIntegratio quit (Quit: killed) |
11:33:04 | * | pigmej quit (Quit: killed) |
11:33:04 | * | Balu[m] quit (Quit: killed) |
11:33:07 | * | vycb[m] quit (Quit: killed) |
11:33:07 | * | Miguelngel[m] quit (Quit: killed) |
11:33:07 | * | d-nice2[m] quit (Quit: killed) |
11:33:09 | * | isaac[m]1 quit (Quit: killed) |
11:33:09 | * | zielmicha[m]1 quit (Quit: killed) |
11:33:09 | * | skrylar[m] quit (Quit: killed) |
11:33:11 | * | lqdev[m] quit (Quit: killed) |
11:33:11 | * | salotz[m] quit (Quit: killed) |
11:33:11 | * | Manny8888 quit (Quit: killed) |
11:49:09 | FromDiscord | <tomku> https://play.nim-lang.org/#ix=25B9 i am confused as to why this doesn't work for ref object |
11:51:54 | * | rockcavera joined #nim |
11:54:00 | * | Trustable joined #nim |
11:55:44 | FromDiscord | <Rika> how do i make a template that can use await |
11:56:19 | FromDiscord | <Rika> @tomku you need to do `new a` then modify its fields when it's a ref object |
11:57:41 | FromDiscord | <Rika> https://play.nim-lang.org/#ix=25Bc |
11:58:14 | FromDiscord | <Rika> ah, should be var |
11:59:00 | FromDiscord | <Rika> okay, i fixed the code -ish |
11:59:05 | Zevv | sealmove: 0.22.1, thanks for reporting |
11:59:11 | FromDiscord | <Rika> https://play.nim-lang.org/#ix=25Bd |
12:00:15 | * | ng0 joined #nim |
12:00:15 | * | ng0 quit (Changing host) |
12:00:15 | * | ng0 joined #nim |
12:03:26 | * | Vladar joined #nim |
12:06:28 | * | Guest75417 quit (Remote host closed the connection) |
12:07:05 | * | Hideki joined #nim |
12:07:27 | * | Hideki is now known as Guest10302 |
12:08:28 | * | narimiran joined #nim |
12:08:30 | * | Guest10302 quit (Remote host closed the connection) |
12:16:22 | * | leorize[m] joined #nim |
12:16:23 | * | BitPuffin joined #nim |
12:16:23 | * | Connor[m] joined #nim |
12:16:23 | * | GitterIntegratio joined #nim |
12:16:23 | * | nergal[m]1 joined #nim |
12:16:23 | * | lqdev[m] joined #nim |
12:16:23 | * | Demos[m] joined #nim |
12:16:24 | * | isaac[m]1 joined #nim |
12:16:24 | * | k0mpjut0r joined #nim |
12:16:29 | * | planetis[m] joined #nim |
12:16:29 | * | vycb[m] joined #nim |
12:16:29 | * | lasso[m] joined #nim |
12:16:29 | * | aurielmp joined #nim |
12:16:29 | * | nc-x[m] joined #nim |
12:16:29 | * | TheManiac[m] joined #nim |
12:16:29 | * | spymasterd[m] joined #nim |
12:16:29 | * | xomachine[m] joined #nim |
12:16:30 | * | macsek1911[m] joined #nim |
12:16:30 | * | zielmicha[m]1 joined #nim |
12:16:30 | * | d-nice2[m] joined #nim |
12:16:30 | * | Miguelngel[m] joined #nim |
12:16:30 | * | watzon[m] joined #nim |
12:16:30 | * | LEdoian[m] joined #nim |
12:16:30 | * | pigmej joined #nim |
12:16:30 | * | aeverr[m] joined #nim |
12:16:30 | * | Manny8888 joined #nim |
12:16:30 | * | salotz[m] joined #nim |
12:16:30 | * | Balu[m] joined #nim |
12:16:30 | * | skrylar[m] joined #nim |
12:16:31 | * | yglukhov[m] joined #nim |
12:17:31 | FromDiscord | <tomku> @Rika it works, thanks! ...what's the difference between explicitly calling new() and modifying the fields vs instantiating object through Animal() and why does it matter in this case? |
12:18:55 | FromDiscord | <Rika> i dont know why; maybe someone who knows the internals more does |
12:30:16 | FromDiscord | <Solitude> @tomku, new has nothing to with that error. you should just dereference ref object to invoke fieldPairs on it. |
12:33:50 | narimiran | Zevv: you here? |
12:46:07 | Zevv | a bit |
12:46:09 | Zevv | sup |
12:47:20 | FromDiscord | <tomku> @Solitude ah, gotcha. I overlooked the square brackets |
12:51:43 | federico3 | https://lobste.rs/s/hbkh21/what_do_you_plan_learn_2020 some Nim here? |
12:54:26 | * | xet7 quit (Quit: Leaving) |
12:55:03 | Zevv | narimiran: im on mobile at 17% so be quick :) |
12:55:34 | narimiran | Zevv: nothing urgent, ping me when you're at computer |
13:01:27 | * | Hideki joined #nim |
13:01:50 | * | Hideki is now known as Guest39279 |
13:04:11 | Zevv | i am now, found an old mac at the attic |
13:04:24 | Zevv | family visits, soooo loooongggg |
13:12:47 | narimiran | Zevv: https://github.com/zevv/npeg/commit/9a2ae34c3ea49ec45d6348692da49128f1ad245e#diff-f84aa6fbd0120ad8b7a25d8bd701865aR40-R41 -- this breaks our testing suite on v1.0.x branch |
13:13:04 | Zevv | ah lemmeguess - I added a --gc:arc test |
13:13:19 | narimiran | can you put it behind some switch which checks that NimVersion >= 1.1 ? |
13:13:33 | Zevv | Hm can I do that inside the .nimble? |
13:13:55 | Zevv | nah nevermind, I'll take it out of the default tests |
13:14:03 | narimiran | thanks :) |
13:16:16 | Araq | do this in your .nimble file: |
13:16:26 | Araq | when (NimMajor, NimMinor) >= (1, 1) |
13:16:37 | Araq | NimScript wins once again |
13:16:58 | Araq | over declarative TOML stuff where everything requires yet another feature |
13:17:34 | Zevv | ha |
13:19:21 | FromDiscord | <zidsal> Hi guys, I'm trying to get a hello world running on windows however when I run nim compile I get the following error `nim-1.0.4\lib\system.nim(669, 9) Error: cannot open file: system\inclrtl` has anyone seen this before?, I've downloaded nim, ran finish.exe and I can see that mingw is installed, and I've confirmed the additional .dll's are in the bin directory. https://ibb.co/9tD20sV (screenshot of env settings e.t.c) |
13:19:36 | Zevv | Ah, and I see I just released a new version with the git commit under the name of my deceased father. Amen. |
13:19:39 | Zevv | :) |
13:20:01 | Araq | zidsal: did you move your nim dir around after finish.exe= |
13:20:03 | Araq | ? |
13:20:23 | FromDiscord | <zidsal> @araq I did not |
13:22:34 | Araq | never seen this error before |
13:23:18 | Araq | do you have the lib\system\inclrtl.nim file? |
13:24:20 | Zevv | narimiran: fixed, sorry for the noise |
13:24:37 | narimiran | Zevv: np, and thanks for the quick fix! |
13:25:18 | FromDiscord | <zidsal> @araq I don't seem to have a system folder atr all in the lib folder! |
13:30:53 | * | dddddd joined #nim |
13:32:55 | FromDiscord | <zidsal> redownloaded and I now have a system folder ob a dodgy unzip by me |
13:36:21 | Araq | alright |
13:39:16 | * | muffindrake quit (Quit: muffindrake) |
13:39:29 | * | muffindrake joined #nim |
13:53:10 | FromDiscord | <zidsal> just writing to confirm its all working ty |
13:58:11 | * | xet7 joined #nim |
14:13:29 | Zevv | narimiran: I do appreciate the personal toch and all, but could we not make CI send mail on module failures? |
14:14:02 | narimiran | Zevv: send to whom? |
14:14:18 | narimiran | e.g. i receive mail notifications when nightlies fail |
14:16:24 | * | nsf joined #nim |
14:17:02 | * | endragor quit (Remote host closed the connection) |
14:18:14 | Zevv | to the individual module authors |
14:18:21 | Zevv | the info is there, in the .nimble files |
14:23:32 | * | PrimHelios joined #nim |
14:23:35 | Araq | bbl |
14:27:15 | PrimHelios | anyone know if it's possible to use a custom port with a router closure in jester? |
14:27:57 | narimiran | Zevv: heh, most of the time it is our fault for breaking some package, and we are the ones who should be notify and fix our end; no need to bother the author |
14:29:03 | PrimHelios | answered my own question: yes |
14:29:08 | * | tane joined #nim |
14:30:14 | * | PrimHelios quit (Quit: Leaving) |
14:37:39 | Zevv | narimiran: fair enough |
15:05:21 | skrylar[m] | was wondering wrt. the json talk yesterday about if there is merit to just squashing multi-level trees in to a single hash table |
15:05:43 | * | sentreen quit (Ping timeout: 250 seconds) |
15:06:15 | * | ng0_ joined #nim |
15:06:15 | * | ng0_ quit (Changing host) |
15:06:15 | * | ng0_ joined #nim |
15:08:38 | * | Guest39279 quit (Remote host closed the connection) |
15:09:19 | * | ng0 quit (Ping timeout: 265 seconds) |
15:09:59 | * | Hideki_ joined #nim |
15:13:24 | * | ng0_ is now known as ng0 |
15:15:05 | * | Hideki_ quit (Ping timeout: 268 seconds) |
15:19:10 | * | sentreen joined #nim |
15:24:02 | lqdev[m] | anyone has any idea on why ALE for vim reports false positives on `nim check`, but running `nim check` manually does not? |
15:24:18 | * | nsf quit (Quit: WeeChat 2.6) |
15:25:41 | FromDiscord | <Fern & Simula (They/Them)> alright asking again because i might be doing it wrong, anyone know if it's possible to use a custom port with a router closure in jester? the way i'm trying it is clearly breaking the router macro |
15:29:40 | FromDiscord | <Fern & Simula (They/Them)> alright the answer really is yes this time, I just need to use the `settings` macro inside the closure |
15:31:58 | * | muffindrake quit (Quit: muffindrake) |
15:32:11 | * | muffindrake joined #nim |
15:38:02 | * | chemist69 quit (Ping timeout: 260 seconds) |
15:39:00 | * | chemist69 joined #nim |
15:52:29 | * | sealmove joined #nim |
15:53:01 | sealmove | Zevv: today I tried new npeg, it works nicely :) |
15:53:53 | sealmove | small annoyance: having to specify state (3rd parameter) in generic peg macro |
16:11:22 | * | sealmove quit (Ping timeout: 258 seconds) |
16:21:01 | * | Hideki_ joined #nim |
16:23:01 | Zevv | yeah, but I cant get it to chose either the one or the other |
16:23:20 | Zevv | so the make then unambigious I need to make 1, 2 or 3 argument variants |
16:24:37 | Zevv | and since this is a rare use case, you'll just have to deal with it :) |
16:48:26 | * | Hideki_ quit (Ping timeout: 240 seconds) |
16:58:40 | * | marmotini_ joined #nim |
17:11:56 | * | endragor joined #nim |
17:20:04 | * | ofelas quit (Ping timeout: 248 seconds) |
17:28:21 | * | ofelas joined #nim |
17:35:12 | FromDiscord | <mratsim> I need to kill nimsuggest every 10 seconds :/ |
17:44:56 | * | tane quit (Ping timeout: 268 seconds) |
17:46:59 | * | endragor quit (Remote host closed the connection) |
17:48:05 | * | tane joined #nim |
17:49:27 | * | endragor joined #nim |
17:56:19 | * | krux02 quit (Remote host closed the connection) |
17:59:32 | * | endragor quit (Remote host closed the connection) |
18:01:06 | * | endragor joined #nim |
18:07:29 | * | sealmove joined #nim |
18:07:58 | FromDiscord | <sealmove> Zevv: sure, np |
18:14:10 | * | donpdonp joined #nim |
18:14:37 | donpdonp | is there a way to suppress the the 'Hint: epoll [processing]' etc msg during compilation? |
18:18:01 | FromDiscord | <mratsim> --hints:off |
18:20:06 | * | belamenso joined #nim |
18:21:13 | * | kahiru joined #nim |
18:21:56 | donpdonp | thx! |
18:30:55 | belamenso | Hi, does anyone know something about the status of zah/nim.vim? The last commit is from March and many important pull requests are not being merged. |
18:36:52 | FromDiscord | <Fern & Simula (They/Them)> looks like it might be unmaintained. if you really need those PRs, you could always fork and manually merge them |
18:36:57 | * | matic joined #nim |
18:41:08 | * | marmotini_ quit (Remote host closed the connection) |
18:41:45 | donpdonp | https://play.nim-lang.org/#ix=25Dp In that example, I would expect "var mvar" to be a shallow copy of m, which means m.things and mvar.things would point to the same memory, but they dont. mvar.things seems to be a new seq[]. why is that? |
18:48:15 | * | marmotini_ joined #nim |
18:55:39 | FromDiscord | <kodkuce> donpdonp: i think if you want to point to same you have to use a pointer or ref object |
18:55:50 | FromDiscord | <kodkuce> tough i am possibly wrong |
18:57:37 | donpdonp | kodkuce: ah Thing = ref object seems to do what I expect. thx |
18:58:03 | * | endragor quit (Remote host closed the connection) |
19:00:24 | * | hexeratops joined #nim |
19:04:31 | * | nsf joined #nim |
19:09:05 | * | Vladar quit (Quit: Leaving) |
19:15:40 | solitudesf | belamenso, https://github.com/alaviss/nim.nvim is the most maintained vim plugin, i wouldn't expect any other plugin to be supported anymore. |
19:16:12 | * | uu91 quit (Ping timeout: 268 seconds) |
19:16:45 | belamenso | solitudesf, thanks, I'll check it out! |
19:40:25 | * | hexeratops quit (Quit: Leaving) |
19:46:55 | FromDiscord | <mfiano> Where can I learn about the up to date "concepts" term? Searching the docs doesn't give anything useful. I came across the term in Nim in Action. |
19:50:14 | lqdev[m] | I solved my ALE problem, it wasn't running `nim check`, rather `nimlsp` and I probably had a broken version of that installed |
19:50:21 | lqdev[m] | removed `nimlsp` and it works now. |
19:53:02 | * | nsf quit (Quit: WeeChat 2.6) |
19:58:44 | FromDiscord | <demotomohiro> @mfiano https://github.com/nim-lang/Nim/blob/devel/doc/manual_experimental.rst#concepts |
20:01:55 | * | Hideki_ joined #nim |
20:06:34 | * | Hideki_ quit (Ping timeout: 265 seconds) |
20:16:13 | * | marmotini_ quit (Remote host closed the connection) |
20:19:53 | * | ofelas quit (Ping timeout: 245 seconds) |
20:29:06 | * | ofelas joined #nim |
20:40:51 | FromDiscord | <mratsim> @Araq, interesting piece on the meaning and the composability of "sync" http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3409.pdf (something I've been struggling with to provide nestable barriers) |
20:41:03 | FromDiscord | <mratsim> i.e. restrict sync semantics to the immediate children |
20:42:17 | disruptek | make software great again. |
20:44:52 | FromDiscord | <mratsim> oftware will eat the world;) |
20:54:31 | FromDiscord | <mratsim> and an accompanying thread on the semantics of concurrency and parallelism: http://www.open-std.org/pipermail/cplex/2014-January/000317.html |
21:03:39 | FromDiscord | <mratsim> (cplex is the mailing list for ISO C Parallel Extension but it seems like it's dead) |
21:04:23 | * | narimiran quit (Ping timeout: 260 seconds) |
21:05:03 | * | belamenso quit (Ping timeout: 265 seconds) |
21:10:58 | * | donpdonp quit (Quit: ZNC 1.7.1 - https://znc.in) |
21:36:07 | * | donpdonp joined #nim |
21:44:30 | * | Hideki_ joined #nim |
21:49:50 | * | donpdonp left #nim ("WeeChat 2.6") |
21:49:56 | * | ofelas quit (Ping timeout: 248 seconds) |
21:53:07 | * | nsf joined #nim |
21:53:43 | * | leorize joined #nim |
21:54:34 | * | Hideki_ quit (Remote host closed the connection) |
21:55:10 | * | Hideki_ joined #nim |
21:58:20 | * | ofelas joined #nim |
21:59:03 | * | adeohluwa joined #nim |
21:59:14 | * | Hideki_ quit (Ping timeout: 240 seconds) |
22:04:14 | stefantalpalaru | "In May 2018, GCC 8.1 was released with Cilk Plus support removed." - It's dead, Jim! |
22:05:40 | stefantalpalaru | Superseded by OpenMP, probably. |
22:08:04 | * | adeohluwa left #nim (#nim) |
22:08:25 | * | adeohluwa joined #nim |
22:08:32 | * | adeohluwa quit (Remote host closed the connection) |
22:08:56 | * | letto joined #nim |
22:09:20 | * | letto_ quit (Ping timeout: 265 seconds) |
22:16:00 | lqdev[m] | do methods in Nim use some sort of RTTI? |
22:17:36 | disruptek | runtime dispatch, yes. |
22:18:38 | lqdev[m] | where can I read up on that? I wanted to implement something similar for rod. |
22:21:59 | leorize | isn't newruntime is gonna do away with RTTI? |
22:22:21 | disruptek | i don't know. i found almost zero docs on methods and dispatch based upon inheritance. it was a huge stumbling block for me when i started with nim. |
22:22:45 | leorize | lqdev[m]: iirc Araq said that vtables could be a better solution compared to the current tree-dispatching method |
22:23:33 | lqdev[m] | yeah, but how could I implement them for a dynamic language? do I need to annotate each value with a type field, then? |
22:23:42 | disruptek | i can't remember if arc deprecates rtti fully or if it is just NYI. |
22:23:58 | * | sealmove quit (Ping timeout: 258 seconds) |
22:24:43 | FromDiscord | <Clyybber> it has a new form or rtti |
22:24:45 | FromDiscord | <Clyybber> tinyRtti |
22:24:54 | FromDiscord | <Clyybber> lqdev[m]: Yes |
22:24:57 | leorize | lqdev[m]: well yea? even in a dynamic lang you'd still need the current types :P |
22:25:13 | FromDiscord | <mratsim> @stefantalpalaru, no, it's not superceded, OpenMP task support is veeeerryyyy slow with GCC |
22:25:57 | FromDiscord | <mratsim> You can use LLVM: https://gitlab.com/wustl-pctg-pub/llvm-cilk |
22:26:11 | FromDiscord | <Clyybber> @mratsim Do you have a comparision curve for weave with lastvictim vs randomvictim? |
22:26:19 | FromDiscord | <Clyybber> and if so, where is the pivot point? |
22:26:27 | FromDiscord | <mratsim> it's in the PR |
22:26:31 | FromDiscord | <Clyybber> oh |
22:26:32 | FromDiscord | <mratsim> 35 microseconds |
22:27:08 | FromDiscord | <mratsim> Fibonacci takes a 8% perf hit but who in his right mind parallelizing fibonacci 😉 |
22:27:18 | FromDiscord | <mratsim> depth first search also |
22:27:28 | FromDiscord | <mratsim> but black scholes has 3~4% perf improvement |
22:27:33 | FromDiscord | <mratsim> and matrix multiplication 15% |
22:27:50 | FromDiscord | <Clyybber> so perf decrease for long runners and perf increase for short runners |
22:28:17 | FromDiscord | <mratsim> no, perf increase for long tasks and decrease for short tasks |
22:28:28 | FromDiscord | <Clyybber> Oh |
22:28:46 | FromDiscord | <Clyybber> yeah |
22:28:52 | FromDiscord | <Clyybber> lol |
22:28:53 | FromDiscord | <mratsim> the reason is that when a worker is stuck in a long task it can answer steal requests, so it's better if the steal requests land directly in the correct queue |
22:29:17 | FromDiscord | <mratsim> in the case of parallel loop, and in many cases you have a single producer of tasks |
22:29:29 | FromDiscord | <mratsim> so targeting it repeatedly is beneficial |
22:30:00 | FromDiscord | <mratsim> Steal last thief is 15% perf decrease on GEMM btw 😉 |
22:30:06 | FromDiscord | <Clyybber> hmm, so perf increase for wide task trees and perf decrease for narrow ones, is that right? |
22:30:12 | FromDiscord | <mratsim> yes |
22:30:13 | * | Hideki joined #nim |
22:30:36 | lqdev[m] | leorize: not if it's statically typed. |
22:30:37 | * | Hideki is now known as Guest64990 |
22:30:40 | FromDiscord | <mratsim> but AFAIK due to my use of lock-free structure, the gap may be lower than 32us |
22:31:01 | leorize | lqdev[m]: ? |
22:31:08 | FromDiscord | <mratsim> plus my memory pools already increased fine-grained task perf by 10%+ |
22:31:42 | FromDiscord | <mratsim> I have yet to run the SPC and BPC bench which are very good at stressing load balancing |
22:32:47 | FromDiscord | <Clyybber> lqdev[m]: wdym with "dynamic" language then? |
22:33:37 | FromDiscord | <Clyybber> of course you don't need dynamic dispatch, and not rtti if you don't support runtime inheritance |
22:34:15 | FromDiscord | <Clyybber> but IF you support stuff like storing a button in a widget array you will need it |
22:34:41 | FromDiscord | <mratsim> 22% perf hit on the bouncing producer-consumer bench and 2~3% perf increase on the single task producer-consumer bench |
22:34:49 | FromDiscord | <Clyybber> hmm |
22:34:56 | disruptek | buttons are overrated. we're moving to switches everywhere. |
22:35:09 | FromDiscord | <mratsim> (bouncing producer-consumer is very hard and kill all runtimes) |
22:35:16 | * | ofelas quit (Ping timeout: 248 seconds) |
22:36:42 | FromDiscord | <Clyybber> @mratsim last steal is an heuristic right? So the optimum is somewhere inbetween (theoretically? discarding the time it takes to compute that optimum)? |
22:36:43 | FromDiscord | <mratsim> and it's with 1microsecond tasks |
22:37:50 | FromDiscord | <Clyybber> disruptek: switches are overrated. |
22:38:04 | FromDiscord | <Clyybber> just replace the circuit/code/product |
22:38:20 | FromDiscord | <mratsim> for message passing-based runtime, victim selection is hard. In classic runtime you can snoop around potential victims queue to see if you can steal before initiating costly steal operations (which need synchronization between thief and victim) |
22:38:41 | FromDiscord | <mratsim> but even then randomized victim selection is optimal |
22:39:00 | FromDiscord | <mratsim> in my case, I do last thief/victim and fallback to randomized |
22:39:13 | FromDiscord | <mratsim> or randomized from scratch |
22:39:24 | FromDiscord | <mratsim> (which was the default until the PR that is pending) |
22:39:25 | * | sealmove joined #nim |
22:39:38 | FromDiscord | <Clyybber> how do you think weighted randomized would fare? (bigger weight to the last victims? |
22:39:57 | FromDiscord | <mratsim> I have no space to remember more than one victim |
22:40:21 | FromDiscord | <mratsim> it requires a field in the task object |
22:40:38 | FromDiscord | <mratsim> also just hitting the last victim is probably enough |
22:40:56 | * | Guest64990 quit (Ping timeout: 268 seconds) |
22:40:56 | lqdev[m] | leorize, Clyybber: I mean, interpreted. |
22:41:20 | sealmove | rod is interpreted? |
22:42:37 | FromDiscord | <mratsim> right now my main focus is reaching OpenMP perf on plain big loops. OpenMP cannot beat me when the loops are too small because it will parallelized for naught, but when the loops are big, it spends all its time doing actual work while in my case I still have work-stealing overhead in the background. |
22:43:01 | lqdev[m] | sealmove: yeah, it is |
22:43:15 | lqdev[m] | it's a scripting language after all |
22:46:01 | sealmove | i'd love a nim-like shell, similar to xonsh/python |
22:47:05 | lqdev[m] | rod isn't exactly Nim, but I might change the current brace syntax to an indentation based one before release |
22:47:18 | lqdev[m] | also, `nim secret` is a thing |
22:47:36 | * | ofelas joined #nim |
22:48:06 | leorize | lqdev[m]: nim secret is no where near xonsh :) |
22:48:08 | sealmove | oh I was wondering about braces, nice |
22:48:32 | sealmove | well, nim secret is not even a shell, it's an interpreter |
22:48:42 | sealmove | xonsh is both |
22:49:08 | FromDiscord | <mratsim> what's the difference between a turing complete interpreter and a turing complete shell |
22:49:13 | leorize | lqdev[m]: so your language is a statically-typed but intepreted language? |
22:49:29 | leorize | @mratsim: a shell has better dsls for launching external apps :p |
22:49:31 | lqdev[m] | exactly |
22:49:54 | lqdev[m] | I wanted static typing because of its readability and potential speed benefits |
22:50:04 | leorize | ah, ok |
22:50:28 | leorize | so does it have inheritance? |
22:50:42 | lqdev[m] | it likely will, but not right away |
22:50:57 | lqdev[m] | I want it to execute some code first |
22:51:24 | lqdev[m] | right now it only compiles some bytecode, but it's highly unfinished |
22:51:36 | leorize | lqdev[m]: so this is kinda how the vtable would be: https://nim-lang.org/docs/streams.html#StreamObj |
22:51:42 | lqdev[m] | and I'm not touching the VM before it can do procs |
22:51:45 | sealmove | hmm, statically-typed + interpreted, does any other language like this pop in mind? |
22:51:45 | leorize | your datatypes will have a pointer to it |
22:52:12 | lqdev[m] | sealmove: there's shine, but it's fairly obscure |
22:52:25 | lqdev[m] | there's also angelscript afaik |
22:52:36 | FromDiscord | <mratsim> Seems like an interesting DSL to build on top of npeg: https://github.com/tlack/xxl |
22:52:36 | lqdev[m] | and of course, there's java ;) |
22:53:48 | sealmove | is java considered interpreted? |
22:54:02 | FromDiscord | <mratsim> JIT |
22:54:18 | leorize | java is still compiled |
22:54:20 | lqdev[m] | technically is has a VM |
22:54:36 | lqdev[m] | but yeah, it's compiled |
22:54:41 | sealmove | i think as soon as a language has types, there must be some compilation, no? |
22:55:05 | leorize | it has an interpreter for its bytecode so maybe? |
22:55:22 | leorize | but technically CPUs are just instruction interpreters |
22:55:27 | leorize | does that make everything interpreted? :P |
22:55:29 | lqdev[m] | even most dynamically typed langs compile down to bytecode |
22:55:41 | lqdev[m] | :thinking: |
22:55:51 | sealmove | yeah, the lines are blur |
22:56:29 | sealmove | i guess only languages like bash are trully interpreted |
22:56:36 | sealmove | no bytecode |
22:57:33 | lqdev[m] | yeah |
22:57:40 | * | solitudesf quit (Ping timeout: 265 seconds) |
22:57:40 | * | ofelas quit (Ping timeout: 248 seconds) |
22:58:59 | lqdev[m] | I usually just call these languages dynamic and static, dynamic are ones that compile to memory, static are ones that compile to executables. but my naming's likely inaccurate |
23:01:43 | * | leorize quit (Ping timeout: 240 seconds) |
23:05:34 | * | leorize joined #nim |
23:09:07 | * | ofelas joined #nim |
23:12:22 | skrylar[m] | people will assume you are talking about dynamic typing if you call a language that |
23:14:28 | * | ofelas quit (Ping timeout: 245 seconds) |
23:18:01 | * | leorize_ joined #nim |
23:20:03 | * | leorize quit (Ping timeout: 240 seconds) |
23:20:17 | * | leorize_ is now known as leorize |
23:28:30 | lqdev[m] | so, what would be a shorter name for a statically-typed bytecode interpreted language? |
23:30:41 | leorize | statically-typed interpreted language |
23:30:52 | leorize | bytecode is more or less implementation info |
23:31:55 | skrylar[m] | ruby was interpreted for a long while |
23:32:54 | sealmove | languages with types that use VM are usually ones like java, C# etc |
23:33:06 | sealmove | these language all implement some kind of JIT for performance |
23:33:35 | sealmove | so ppl usually categorize statically-typed languages who run on VM as "JITed languages" |
23:36:23 | sealmove | but of course there are dynamically-typed languages who use JIT, so this convention is bad |
23:44:34 | * | nsf quit (Quit: WeeChat 2.6) |
23:44:47 | * | matic quit (Read error: Connection reset by peer) |
23:49:56 | FromDiscord | <Clyybber> Araq: Hey, are goto-exceptions faster than set/longjmp ? |
23:50:40 | * | ng0 quit (Quit: leaving) |
23:57:11 | sealmove | hey, have anyone used flex/bison with Nim? |
23:58:21 | disruptek | madness. |
23:58:39 | disruptek | is no one using nimph? |
23:59:30 | disruptek | posted on the forum and looks like 400 views but i only got one tiny bug out of it, trivially fixed. 🤷♂️ |