<< 21-09-2022 >>

00:18:35FromDiscord<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:29FromDiscord<Patitotective> !eval assert 1.23E-1000 == 0
00:27:32FromDiscord<Patitotective> interesting
00:28:29NimBotCompile 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:09FromDiscord<retkid> for example
02:22:58FromDiscord<Patitotective> 🌃
02:54:29FromDiscord<Prestige> Is there a way to disabled nimsuggest in the nim.nvim plugin?
02:54:35FromDiscord<Prestige> It's lagging my editor to hell
02:55:01FromDiscord<Rika> I noticed that too
02:55:17FromDiscord<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:35FromDiscord<Prestige> Yeah I like can't type
02:55:40FromDiscord<Rika> In reply to @Avahe "Is there a way": Well, just disable the plugin. I believe everything it does interfaces with suggest
02:56:49FromDiscord<Prestige> Any other way to get decent syntax highlighting?
02:57:34FromDiscord<Rika> Not with neovim right now I think, no tree sitter grammar implemented yet iirc
02:57:43FromDiscord<Prestige> well shit
02:58:19FromDiscord<Rika> Join me on the“I don’t need no damn highlighting” team
02:58:23FromDiscord<Rika> (edit) "the“I" => "the “I"
02:58:38FromDiscord<Prestige> It's a losing team
02:59:40FromDiscord<Rika> No it’s a winner because you no longer need to set up your editors to work x d
02:59:54FromDiscord<Rika> Too bad you incur -1000% productivity
03:06:55FromDiscord<Prestige> Why can't we focus on good editor support
03:07:04FromDiscord<Prestige> It's like the worst thing about this lang
03:09:29FromDiscord<Elegantbeef> Just touch type looking at your pet then you never have any issues
03:10:53FromDiscord<Rika> In reply to @Avahe "Why can't we focus": Because barely anyone wants to touch suggest even in a hazmat suit
03:11:28FromDiscord<Prestige> rewrite it lol
03:11:31FromDiscord<Elegantbeef> Status has hired someone to focus on tooling but dont know if it's full time
03:11:40FromDiscord<Rika> In reply to @Avahe "rewrite it lol": It’s a big job
03:11:51FromDiscord<Rika> It’s almost like telling someone to just rewrite the compiler
03:11:57FromDiscord<Elegantbeef> It's tightly coupled to the compile for obvious reasons so it's indeed fun
03:13:49FromDiscord<Elegantbeef> It's likely that the v3 of nimsuggest solves you false positive issue since i think it uses a cache
03:14:19FromDiscord<Elegantbeef> Maybe I'll type words properly before I die.
03:15:45FromDiscord<Rika> Nah, you won’t
03:15:57FromDiscord<Rika> Because you’re about to die :GunbaRuby:
03:16:10FromDiscord<Elegantbeef> Finally
04:18:59FromDiscord<Tuatarian> how would I do arbitrarily nested sequences?
04:19:13FromDiscord<Tuatarian> trying to represent an AST and want to do it this way instead of another treerepr
04:19:42FromDiscord<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:55FromDiscord<Tuatarian> so you can have something like `[1, [1, 2], 3,]` etc
04:20:16FromDiscord<Tuatarian> I was looking at this thread from nimforum, but I was wondering if there was a better way?
04:20:17FromDiscord<Tuatarian> https://forum.nim-lang.org/t/1160
04:20:39FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4b0S
04:21:00FromDiscord<Tuatarian> would `elem.value` or `elem.children` compile?
04:21:07FromDiscord<Elegantbeef> or use a object variant like Nim's AST with `ref Object`
04:21:13FromDiscord<Tuatarian> or would I somehow need to verify that the field exists
04:21:25FromDiscord<Tuatarian> this isn't an object variant?
04:21:29FromDiscord<Elegantbeef> You'd ensure `isCol` then access `children` or `value`
04:21:42FromDiscord<Elegantbeef> I more mean copy Nim's AST and use `ref object`
04:22:02FromDiscord<Tuatarian> `type element = ref object...`
04:22:07FromDiscord<Tuatarian> the same thing you did but with a ref object
04:22:13FromDiscord<Tuatarian> right?
04:22:36FromDiscord<Elegantbeef> Yes
04:22:38FromDiscord<Tuatarian> also, would the compiler need to verify if I've ensured `isCol`?
04:22:48FromDiscord<Elegantbeef> and also using an enum instead of a bool
04:22:59FromDiscord<Elegantbeef> The compiler ensures it where it can but it needs runtime checks
04:23:03FromDiscord<Tuatarian> right, incase there's more than 1 thing
04:23:42FromDiscord<Tuatarian> ok and I guess those checks can be disabled with `-d:danger`?
04:23:55FromDiscord<Tuatarian> if in theory somehow I wanted to
04:24:05FromDiscord<Elegantbeef> Yea or just with pragmas for the blocks you want to disable them
04:24:13FromDiscord<Tuatarian> ok thanks
04:25:16FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4b0T
04:25:41FromDiscord<Elegantbeef> That's the more sane way
04:27:10FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4b0U
04:31:21FromDiscord<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:10FromDiscord<Tuatarian> hmm.. what if a node has more than 2 children?
05:11:44FromDiscord<Elegantbeef> you say it's a collection then iterate left .. right
05:12:02FromDiscord<Elegantbeef> Or design the AST an other way that makes sense
05:12:16FromDiscord<Tuatarian> right, but if you for example have a call, then that may well have 3 children
05:12:28FromDiscord<Tuatarian> from just a seq it's not clear whether an identifier is part of the call or after the call
05:12:55FromDiscord<Elegantbeef> but you know it's a `nkCall`
05:12:59FromDiscord<Elegantbeef> sorry nim ast naming
05:13:16FromDiscord<Elegantbeef> So you know the `left` is the name of the procedure, then you know the right is the arguments
05:13:38FromDiscord<Elegantbeef> or you know the `left` is the name and the arguments are stored sequentially up to `right`
05:13:59FromDiscord<Tuatarian> oh they're ints
05:14:03FromDiscord<Tuatarian> that makes a lot more sense
05:14:03FromDiscord<Elegantbeef> Remember that this type of AST is an index into a sequence of Nodes
05:14:06FromDiscord<Tuatarian> right
05:14:14FromDiscord<Tuatarian> yeah so basically each node knows it's own information
05:14:17FromDiscord<Elegantbeef> It's like managed pointers
05:14:29FromDiscord<Tuatarian> I understand, thanks
05:14:39FromDiscord<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:08FromDiscord<Tuatarian> for cache locality reasons?
05:15:16FromDiscord<Elegantbeef> Yep
05:15:21FromDiscord<Tuatarian> also, why do nimnode stuff use hungarian notation?
05:15:31FromDiscord<Elegantbeef> Data oriented design is pretty much "We now have a cache now"
05:15:31FromDiscord<Elegantbeef> Object pascal transpiled code
05:56:44*curious-antelope joined #nim
05:56:45*curious-antelope left #nim (#nim)
06:42:58FromDiscord<praise01> Thank me later https://t.me/+kaz97seJgx9jNTNh
06:49:06FromDiscord<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:45FromDiscord<Bung> does proc call with array construction match varargs by design ?
07:36:03FromDiscord<Elegantbeef> Yes
07:37:05FromDiscord<Bung> weird , I create PR solve another problem, but it issues while element initialize with generic it will not match
07:38:21FromDiscord<Bung> but plain object with concrete fields type works
07:40:23FromDiscord<Forest [She/Her]> Is it possible to do cyclic imports in Nim at all?
07:40:34FromDiscord<Forest [She/Her]> I kinda need to be able to do it to wrap Java code
07:41:33FromDiscord<Elegantbeef> Only delayed
07:42:52FromDiscord<Forest [She/Her]> Hm...
07:43:59FromDiscord<Forest [She/Her]> Is there a way with macros i could maybe make a one-time importer-thing?
07:44:16FromDiscord<Forest [She/Her]> If the definition is already there, ignore the import, otherwise follow it
07:46:19*jjido joined #nim
07:46:47FromDiscord<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:23FromDiscord<Forest [She/Her]> Rip i need cyclic imports but idk how to go about it
08:27:11FromDiscord<Forest [She/Her]> sent a code paste, see https://play.nim-lang.org/#ix=4b1M
08:27:28FromDiscord<Elegantbeef> You cannot do cyclical imports in Nim without intelligently delaying them
08:27:33FromDiscord<Elegantbeef> And even then it doesnt work
08:27:52FromDiscord<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:20FromDiscord<Forest [She/Her]> Rip... Could this be worked around with using `include`?
08:28:35FromDiscord<Elegantbeef> Kinda but not really
08:28:44FromDiscord<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:59FromDiscord<Forest [She/Her]> In reply to @Elegantbeef "Kinda but not really": Wdym by this?
08:29:13FromDiscord<Forest [She/Her]> In reply to @Dreamer (Previously Forest) "Ah... Honestly there's no": Java heavily relies on cyclic imports which sucks
08:29:18FromDiscord<Elegantbeef> You can include all the files but if files import other files you import that include aswell
08:30:40FromDiscord<Forest [She/Her]> Hm...
08:30:49FromDiscord<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:52FromDiscord<Forest [She/Her]> Idk how else i could do this then
08:30:58*arkurious joined #nim
08:31:12FromDiscord<Forest [She/Her]> Yeah delayed imports don't help here sadly
08:31:20FromDiscord<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:27FromDiscord<aph> there's `1..2` for int↔what's the type for all float32 from 0 to 1
08:32:51FromDiscord<Elegantbeef> `0f..1f`
08:33:12FromDiscord<Forest [She/Her]> In reply to @Elegantbeef "The first imports the": yeah i see that but idk how it'd help
08:33:37FromDiscord<Elegantbeef> It generally helps in cases of cyclical imports
08:33:46FromDiscord<Elegantbeef> Hard cyclical imports are impossible
08:33:48FromDiscord<Elegantbeef> You need a single file
08:34:18FromDiscord<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:45FromDiscord<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:01FromDiscord<Elegantbeef> Well it's a hard requirement of Nim
08:35:05FromDiscord<Elegantbeef> The worst part of Nim really
08:35:23FromDiscord<Forest [She/Her]> rip
08:35:50FromDiscord<Rika> Separate types from procs in files
08:36:12FromDiscord<Forest [She/Her]> Fields also have cyclic referencing
08:36:23FromDiscord<Elegantbeef> So what
08:36:41FromDiscord<Forest [She/Her]> Does that work? I thought Nim would be messy with that
08:36:52FromDiscord<Forest [She/Her]> Either way it'd require one or two files
08:37:00FromDiscord<Rika> Types can be cyclic in the same block
08:37:00FromDiscord<Elegantbeef> I mean how do you think Nim does trees?
08:37:24FromDiscord<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:36FromDiscord<Forest [She/Her]> In reply to @Elegantbeef "I mean how do": No idea :p
08:37:44FromDiscord<Rika> No choice here
08:37:46FromDiscord<Elegantbeef> I mean it does cause that's how you... keep code clean
08:37:56FromDiscord<Elegantbeef> Having multiple type sections is awful
08:38:03FromDiscord<Forest [She/Her]> Not when it comes to clean Java interop
08:39:06FromDiscord<aph> In reply to @Elegantbeef "`0f..1f`": thx
08:39:19FromDiscord<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:10FromDiscord<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:03FromDiscord<Elegantbeef> How does that solve the cycical graph
08:44:54FromDiscord<Forest [She/Her]> To use `include` statements in the macro to do magic
08:45:25FromDiscord<Elegantbeef> And the json file is better than just using include directly?
08:45:30FromDiscord<Forest [She/Her]> I could even forgo generation of Nim files maybe?
08:46:24FromDiscord<Elegantbeef> You want this to work with autocomplete but dont want nim files
08:46:33FromDiscord<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:59FromDiscord<Elegantbeef> What?
08:47:37FromDiscord<Forest [She/Her]> Whenever you define anything that isn't used you get `XDeclaredButNotUsed` messages
08:48:25FromDiscord<Elegantbeef> `{.used.}`
08:48:36FromDiscord<Elegantbeef> Solved that
08:48:38FromDiscord<Forest [She/Her]> That exists?
08:48:50FromDiscord<Forest [She/Her]> Hm alright, i'll use that
08:48:55FromDiscord<Elegantbeef> No i'm an asshole that'd lie to you
08:50:01FromDiscord<Forest [She/Her]> :p
08:51:20FromDiscord<Forest [She/Her]> Time for some JNI
09:34:51FromDiscord<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:25FromDiscord<Forest [She/Her]> Looking through source code, looks like it does :)
09:53:13FromDiscord<Forest [She/Her]> WHY IS THIS SO ANNOYING
09:53:27FromDiscord<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:08FromDiscord<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:37FromDiscord<Rika> Splint
12:40:37*jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzz
)
12:42:11FromDiscord<Bung> slinim
12:43:01FromDiscord<Bung> snimt
12:43:56FromDiscord<enthus1ast> slintNim nimSlint
12:46:46FromDiscord<techroot> Is there a way to create dynamic arbitrarily nested data structure, something like `{"a": 1, "b": {"c": "foo"}}`?
13:00:28FromDiscord<fbpyr> nimslintshady
13:01:39FromDiscord<Yardanico> In reply to @techroot "Is there a way": yes, with object variants, e.g. check std/json
13:02:27FromDiscord<Phil> In reply to @fbpyr "nimslintshady": chicka chicka slinshady
13:02:33FromDiscord<Phil> (edit) "slinshady" => "slintshady"
13:03:02FromDiscord<Phil> Thanks, I needed that earworm right now
13:23:37FromDiscord<estherbtc> Click on the link and thank me later 👉👉👉https://t.me/+6418gUGZ6qQ2YzE0
13:24:19FromDiscord<Prestige> <@&371760044473319454>
13:30:03*DixieFlatline quit (Quit: WeeChat 3.3)
15:00:43*derpydoo joined #nim
15:13:16FromDiscord<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:53FromDiscord<Tanguy> Yes, that's a very bad idea though, always place it manually
15:24:15FromDiscord<Kiloneie> Why is it a bad idea ? what can happen ?
15:24:18NimEventerNew thread by drkameleon: Compile-time avoid Exception statement, see https://forum.nim-lang.org/t/9483
15:25:41FromDiscord<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:03FromDiscord<Tanguy> On my codebase I always put the `.base.` and change the warning to an error, because it always means bad news
15:39:10FromDiscord<Kiloneie> Nim Playground fix ETA ?
15:40:27*vicecea quit (Remote host closed the connection)
15:40:46FromDiscord<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:46qwrbtw, 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:00qwrbecause, 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:01qwr(this would eliminate a need for the sugar/capture macro)
16:19:07*kenran joined #nim
16:20:07FromDiscord<Goel> @Kiloneie https://wandbox.org/ Give it a go i tried it it works just fine (for now)
16:25:32FromDiscord<Kiloneie> How do you un-indent ?
16:26:30FromDiscord<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:04FromDiscord<auxym> https://github.com/nim-lang/RFCs
16:29:22FromDiscord<exelotl> I agree, this would be worthwhile as an RFC
16:41:30*kenran quit (Quit: WeeChat info:version)
16:50:59qwrok, i'll try to write up RFC
17:33:20FromDiscord<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:23FromDiscord<oz> Tried os.moveFile ?
18:01:07*derpydoo quit (Ping timeout: 248 seconds)
18:02:06FromDiscord<retkid> https://programming-language-benchmarks.vercel.app/nim-vs-rust
18:02:11FromDiscord<retkid> i don't like the nim code here
18:02:33FromDiscord<auxym> yeah its pretty well known here that it
18:02:46FromDiscord<auxym> is crappy code in general and mostly meanless benchmark results
18:03:19FromDiscord<retkid> none of that is how you do nim fast
18:12:07FromDiscord<auxym> IIRC some people submitted PRs but they never got merged...
18:14:36FromDiscord<Goel> @retkid https://github.com/kostya/benchmarks↔This is much better in my opinion
18:15:19FromDiscord<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:57FromDiscord<retkid> In reply to @Goel "<@217459674700578816> https://github.com/kostya/ben": we got beat by c#
18:16:10FromDiscord<retkid> also how the hell is racket faster than c++
18:16:23FromDiscord<retkid> isn't it suppose to be common lisp
18:17:00FromDiscord<retkid> 10x slower than c
18:17:01FromDiscord<retkid> 😭
18:17:57FromDiscord<retkid> these benchmarks are heart breaking
18:22:15*derpydoo joined #nim
18:23:58FromDiscord<Kiloneie> I see a problem with that benchmark
18:24:23FromDiscord<Kiloneie> It only lists CPU, but how efficient a PSU is , is also very important for energy calculations
18:25:18FromDiscord<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:08FromDiscord<Kiloneie> most likely they didn't use ORC either.
18:38:27FromDiscord<huantian> In reply to @Goel "<@217459674700578816> https://github.com/kostya/ben": we do pretty well in json tho
18:40:15FromDiscord<Kiloneie> i am sure the results would be much better if they had used ORC
18:40:41FromDiscord<Kiloneie> But hey, it will happen once it's default
18:41:14FromDiscord<Kiloneie> It's pretty good in the benchmarks already, and it's gonna be really high with ORC, it's fine.
18:51:20FromDiscord<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:26FromDiscord<oz> Eh... could've been a horse though. :)
18:55:09FromDiscord<huantian> In reply to @Kiloneie "i am sure the": I mean you can make a pr :)
18:55:26FromDiscord<Kiloneie> Eh, why bother ?
18:55:41FromDiscord<Kiloneie> ORC will be default soon enough.
19:26:48FromDiscord<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:56FromDiscord<Yardanico> maybe https://github.com/nim-lang/Nim/pull/20199
20:12:10FromDiscord<Yardanico> "sdl2 (fixed in untagged release 2.0.4)"
20:12:22FromDiscord<Yardanico> right now it seems to be tagged
20:12:38FromDiscord<ShalokShalom> how is {.pure.} different from {.noSideEffects.}
20:13:12FromDiscord<Elegantbeef> They're not related whatsoever
20:13:20FromDiscord<ShalokShalom> ok
20:13:22FromDiscord<Elegantbeef> pure is "remove type information on objects"
20:13:23FromDiscord<Matic Kukovec> @Yardanico\: Ah, thanks 👍
20:13:32FromDiscord<ShalokShalom> ah
20:13:37FromDiscord<ShalokShalom> very weird choice of words
20:13:46FromDiscord<ShalokShalom> thanks
20:14:01FromDiscord<Elegantbeef> I mean it's a pure struct
20:14:01FromDiscord<Elegantbeef> So it makes sense
20:14:25FromDiscord<Elegantbeef> But it's an overloaded term given pure enums exist
20:18:33FromDiscord<ShalokShalom> and pure functions
20:18:42FromDiscord<ShalokShalom> I guess thats the most used term
20:18:57FromDiscord<Elegantbeef> Nim has functions and procedures
20:18:57FromDiscord<Elegantbeef> Nim doesnt use the term pure funtions though
20:18:57FromDiscord<ShalokShalom> (edit) "term" => "interpretation"
20:19:03FromDiscord<ShalokShalom> yeah I know
20:19:09FromDiscord<ShalokShalom> and I am very thankful for that
20:19:17FromDiscord<ShalokShalom> one of the greatest features for me
20:19:49FromDiscord<ShalokShalom> how much of passed in parameters are checked with func nowadays?
20:20:13FromDiscord<Elegantbeef> without `strictfuncs` only value types are fully immutable
20:20:23FromDiscord<Elegantbeef> With strictfuncs you need to pass all types as `var` to mutate them
20:20:44FromDiscord<ShalokShalom> ok
20:20:57FromDiscord<ShalokShalom> so, under the line, how safe is it, that func is really pure?
20:21:20FromDiscord<ShalokShalom> considering state could sneak in
20:21:23FromDiscord<ShalokShalom> is this possible?
20:22:00FromDiscord<Elegantbeef> With strictfuncs they're pure
20:22:36NimEventerNew 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:33FromDiscord<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:20FromDiscord<Elegantbeef> It's any yes
21:12:36FromDiscord<Elegantbeef> It's not great in many regards for things like those homoglyph vulnerabilities or control characters
21:13:00FromDiscord<Elegantbeef> https://nim-lang.org/docs/manual.html#lexical-analysis-unicode-operators there are also unicode operators
21:14:59FromDiscord<Duskhorn The Eclipsed> In reply to @Elegantbeef "https://nim-lang.org/docs/manual.html#lexical-analy": This is cool!
21:16:24FromDiscord<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:54FromDiscord<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:24FromDiscord<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:41qwrthat 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:17FromDiscord<Elegantbeef> Might also be a twice as bad programmer 😛
23:52:36qwryes, 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:54qwrand that benchmark says about nothing about the actual relative performance above noise level
23:54:23FromDiscord<Elegantbeef> I dont know which benchmark you're referring to but i dont trust them ever, especially given Nim's capabillities
23:54:51qwrthe one that was linked few hours ago here :)
23:55:32FromDiscord<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:22FromDiscord<Elegantbeef> Yea almost certainly
23:57:44FromDiscord<Elegantbeef> https://nim-lang.org/blog/2021/07/28/Nim-Efficient-Expressive-Elegant-Benchmarking.html pretty much proves that
23:57:48FromDiscord<Elegantbeef> It also shows how pointless these are
23:59:07qwrbtw, older famous alioth shootout proved, that ghc compiler hackers can write haskell that runs near the same speed as C++
23:59:35qwrit didn't look very idiomatic, though