00:18:35 | FromDiscord | <Patitotective> should i separate integers from floats in my kdl parser đ€ â”like `2` ends in a `KdlInt` while `2.0` in a `KdlFloat`â”right now all numbers are just floats |
00:27:29 | FromDiscord | <Patitotective> !eval assert 1.23E-1000 == 0 |
00:27:32 | FromDiscord | <Patitotective> interesting |
00:28:29 | NimBot | Compile failed: <no output> |
00:30:26 | * | meowray left #nim (WeeChat 3.3) |
00:59:04 | * | jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzzâŠ) |
01:26:09 | FromDiscord | <retkid> for example |
02:22:58 | FromDiscord | <Patitotective> đ |
02:54:29 | FromDiscord | <Prestige> Is there a way to disabled nimsuggest in the nim.nvim plugin? |
02:54:35 | FromDiscord | <Prestige> It's lagging my editor to hell |
02:55:01 | FromDiscord | <Rika> I noticed that too |
02:55:17 | FromDiscord | <Rika> Itâs weird, it didnât do that before |
02:55:26 | * | tiorock joined #nim |
02:55:26 | * | tiorock quit (Changing host) |
02:55:26 | * | tiorock joined #nim |
02:55:26 | * | rockcavera is now known as Guest3832 |
02:55:26 | * | Guest3832 quit (Killed (sodium.libera.chat (Nickname regained by services))) |
02:55:26 | * | tiorock is now known as rockcavera |
02:55:35 | FromDiscord | <Prestige> Yeah I like can't type |
02:55:40 | FromDiscord | <Rika> In reply to @Avahe "Is there a way": Well, just disable the plugin. I believe everything it does interfaces with suggest |
02:56:49 | FromDiscord | <Prestige> Any other way to get decent syntax highlighting? |
02:57:34 | FromDiscord | <Rika> Not with neovim right now I think, no tree sitter grammar implemented yet iirc |
02:57:43 | FromDiscord | <Prestige> well shit |
02:58:19 | FromDiscord | <Rika> Join me on theâI donât need no damn highlightingâ team |
02:58:23 | FromDiscord | <Rika> (edit) "theâI" => "the âI" |
02:58:38 | FromDiscord | <Prestige> It's a losing team |
02:59:40 | FromDiscord | <Rika> No itâs a winner because you no longer need to set up your editors to work x d |
02:59:54 | FromDiscord | <Rika> Too bad you incur -1000% productivity |
03:06:55 | FromDiscord | <Prestige> Why can't we focus on good editor support |
03:07:04 | FromDiscord | <Prestige> It's like the worst thing about this lang |
03:09:29 | FromDiscord | <Elegantbeef> Just touch type looking at your pet then you never have any issues |
03:10:53 | FromDiscord | <Rika> In reply to @Avahe "Why can't we focus": Because barely anyone wants to touch suggest even in a hazmat suit |
03:11:28 | FromDiscord | <Prestige> rewrite it lol |
03:11:31 | FromDiscord | <Elegantbeef> Status has hired someone to focus on tooling but dont know if it's full time |
03:11:40 | FromDiscord | <Rika> In reply to @Avahe "rewrite it lol": Itâs a big job |
03:11:51 | FromDiscord | <Rika> Itâs almost like telling someone to just rewrite the compiler |
03:11:57 | FromDiscord | <Elegantbeef> It's tightly coupled to the compile for obvious reasons so it's indeed fun |
03:13:49 | FromDiscord | <Elegantbeef> It's likely that the v3 of nimsuggest solves you false positive issue since i think it uses a cache |
03:14:19 | FromDiscord | <Elegantbeef> Maybe I'll type words properly before I die. |
03:15:45 | FromDiscord | <Rika> Nah, you wonât |
03:15:57 | FromDiscord | <Rika> Because youâre about to die :GunbaRuby: |
03:16:10 | FromDiscord | <Elegantbeef> Finally |
04:18:59 | FromDiscord | <Tuatarian> how would I do arbitrarily nested sequences? |
04:19:13 | FromDiscord | <Tuatarian> trying to represent an AST and want to do it this way instead of another treerepr |
04:19:42 | FromDiscord | <Tuatarian> the problem is it's not known how deep each element can be nested, and it's not the same depth per element |
04:19:55 | FromDiscord | <Tuatarian> so you can have something like `[1, [1, 2], 3,]` etc |
04:20:16 | FromDiscord | <Tuatarian> I was looking at this thread from nimforum, but I was wondering if there was a better way? |
04:20:17 | FromDiscord | <Tuatarian> https://forum.nim-lang.org/t/1160 |
04:20:39 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4b0S |
04:21:00 | FromDiscord | <Tuatarian> would `elem.value` or `elem.children` compile? |
04:21:07 | FromDiscord | <Elegantbeef> or use a object variant like Nim's AST with `ref Object` |
04:21:13 | FromDiscord | <Tuatarian> or would I somehow need to verify that the field exists |
04:21:25 | FromDiscord | <Tuatarian> this isn't an object variant? |
04:21:29 | FromDiscord | <Elegantbeef> You'd ensure `isCol` then access `children` or `value` |
04:21:42 | FromDiscord | <Elegantbeef> I more mean copy Nim's AST and use `ref object` |
04:22:02 | FromDiscord | <Tuatarian> `type element = ref object...` |
04:22:07 | FromDiscord | <Tuatarian> the same thing you did but with a ref object |
04:22:13 | FromDiscord | <Tuatarian> right? |
04:22:36 | FromDiscord | <Elegantbeef> Yes |
04:22:38 | FromDiscord | <Tuatarian> also, would the compiler need to verify if I've ensured `isCol`? |
04:22:48 | FromDiscord | <Elegantbeef> and also using an enum instead of a bool |
04:22:59 | FromDiscord | <Elegantbeef> The compiler ensures it where it can but it needs runtime checks |
04:23:03 | FromDiscord | <Tuatarian> right, incase there's more than 1 thing |
04:23:42 | FromDiscord | <Tuatarian> ok and I guess those checks can be disabled with `-d:danger`? |
04:23:55 | FromDiscord | <Tuatarian> if in theory somehow I wanted to |
04:24:05 | FromDiscord | <Elegantbeef> Yea or just with pragmas for the blocks you want to disable them |
04:24:13 | FromDiscord | <Tuatarian> ok thanks |
04:25:16 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4b0T |
04:25:41 | FromDiscord | <Elegantbeef> That's the more sane way |
04:27:10 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4b0U |
04:31:21 | FromDiscord | <Elegantbeef> https://nim-lang.org/1.6.6/compiler/ic/packed_ast.html for a nim reference there is this |
04:50:31 | * | sagax joined #nim |
05:09:10 | FromDiscord | <Tuatarian> hmm.. what if a node has more than 2 children? |
05:11:44 | FromDiscord | <Elegantbeef> you say it's a collection then iterate left .. right |
05:12:02 | FromDiscord | <Elegantbeef> Or design the AST an other way that makes sense |
05:12:16 | FromDiscord | <Tuatarian> right, but if you for example have a call, then that may well have 3 children |
05:12:28 | FromDiscord | <Tuatarian> from just a seq it's not clear whether an identifier is part of the call or after the call |
05:12:55 | FromDiscord | <Elegantbeef> but you know it's a `nkCall` |
05:12:59 | FromDiscord | <Elegantbeef> sorry nim ast naming |
05:13:16 | FromDiscord | <Elegantbeef> So you know the `left` is the name of the procedure, then you know the right is the arguments |
05:13:38 | FromDiscord | <Elegantbeef> or you know the `left` is the name and the arguments are stored sequentially up to `right` |
05:13:59 | FromDiscord | <Tuatarian> oh they're ints |
05:14:03 | FromDiscord | <Tuatarian> that makes a lot more sense |
05:14:03 | FromDiscord | <Elegantbeef> Remember that this type of AST is an index into a sequence of Nodes |
05:14:06 | FromDiscord | <Tuatarian> right |
05:14:14 | FromDiscord | <Tuatarian> yeah so basically each node knows it's own information |
05:14:17 | FromDiscord | <Elegantbeef> It's like managed pointers |
05:14:29 | FromDiscord | <Tuatarian> I understand, thanks |
05:14:39 | FromDiscord | <Elegantbeef> You can go about how the values are stored a few different ways, but yea this is the best way for modern CPUs |
05:15:08 | FromDiscord | <Tuatarian> for cache locality reasons? |
05:15:16 | FromDiscord | <Elegantbeef> Yep |
05:15:21 | FromDiscord | <Tuatarian> also, why do nimnode stuff use hungarian notation? |
05:15:31 | FromDiscord | <Elegantbeef> Data oriented design is pretty much "We now have a cache now" |
05:15:31 | FromDiscord | <Elegantbeef> Object pascal transpiled code |
05:56:44 | * | curious-antelope joined #nim |
05:56:45 | * | curious-antelope left #nim (#nim) |
06:42:58 | FromDiscord | <praise01> Thank me later https://t.me/+kaz97seJgx9jNTNh |
06:49:06 | FromDiscord | <Prestige> <@&371760044473319454> |
06:50:50 | * | rockcavera quit (Remote host closed the connection) |
07:21:36 | * | smudge-the-cat joined #nim |
07:21:37 | * | smudge-the-cat left #nim (#nim) |
07:35:45 | FromDiscord | <Bung> does proc call with array construction match varargs by design ? |
07:36:03 | FromDiscord | <Elegantbeef> Yes |
07:37:05 | FromDiscord | <Bung> weird , I create PR solve another problem, but it issues while element initialize with generic it will not match |
07:38:21 | FromDiscord | <Bung> but plain object with concrete fields type works |
07:40:23 | FromDiscord | <Forest [She/Her]> Is it possible to do cyclic imports in Nim at all? |
07:40:34 | FromDiscord | <Forest [She/Her]> I kinda need to be able to do it to wrap Java code |
07:41:33 | FromDiscord | <Elegantbeef> Only delayed |
07:42:52 | FromDiscord | <Forest [She/Her]> Hm... |
07:43:59 | FromDiscord | <Forest [She/Her]> Is there a way with macros i could maybe make a one-time importer-thing? |
07:44:16 | FromDiscord | <Forest [She/Her]> If the definition is already there, ignore the import, otherwise follow it |
07:46:19 | * | jjido joined #nim |
07:46:47 | FromDiscord | <ravinder387> In reply to @Elegantbeef "Yes": how to use randomize() at the server side https://media.discordapp.net/attachments/371759389889003532/1022051250260430868/2022-09-21_9.png |
08:00:17 | * | smudge-the-cat joined #nim |
08:00:18 | * | smudge-the-cat left #nim (#nim) |
08:26:23 | FromDiscord | <Forest [She/Her]> Rip i need cyclic imports but idk how to go about it |
08:27:11 | FromDiscord | <Forest [She/Her]> sent a code paste, see https://play.nim-lang.org/#ix=4b1M |
08:27:28 | FromDiscord | <Elegantbeef> You cannot do cyclical imports in Nim without intelligently delaying them |
08:27:33 | FromDiscord | <Elegantbeef> And even then it doesnt work |
08:27:52 | FromDiscord | <Elegantbeef> The issue isn that you import multiple times it's that you create a cyclical graph |
08:28:03 | * | jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzzâŠ) |
08:28:20 | FromDiscord | <Forest [She/Her]> Rip... Could this be worked around with using `include`? |
08:28:35 | FromDiscord | <Elegantbeef> Kinda but not really |
08:28:44 | FromDiscord | <Forest [She/Her]> In reply to @Elegantbeef "The issue isn that": Ah... Honestly there's no decent way to work around this tbh |
08:28:59 | FromDiscord | <Forest [She/Her]> In reply to @Elegantbeef "Kinda but not really": Wdym by this? |
08:29:13 | FromDiscord | <Forest [She/Her]> In reply to @Dreamer (Previously Forest) "Ah... Honestly there's no": Java heavily relies on cyclic imports which sucks |
08:29:18 | FromDiscord | <Elegantbeef> You can include all the files but if files import other files you import that include aswell |
08:30:40 | FromDiscord | <Forest [She/Her]> Hm... |
08:30:49 | FromDiscord | <Elegantbeef> But yea you can do delayed imports like https://github.com/beef331/truss3d/blob/master/src/truss3D/gui.nim#L92â”https://github.com/beef331/truss3d/blob/master/src/truss3D/guicomponents/dropdowns.nim#L2 |
08:30:52 | FromDiscord | <Forest [She/Her]> Idk how else i could do this then |
08:30:58 | * | arkurious joined #nim |
08:31:12 | FromDiscord | <Forest [She/Her]> Yeah delayed imports don't help here sadly |
08:31:20 | FromDiscord | <Elegantbeef> The first imports the latter and the latter imports the first but due to delaying you have access to all symbols above the `import` in the first |
08:32:27 | FromDiscord | <aph> there's `1..2` for intâ”what's the type for all float32 from 0 to 1 |
08:32:51 | FromDiscord | <Elegantbeef> `0f..1f` |
08:33:12 | FromDiscord | <Forest [She/Her]> In reply to @Elegantbeef "The first imports the": yeah i see that but idk how it'd help |
08:33:37 | FromDiscord | <Elegantbeef> It generally helps in cases of cyclical imports |
08:33:46 | FromDiscord | <Elegantbeef> Hard cyclical imports are impossible |
08:33:48 | FromDiscord | <Elegantbeef> You need a single file |
08:34:18 | FromDiscord | <Forest [She/Her]> Since for example, `String` is a subclass of `Object` in java, yet `Object` has a `toString` method that returns a `String` |
08:34:45 | FromDiscord | <Forest [She/Her]> In reply to @Elegantbeef "You need a single": Rip that'll make it so much more messy then i wanted |
08:35:01 | FromDiscord | <Elegantbeef> Well it's a hard requirement of Nim |
08:35:05 | FromDiscord | <Elegantbeef> The worst part of Nim really |
08:35:23 | FromDiscord | <Forest [She/Her]> rip |
08:35:50 | FromDiscord | <Rika> Separate types from procs in files |
08:36:12 | FromDiscord | <Forest [She/Her]> Fields also have cyclic referencing |
08:36:23 | FromDiscord | <Elegantbeef> So what |
08:36:41 | FromDiscord | <Forest [She/Her]> Does that work? I thought Nim would be messy with that |
08:36:52 | FromDiscord | <Forest [She/Her]> Either way it'd require one or two files |
08:37:00 | FromDiscord | <Rika> Types can be cyclic in the same block |
08:37:00 | FromDiscord | <Elegantbeef> I mean how do you think Nim does trees? |
08:37:24 | FromDiscord | <Forest [She/Her]> In reply to @Rika "Types can be cyclic": Yeah that doesn't help when it comes to keeping code clean |
08:37:36 | FromDiscord | <Forest [She/Her]> In reply to @Elegantbeef "I mean how do": No idea :p |
08:37:44 | FromDiscord | <Rika> No choice here |
08:37:46 | FromDiscord | <Elegantbeef> I mean it does cause that's how you... keep code clean |
08:37:56 | FromDiscord | <Elegantbeef> Having multiple type sections is awful |
08:38:03 | FromDiscord | <Forest [She/Her]> Not when it comes to clean Java interop |
08:39:06 | FromDiscord | <aph> In reply to @Elegantbeef "`0f..1f`": thx |
08:39:19 | FromDiscord | <Forest [She/Her]> I wanna make it so wrapped Java methods and classes can work with autocomplete in a neat way but bleh this won't be doable |
08:43:10 | FromDiscord | <Forest [She/Her]> Hm... Maybe I can make a macro to include files? Would have an index of files using JSON or something |
08:44:03 | FromDiscord | <Elegantbeef> How does that solve the cycical graph |
08:44:54 | FromDiscord | <Forest [She/Her]> To use `include` statements in the macro to do magic |
08:45:25 | FromDiscord | <Elegantbeef> And the json file is better than just using include directly? |
08:45:30 | FromDiscord | <Forest [She/Her]> I could even forgo generation of Nim files maybe? |
08:46:24 | FromDiscord | <Elegantbeef> You want this to work with autocomplete but dont want nim files |
08:46:33 | FromDiscord | <Forest [She/Her]> In reply to @Elegantbeef "And the json file": Yeah, i don't want to include unneeded classes, even with deadcode elimination, you'd get bombarded with "Symbol is defined but doesn't exist" |
08:46:59 | FromDiscord | <Elegantbeef> What? |
08:47:37 | FromDiscord | <Forest [She/Her]> Whenever you define anything that isn't used you get `XDeclaredButNotUsed` messages |
08:48:25 | FromDiscord | <Elegantbeef> `{.used.}` |
08:48:36 | FromDiscord | <Elegantbeef> Solved that |
08:48:38 | FromDiscord | <Forest [She/Her]> That exists? |
08:48:50 | FromDiscord | <Forest [She/Her]> Hm alright, i'll use that |
08:48:55 | FromDiscord | <Elegantbeef> No i'm an asshole that'd lie to you |
08:50:01 | FromDiscord | <Forest [She/Her]> :p |
08:51:20 | FromDiscord | <Forest [She/Her]> Time for some JNI |
09:34:51 | FromDiscord | <Forest [She/Her]> How strong is `JNim`'s integration with Java? Do things like `JvmObject<Type>` |
09:35:16 | * | jmdaemon quit (Ping timeout: 244 seconds) |
09:35:25 | FromDiscord | <Forest [She/Her]> Looking through source code, looks like it does :) |
09:53:13 | FromDiscord | <Forest [She/Her]> WHY IS THIS SO ANNOYING |
09:53:27 | FromDiscord | <Forest [She/Her]> Wrong channel |
09:58:55 | * | Guest6554 joined #nim |
09:59:02 | * | Guest6554 quit (Client Quit) |
10:23:09 | * | vicecea quit (Remote host closed the connection) |
10:23:41 | * | vicecea joined #nim |
11:48:33 | * | qwr quit (Ping timeout: 268 seconds) |
12:03:01 | * | jjido joined #nim |
12:08:08 | FromDiscord | <amadan> Anyone got any ideas to name a library thats a wrapper around slint? (https://slint-ui.com/)â”Getting ready to publish and currently its called "slink" which isn't exactly creative lol |
12:29:37 | FromDiscord | <Rika> Splint |
12:40:37 | * | jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzzâŠ) |
12:42:11 | FromDiscord | <Bung> slinim |
12:43:01 | FromDiscord | <Bung> snimt |
12:43:56 | FromDiscord | <enthus1ast> slintNim nimSlint |
12:46:46 | FromDiscord | <techroot> Is there a way to create dynamic arbitrarily nested data structure, something like `{"a": 1, "b": {"c": "foo"}}`? |
13:00:28 | FromDiscord | <fbpyr> nimslintshady |
13:01:39 | FromDiscord | <Yardanico> In reply to @techroot "Is there a way": yes, with object variants, e.g. check std/json |
13:02:27 | FromDiscord | <Phil> In reply to @fbpyr "nimslintshady": chicka chicka slinshady |
13:02:33 | FromDiscord | <Phil> (edit) "slinshady" => "slintshady" |
13:03:02 | FromDiscord | <Phil> Thanks, I needed that earworm right now |
13:23:37 | FromDiscord | <estherbtc> Click on the link and thank me later đđđhttps://t.me/+6418gUGZ6qQ2YzE0 |
13:24:19 | FromDiscord | <Prestige> <@&371760044473319454> |
13:30:03 | * | DixieFlatline quit (Quit: WeeChat 3.3) |
15:00:43 | * | derpydoo joined #nim |
15:13:16 | FromDiscord | <Kiloneie> Is {.base.} pragma implicitly placed ? I read some posts regarding this and tried it myself and all you get is a warning. |
15:23:53 | FromDiscord | <Tanguy> Yes, that's a very bad idea though, always place it manually |
15:24:15 | FromDiscord | <Kiloneie> Why is it a bad idea ? what can happen ? |
15:24:18 | NimEventer | New thread by drkameleon: Compile-time avoid Exception statement, see https://forum.nim-lang.org/t/9483 |
15:25:41 | FromDiscord | <Tanguy> If you start to modify the base method (params, name, return type) and forget to change one of the implementation, the only warning you will get is the "implicit base" warning |
15:27:03 | FromDiscord | <Tanguy> On my codebase I always put the `.base.` and change the warning to an error, because it always means bad news |
15:39:10 | FromDiscord | <Kiloneie> Nim Playground fix ETA ? |
15:40:27 | * | vicecea quit (Remote host closed the connection) |
15:40:46 | FromDiscord | <Kiloneie> pastecode.io has nim syntaxing |
15:41:25 | * | vicecea joined #nim |
15:41:31 | * | rockcavera joined #nim |
15:41:31 | * | rockcavera quit (Changing host) |
15:41:31 | * | rockcavera joined #nim |
16:02:46 | * | def- quit (Quit: -) |
16:03:27 | * | def- joined #nim |
16:05:56 | * | qwr joined #nim |
16:10:46 | qwr | btw, if you're doing "nim 2.0", could the for loop "variable" also be fixed to be separate immutable binding for each iteration (for closures)? |
16:12:00 | qwr | because, it currently mostly looks like immutable binding... as long as it don't get referenced by closure, which is imho a bit inconsistent and error-prone |
16:15:01 | qwr | (this would eliminate a need for the sugar/capture macro) |
16:19:07 | * | kenran joined #nim |
16:20:07 | FromDiscord | <Goel> @Kiloneie https://wandbox.org/ Give it a go i tried it it works just fine (for now) |
16:25:32 | FromDiscord | <Kiloneie> How do you un-indent ? |
16:26:30 | FromDiscord | <auxym> In reply to @qwr "btw, if you're doing": no idea if this was already discussed/ considered, but you should submit an RFC if you want this to be considered |
16:27:04 | FromDiscord | <auxym> https://github.com/nim-lang/RFCs |
16:29:22 | FromDiscord | <exelotl> I agree, this would be worthwhile as an RFC |
16:41:30 | * | kenran quit (Quit: WeeChat info:version) |
16:50:59 | qwr | ok, i'll try to write up RFC |
17:33:20 | FromDiscord | <Goel> How do you rename a file? (not its .ext but the filename)? I'm looking into Os module but can't find it |
17:35:11 | * | jjido joined #nim |
17:39:42 | * | jmdaemon joined #nim |
17:46:23 | FromDiscord | <oz> Tried os.moveFile ? |
18:01:07 | * | derpydoo quit (Ping timeout: 248 seconds) |
18:02:06 | FromDiscord | <retkid> https://programming-language-benchmarks.vercel.app/nim-vs-rust |
18:02:11 | FromDiscord | <retkid> i don't like the nim code here |
18:02:33 | FromDiscord | <auxym> yeah its pretty well known here that it |
18:02:46 | FromDiscord | <auxym> is crappy code in general and mostly meanless benchmark results |
18:03:19 | FromDiscord | <retkid> none of that is how you do nim fast |
18:12:07 | FromDiscord | <auxym> IIRC some people submitted PRs but they never got merged... |
18:14:36 | FromDiscord | <Goel> @retkid https://github.com/kostya/benchmarksâ”This is much better in my opinion |
18:15:19 | FromDiscord | <prestosilver> idk if this should go here or in game dev, but i have an issue with a segfault when i close an application that imports my game library, anyone have any suggestions for software/methods to debug it, ive used gdb to find where it faults and its claiming its in exit() from /usr/lib/libc.so.6, but i kinda doubt that. |
18:15:57 | FromDiscord | <retkid> In reply to @Goel "<@217459674700578816> https://github.com/kostya/ben": we got beat by c# |
18:16:10 | FromDiscord | <retkid> also how the hell is racket faster than c++ |
18:16:23 | FromDiscord | <retkid> isn't it suppose to be common lisp |
18:17:00 | FromDiscord | <retkid> 10x slower than c |
18:17:01 | FromDiscord | <retkid> đ |
18:17:57 | FromDiscord | <retkid> these benchmarks are heart breaking |
18:22:15 | * | derpydoo joined #nim |
18:23:58 | FromDiscord | <Kiloneie> I see a problem with that benchmark |
18:24:23 | FromDiscord | <Kiloneie> It only lists CPU, but how efficient a PSU is , is also very important for energy calculations |
18:25:18 | FromDiscord | <Kiloneie> Im not sure if internal wattage report is correct |
18:25:47 | * | jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzzâŠ) |
18:28:08 | FromDiscord | <Kiloneie> most likely they didn't use ORC either. |
18:38:27 | FromDiscord | <huantian> In reply to @Goel "<@217459674700578816> https://github.com/kostya/ben": we do pretty well in json tho |
18:40:15 | FromDiscord | <Kiloneie> i am sure the results would be much better if they had used ORC |
18:40:41 | FromDiscord | <Kiloneie> But hey, it will happen once it's default |
18:41:14 | FromDiscord | <Kiloneie> It's pretty good in the benchmarks already, and it's gonna be really high with ORC, it's fine. |
18:51:20 | FromDiscord | <Goel> I know, its not me the one complaining here. I would still pick nim over "faster" languages just because we got a crown on our logo |
18:54:26 | FromDiscord | <oz> Eh... could've been a horse though. :) |
18:55:09 | FromDiscord | <huantian> In reply to @Kiloneie "i am sure the": I mean you can make a pr :) |
18:55:26 | FromDiscord | <Kiloneie> Eh, why bother ? |
18:55:41 | FromDiscord | <Kiloneie> ORC will be default soon enough. |
19:26:48 | FromDiscord | <Matic Kukovec> Has there been a recent change in `devel` to the `{.pure.}` pragma for objects?â”The `nim-lang/sdl2` throws an `Error: invalid indentation` in the `ttf.nim` module, but works if I remove the pragma. |
19:41:19 | * | jjido joined #nim |
20:11:56 | FromDiscord | <Yardanico> maybe https://github.com/nim-lang/Nim/pull/20199 |
20:12:10 | FromDiscord | <Yardanico> "sdl2 (fixed in untagged release 2.0.4)" |
20:12:22 | FromDiscord | <Yardanico> right now it seems to be tagged |
20:12:38 | FromDiscord | <ShalokShalom> how is {.pure.} different from {.noSideEffects.} |
20:13:12 | FromDiscord | <Elegantbeef> They're not related whatsoever |
20:13:20 | FromDiscord | <ShalokShalom> ok |
20:13:22 | FromDiscord | <Elegantbeef> pure is "remove type information on objects" |
20:13:23 | FromDiscord | <Matic Kukovec> @Yardanico\: Ah, thanks đ |
20:13:32 | FromDiscord | <ShalokShalom> ah |
20:13:37 | FromDiscord | <ShalokShalom> very weird choice of words |
20:13:46 | FromDiscord | <ShalokShalom> thanks |
20:14:01 | FromDiscord | <Elegantbeef> I mean it's a pure struct |
20:14:01 | FromDiscord | <Elegantbeef> So it makes sense |
20:14:25 | FromDiscord | <Elegantbeef> But it's an overloaded term given pure enums exist |
20:18:33 | FromDiscord | <ShalokShalom> and pure functions |
20:18:42 | FromDiscord | <ShalokShalom> I guess thats the most used term |
20:18:57 | FromDiscord | <Elegantbeef> Nim has functions and procedures |
20:18:57 | FromDiscord | <Elegantbeef> Nim doesnt use the term pure funtions though |
20:18:57 | FromDiscord | <ShalokShalom> (edit) "term" => "interpretation" |
20:19:03 | FromDiscord | <ShalokShalom> yeah I know |
20:19:09 | FromDiscord | <ShalokShalom> and I am very thankful for that |
20:19:17 | FromDiscord | <ShalokShalom> one of the greatest features for me |
20:19:49 | FromDiscord | <ShalokShalom> how much of passed in parameters are checked with func nowadays? |
20:20:13 | FromDiscord | <Elegantbeef> without `strictfuncs` only value types are fully immutable |
20:20:23 | FromDiscord | <Elegantbeef> With strictfuncs you need to pass all types as `var` to mutate them |
20:20:44 | FromDiscord | <ShalokShalom> ok |
20:20:57 | FromDiscord | <ShalokShalom> so, under the line, how safe is it, that func is really pure? |
20:21:20 | FromDiscord | <ShalokShalom> considering state could sneak in |
20:21:23 | FromDiscord | <ShalokShalom> is this possible? |
20:22:00 | FromDiscord | <Elegantbeef> With strictfuncs they're pure |
20:22:36 | NimEventer | New post on r/nim by ryu-ryu-ryu: nimble run --example (PR), see https://reddit.com/r/nim/comments/xkft44/nimble_run_example_pr/ |
20:43:13 | * | jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzzâŠ) |
21:00:19 | * | rockcavera quit (Ping timeout: 265 seconds) |
21:00:34 | * | jjido joined #nim |
21:11:33 | FromDiscord | <Duskhorn The Eclipsed> Hello! I have a questionâ”Exactly, what Unicode characters are valid identifiers? The manual says any, but is it really any? |
21:12:20 | FromDiscord | <Elegantbeef> It's any yes |
21:12:36 | FromDiscord | <Elegantbeef> It's not great in many regards for things like those homoglyph vulnerabilities or control characters |
21:13:00 | FromDiscord | <Elegantbeef> https://nim-lang.org/docs/manual.html#lexical-analysis-unicode-operators there are also unicode operators |
21:14:59 | FromDiscord | <Duskhorn The Eclipsed> In reply to @Elegantbeef "https://nim-lang.org/docs/manual.html#lexical-analy": This is cool! |
21:16:24 | FromDiscord | <Duskhorn The Eclipsed> In reply to @Elegantbeef "It's not great in": So like... Oh no, let me try something |
21:16:26 | * | jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzzâŠ) |
21:16:58 | * | rockcavera joined #nim |
21:16:58 | * | rockcavera quit (Changing host) |
21:16:58 | * | rockcavera joined #nim |
21:17:11 | * | rez joined #nim |
21:17:50 | * | krux02 joined #nim |
21:17:54 | FromDiscord | <Duskhorn The Eclipsed> sent a code paste, see https://play.nim-lang.org/#ix=4b4F |
21:28:45 | * | jjido joined #nim |
21:31:10 | * | qlukva[m] joined #nim |
21:45:13 | * | qlukva[m] left #nim (#nim) |
21:45:49 | * | rez quit (Quit: l8r) |
21:56:42 | * | wallabra_ joined #nim |
21:57:57 | * | wallabra quit (Ping timeout: 250 seconds) |
21:58:35 | * | wallabra_ is now known as wallabra |
22:05:24 | FromDiscord | <Elegantbeef> Yea unicode is ugh, though one could argue that's an editor issueâ”(@Duskhorn The Eclipsed) |
22:36:13 | * | LuxuryMode joined #nim |
22:56:27 | * | arkurious quit (Quit: Leaving) |
23:22:55 | * | krux02 quit (Remote host closed the connection) |
23:43:53 | * | neceve quit (Ping timeout: 268 seconds) |
23:44:13 | * | neceve joined #nim |
23:48:41 | qwr | that kind of simple benchmarks are rarely accurate, and it is pretty hard to compare programming language performance, but you might be able to compare magnitude there, like if something is 2x faster then it might be faster ;) |
23:49:17 | FromDiscord | <Elegantbeef> Might also be a twice as bad programmer đ |
23:52:36 | qwr | yes, but tbh its believable that rust is generally not slower than nim - its pretty damn dedicated to zero-cost abstractions tends to be lower level (i.e. requires more attention to implementation details, like exact memory management) |
23:53:54 | qwr | and that benchmark says about nothing about the actual relative performance above noise level |
23:54:23 | FromDiscord | <Elegantbeef> I dont know which benchmark you're referring to but i dont trust them ever, especially given Nim's capabillities |
23:54:51 | qwr | the one that was linked few hours ago here :) |
23:55:32 | FromDiscord | <Elegantbeef> Oh kostya's |
23:57:02 | * | qwr thinks that if one wants optimize, then rust/nim/c++ and other similar languages are probably pretty near |
23:57:22 | FromDiscord | <Elegantbeef> Yea almost certainly |
23:57:44 | FromDiscord | <Elegantbeef> https://nim-lang.org/blog/2021/07/28/Nim-Efficient-Expressive-Elegant-Benchmarking.html pretty much proves that |
23:57:48 | FromDiscord | <Elegantbeef> It also shows how pointless these are |
23:59:07 | qwr | btw, older famous alioth shootout proved, that ghc compiler hackers can write haskell that runs near the same speed as C++ |
23:59:35 | qwr | it didn't look very idiomatic, though |