<< 11-04-2025 >>

00:38:42FromDiscord<threefour> Ah
01:15:38FromDiscord<Robyn [She/Her]> I'm gonna have to make a few utilities to convert an AST into the most simplest form it can be T-T
03:11:24*rockcavera quit (Remote host closed the connection)
04:12:26*alexdaguy joined #nim
04:22:01*ntat joined #nim
05:58:25*amadaluzia quit (Ping timeout: 276 seconds)
06:03:41*amadaluzia joined #nim
06:04:17*amadaluzia quit (Remote host closed the connection)
06:16:14*SchweinDeBurg quit (Quit: WeeChat 4.7.0-dev)
06:16:38*SchweinDeBurg joined #nim
07:12:51*andy-turner joined #nim
07:20:36*ntat quit (Quit: leaving)
07:55:17*ntat joined #nim
08:12:05*ntat quit (Read error: Connection reset by peer)
08:12:21*ntat joined #nim
08:15:37*ntat quit (Read error: Connection reset by peer)
08:53:59*ntat joined #nim
09:14:28FromDiscord<k4xz2v> nim 🐀 virus?
09:18:16*xet7 quit (Remote host closed the connection)
09:19:58*ntat quit (Read error: Connection reset by peer)
09:21:37FromDiscord<mratsim> In reply to @battery.acid.bubblegum "I'm gonna have to": beware, soon you'll be a compiler dev
09:23:04FromDiscord<nnsee> In reply to @k4xz2v "nim 🐀 virus?": huh?
09:23:11FromDiscord<nnsee> nim is not a virus if that's what you're asking
09:23:13FromDiscord<nnsee> it's a programming language
09:24:06*xet7 joined #nim
09:31:06*xet7 quit (Remote host closed the connection)
09:42:50FromDiscord<k4xz2v> anti virus delete my stuff 😤
09:46:44FromDiscord<nnsee> In reply to @k4xz2v "anti virus delete my": that is a known issue with some antivirus software, it's false positives. what antivirus are you using?
09:46:53*andy-turner quit (Quit: Leaving)
09:48:26*ntat joined #nim
10:00:37FromDiscord<nocturn9x> does anyone experience like 3x slower performance with `-d:release` as opposed to `-d:danger`?
10:00:54FromDiscord<nocturn9x> My multithreaded data generation code is way, waay slower in release vs danger mode
10:01:00FromDiscord<nocturn9x> can't just be `--checks:on`, tried that
10:01:56FromDiscord<nocturn9x> kind of silly that the safer option is almost unusably slow
10:15:41*ntat quit (Read error: Connection reset by peer)
10:38:10*ntat joined #nim
10:38:44Amun-Rawhy?
10:39:01Amun-Rachecking array bounds, etc costs cpu cycles
11:10:04FromDiscord<nocturn9x> what
11:10:11FromDiscord<nocturn9x> I already said I tried just with `--checks:on`
11:10:15FromDiscord<nocturn9x> the performance impact is not as significant+
11:10:16FromDiscord<nocturn9x> (edit) "significant+" => "significant"
11:10:18FromDiscord<nocturn9x> not even close
11:14:06Amun-Ra"etc"
11:14:26Amun-Racompare C sources in both cases
11:17:27FromDiscord<Robyn [She/Her]> In reply to @mratsim "beware, soon you'll be": lolol
11:28:34*ntat quit (Read error: Connection reset by peer)
11:34:03*ntat joined #nim
11:45:46*vsantana joined #nim
12:01:43*ntat quit (Quit: leaving)
12:03:06*vsantana quit (Quit: vsantana)
12:21:37FromDiscord<nocturn9x> In reply to @mratsim "beware, soon you'll be": I've went down that rabbithole
12:21:37FromDiscord<nocturn9x> can be fun
12:32:07FromDiscord<k4xz2v> In reply to @nnsee "that is a known": idk xd i have many
12:45:47FromDiscord<nnsee> ... many? why? you know only one can be active at the same time?
12:45:59FromDiscord<nnsee> the other ones are just sitting there doing nothing
12:47:06FromDiscord<k4xz2v> some times it crash or sometimes virus escapes
12:51:16FromDiscord<nnsee> In reply to @k4xz2v "some times it crash": even if that were true, that doesn't matter, since the other antiviruses will not be running regardless
12:51:31FromDiscord<nnsee> trust me when I say that windows defender is all you need and you're better off uninstalling everything else
12:51:37FromDiscord<k4xz2v> h? okay i wil ldelete the virus
12:53:11FromDiscord<devlop_gaming> Is there a data type that will allow me to store auto? Or is it not possible?
12:54:02Amun-Raauto as in any type?
12:54:28FromDiscord<nnsee> In reply to @devlop_gaming "Is there a data": auto isn't a "real" type, it gets resolved to the actual type during compile time
12:54:48FromDiscord<nnsee> although i guess it depends on what exactly you mean by store
12:56:32FromDiscord<devlop_gaming> I was trying to see if I could store any type inside a tuple and change it's value to another type like how you can in a python list
12:58:44FromDiscord<nnsee> that does not work in nim
12:59:06FromDiscord<Laylie> here are some ways to emulate it\: https://internet-of-tomohiro.pages.dev/nim/faq.en#type-how-to-store-different-types-in-seqqmark
12:59:51FromDiscord<fabric.input_output> you could use object variants to have values of a fixed set of types. only one at a time per type tho
13:02:11Amun-Raand only one type per instance
13:23:41*amadaluzia joined #nim
13:48:23*ntat joined #nim
14:07:24*przmk_ joined #nim
14:08:44*przmk quit (Ping timeout: 245 seconds)
14:08:44*przmk_ is now known as przmk
14:35:15FromDiscord<mratsim> In reply to @nocturn9x "does anyone experience like": stacktraces?
14:35:27FromDiscord<nocturn9x> that is probably it
14:36:07FromDiscord<mratsim> it rings a bell with openmp at the very least, when it's not just crashing (but that was with the ref gc)
15:08:53*MrGoblins joined #nim
15:10:37FromDiscord<nervecenter> In reply to @nocturn9x "does anyone experience like": In case anyone is using `-d:danger` with Datamancer, I recommend against it. I do a huge number of calculations on sequences or concatenated dataframes, and especially floating-point math comes out wonky and inconsistent in danger mode. Always keep checks on if you're dependent on accuracy.↵↵As for the performance difference, no idea.
15:10:49FromDiscord<nervecenter> (edit) "In reply to @nocturn9x "does anyone experience like": In case anyone is using `-d:danger` with Datamancer, I recommend against it. I do a huge number of calculations on sequences ... or" added "of"
16:13:55FromDiscord<anuke> In what way does -d:danger affect floating point math? That sounds serious.
16:19:43FromDiscord<Laylie> indeed, does danger change how the float math works or is it just blowing through assertions? we need to know..
16:23:13FromDiscord<anuke> I didn't think speed flags affected math results (outside of integer overflows or -ffast-math)
16:28:10FromDiscord<Elegantbeef> They shouldn't either a compiler bug or someome is holding it wrong
16:46:19*alexdaguy quit (Quit: ded)
16:49:49FromDiscord<mratsim> In reply to @nervecenter "In case anyone is": I checked just in case arraymancer is defining -ffast-math somewhere but it doesn't seem to be the case.
16:50:29FromDiscord<mratsim> In reply to @nervecenter "In case anyone is": now there is a thing called catastrophic cancellation and in that case it's not datamancer.
16:51:46FromDiscord<mratsim> https://en.wikipedia.org/wiki/Catastrophic_cancellation
16:52:36FromDiscord<mratsim> You need to use catastrophic cancellation robust algorithm like Welford's algorithm for mean/variance/stddev or Kahan sum for summation to avoid it
16:52:49FromDiscord<Elegantbeef> I also don't see any references of `danger` `checks` or anything else that would cause different logic
16:53:31FromDiscord<mratsim> if you do 1000000 + 999999 + 999998 + ... + 1, you would get a different result from 1 + ...+ 999998 + 999999 + 1000000
16:54:30FromDiscord<mratsim> the inconsistency might be multithreading + the fact that addition in floating point is not associative?↵↵i.e. (a+b)+c != a+(b+c)?
16:55:01FromDiscord<mratsim> in that case with -d:danger, there is less overhead, so code ordering becomes more random?
16:57:28FromDiscord<Elegantbeef> My dumbass wants to say isn't it more "not commutative" since it's about the order the terms appear 😄
17:14:40FromDiscord<nervecenter> In reply to @mratsim "if you do 1000000": This was a while ago and I had no way to even start debugging, so I stuck with `-d:release`. I might be able to produce a sample scenario that replicates what I'm trying to do and the inconsistency I saw.
17:15:00FromDiscord<nervecenter> I can submit it as an issue, but currently I have other work priorities.
17:17:10FromDiscord<nervecenter> Also, the calculation I remember it having a clearly visible effect on was one where I extracted series data to `seq[float]` before dropping the results in new DataFrames, so if it's not a Datamancer issue I'll have to formally apologize.
17:17:16FromDiscord<nervecenter> (edit) "extracted" => "extract"
17:17:30FromDiscord<nervecenter> (edit) "Also, the calculation I remember it having a clearly visible effect on was one where I extract series data to `seq[float]` ... before" added "with `toSeq1D()`"
17:44:46*xet7 joined #nim
18:27:54*xet7 quit (Quit: Leaving)
18:38:45*xet7 joined #nim
19:28:27*GnuYawk quit (Quit: The Lounge - https://thelounge.chat)
19:28:50*GnuYawk joined #nim
20:07:14*ntat quit (Quit: leaving)
22:20:00FromDiscord<k4xz2v> help if i use a library and only use 1 function, does the compiler only add that function or does it add the whole library, if the function only depends on itself
22:24:39FromDiscord<leorize> only that fn
22:49:27FromDiscord<fabric.input_output> @pmunch is there a way to sort of import a C macro with futhark like how in nim you usually declare it as a proc with importc?
22:49:36FromDiscord<fabric.input_output> I can't just do the nim proc thing
22:49:46FromDiscord<fabric.input_output> because it takes all the other header
22:49:49FromDiscord<fabric.input_output> and things get messed up
22:51:37FromDiscord<heysokam> In reply to @fabric.input_output "<@392962235737047041> is there a": You might need to wrap that manually↵I think I asked the same some time ago, and the answer is that there was no way of differentiating between regular macros and function-like macros
22:51:51FromDiscord<fabric.input_output> oh damn
22:51:57FromDiscord<fabric.input_output> I guess I'm just copy pasting it
22:52:17FromDiscord<heysokam> why not create the import for that manually as a function?
22:52:19FromDiscord<fabric.input_output> don't think vulkan is going to change the `VK_MAKE_VERSION` anytime soon
22:52:48FromDiscord<fabric.input_output> In reply to @heysokam "why not create the": because I need to specify a header and nim includes that header which messes up with what futhark includes
22:53:26FromDiscord<heysokam> also, if you are working with vulkan, we have a lot of progress made at https://github.com/DanielBelmes/VulkanNim and could use some help/contributions
22:53:50FromDiscord<heysokam> iirc, last thing that @Daniel Belmes told me is that the bindings are already usable
22:55:13FromDiscord<fabric.input_output> why not just futhark it tho
22:56:08FromDiscord<heysokam> its also an option. but futhark doesn't provide a way to create constructors or provide default values for structs
22:57:16FromDiscord<heysokam> futhark gives you a very c-like outcome. VulkanNim's goal is to nim-mify the bindings as much as possible (although currently does not do that 100%, but thats the goal)
22:57:30FromDiscord<fabric.input_output> the stuff seems pretty c-like
22:57:44FromDiscord<fabric.input_output> I'm not sure how it's nimmified
22:57:57FromDiscord<heysokam> > although currently does not do that 100%
22:58:07FromDiscord<heysokam> > and could use some help/contributions
22:58:23FromDiscord<fabric.input_output> idk if I'm fit for this I know 0 vulkan
22:58:49FromDiscord<heysokam> kk, sry for the idea
22:59:46FromDiscord<fabric.input_output> I'm just trying to ditch opengl atm, maybe if I use it for a while and learn how it works I'll contribute
23:00:30FromDiscord<heysokam> wrapping wgpu might take you further+faster
23:00:43FromDiscord<heysokam> vulkan is quite heavy to learn
23:00:55FromDiscord<fabric.input_output> yeah but I've heard it has deadlock issues and whatnot
23:01:12FromDiscord<fabric.input_output> I've tried webgpu
23:01:14FromDiscord<heysokam> deadlock issues?
23:01:15FromDiscord<fabric.input_output> it's nice
23:01:35FromDiscord<fabric.input_output> In reply to @heysokam "deadlock issues?": yeah, multiple queues or smth from multiple threads it deadlocks I've heard
23:01:57FromDiscord<heysokam> that sounds like a fixable bug
23:03:18FromDiscord<heysokam> btw, if not aware, I spent some months writing this↵https://github.com/heysokam/wgpu↵must be really outdatet, could be helpful as a reference since I figured out all the integration with cargo+nimvm
23:04:02FromDiscord<fabric.input_output> https://github.com/romdotdog/comet/blob/main/src/webgpu.nim
23:04:24FromDiscord<heysokam> should be possible to do the same in a more reliable way with futhark↵I started with the idea, but I don't use nim much so I didn't complete it
23:05:16FromDiscord<heysokam> In reply to @fabric.input_output "https://github.com/romdotdog/comet/blob/main/src/we": oh, nice bindings, wrapping the `.js` api! was not aware, but that's really cool. ty for sharing
23:06:17FromDiscord<fabric.input_output> In reply to @heysokam "should be possible to": I could've used c++ or rust for this but c++, uhh, kinda sucks and rust is too annoying when just trying to get something to work
23:06:18FromDiscord<Daniel Belmes> In reply to @heysokam "iirc, last thing that": They are unstable on the main branch. Much more stable in the PR I have open. I just need to remake the example code. However, that being said. Highly recommend using wgpu/webgpu.
23:06:55FromDiscord<Daniel Belmes> If you want to learn Vulkan than use Vulkan and it's helpful for industry work. But if you're just trying to make games or a cad application. wgpu is great.
23:06:59FromDiscord<Daniel Belmes> (edit) "If you want to learn Vulkan than use Vulkan and it's helpful for industry work. But if you're just trying to make games or a cad application. wgpu is ... great." added "more than"
23:07:04FromDiscord<heysokam> In reply to @fabric.input_output "I could've used c++": yea, I feel you. cpp is so slow to compile, and rust is tricky to work with
23:07:27FromDiscord<fabric.input_output> eh not really slow, more like delicate
23:07:29FromDiscord<Daniel Belmes> (edit) "code." => "code and i'll merge it into mainline."
23:07:34FromDiscord<fabric.input_output> footguns and whatever
23:07:41FromDiscord<fabric.input_output> I don't have the time for those
23:08:22FromDiscord<heysokam> wdym not slow? its like 100-200% slower to compile anything than C or Cpp. even more when linking heavy projects like clang/llvm
23:08:36FromDiscord<heysokam> (edit) "Cpp." => "Nim."
23:08:39FromDiscord<fabric.input_output> yeah but I'm not doing heavy stuff anyways
23:08:55FromDiscord<fabric.input_output> it's not really my concern is the main point
23:09:23FromDiscord<fabric.input_output> and clang/llvm are absolute units I tried compiling them from source took an entire day
23:09:25FromDiscord<heysokam> even linking to glfw.hpp or vulkan.hpp is heavy in cpp land 🙈
23:09:36FromDiscord<fabric.input_output> that's why I just use the C api
23:10:30FromDiscord<heysokam> In reply to @fabric.input_output "and clang/llvm are absolute": yea, aware. I'm just talking about an app that dynamically links to them. 500sloc importing clang takes literally 2minutes ⚰️
23:10:46FromDiscord<fabric.input_output> 💀
23:11:59FromDiscord<heysokam> but yea, back on topic. I'm with Daniel. Consider learning wgpu to replace opengl↵vulkan is only good if you plan on becoming a graphics engineer by trade
23:12:34FromDiscord<fabric.input_output> ok I'll consider wgpu more but I wanna give vulkan a try first
23:13:20FromDiscord<heysokam> makes sense. you will quickly see the difference once you create a triangle in both
23:13:38FromDiscord<heysokam> wgpu is like vulkan without the boilerplate crazyness, essentially
23:13:54FromDiscord<fabric.input_output> yeah
23:14:02FromDiscord<heysokam> the workflow and api is almost identical, minus a couple of differences
23:14:15FromDiscord<heysokam> at least when talking about wgpu-native
23:14:17FromDiscord<fabric.input_output> I've used the compute shaders more than the graphics stuff tho
23:14:38FromDiscord<heysokam> the graphics api is a pleasure to work with
23:15:40FromDiscord<heysokam> there is a learnwebgpu c++ tutorial out there. follow it with nim when you have the time↵i wish I started with that and not opengl, its so good and so much easier to learn
23:16:44FromDiscord<fabric.input_output> ye
23:16:49FromDiscord<fabric.input_output> I've seen it
23:37:48FromDiscord<Daniel Belmes> In reply to @fabric.input_output "ok I'll consider wgpu": Redo the triangle example in my wip branch 🙏🏼🤞🤞🤞 The old one doesn’t work with current Vulkan version🥲
23:38:17FromDiscord<Daniel Belmes> I just burn out after work week and haven’t been getting to it.
23:48:38FromDiscord<heysokam> same