<< 08-02-2025 >>

00:16:06*derpydoo joined #nim
00:48:46*GnuYawk67 quit (Quit: The Lounge - https://thelounge.chat)
00:49:06*GnuYawk67 joined #nim
00:56:42*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
01:01:14*derpydoo quit (Ping timeout: 245 seconds)
01:47:43FromDiscord<fl4shk> is there a way I can get my `if` statements to not compile into `goto`s?
01:51:27FromDiscord<fl4shk> looking more and more like I need to do the C DSL stuff for this.
02:04:56FromDiscord<fl4shk> how do you prevent the `result` value from being implemented as a pointer?
02:07:55FromDiscord<fl4shk> maybe if I just do everything as `template`s instead of `proc`s I can achieve what I'm after.
02:16:55FromDiscord<fl4shk> that... actually appears to have worked
02:17:34FromDiscord<fl4shk> for getting rid of pointers at least...
02:17:40FromDiscord<fl4shk> anyway I'm gonna need to try another thing
02:18:09FromDiscord<fl4shk> unless I just make the full C code generator I'm out of luck here since my application is weird
02:21:06FromDiscord<fl4shk> unfortunate. Maybe I just can't do what I was hoping to.
02:26:35FromDiscord<fl4shk> ...hm I wonder if I could have a macro that does `.emit:"...".`
03:16:29*rockcavera joined #nim
04:35:02FromDiscord<gogolxdong666> Anyone heard DeepSeek
05:34:53*derpydoo joined #nim
05:35:54*derpydoo quit (Client Quit)
06:22:29*derpydoo joined #nim
07:33:52FromDiscord<mrgaturus> In reply to @gogolxdong666 "Anyone heard DeepSeek": it's a cool proof of concept that biggest AI companies don't care about optimize code
07:34:16FromDiscord<mrgaturus> (edit) "In reply to @gogolxdong666 "Anyone heard DeepSeek": it's a cool proof of concept that ... biggest" added "shows"
07:34:29FromDiscord<mrgaturus> (edit) "code" => "it's models"
07:34:37FromDiscord<mrgaturus> (edit) "it's" => "their"
07:47:53FromDiscord<volt_eye.> In reply to @gogolxdong666 "Anyone heard DeepSeek": Yes, it is Premium and FOSS LLM A.I Model that is trained on data stolen from Chat GPT which itself stole alot of data from Internet Copyrighted Content violating Law.
07:51:42*ntat joined #nim
08:11:31FromDiscord<firasuke> Shouldn't `cfSymlinkAsIs` be the default `CopyFlag` for `Copy` procs instead of `cfSymlinkFollow`? (at least on unix-like operating systems)?
08:12:14*redj_ quit (Quit: No Ping reply in 180 seconds.)
08:13:46*redj joined #nim
08:49:27*jjido joined #nim
09:15:15*coldfeet joined #nim
09:46:04*disso-peach joined #nim
09:58:02FromDiscord<nocturn9x> question about channels
09:58:09FromDiscord<nocturn9x> how safe is it to send references across them
09:59:58FromDiscord<nocturn9x> looks like they get copied when they're sent
10:00:01FromDiscord<nocturn9x> which is fine by me
10:00:10FromDiscord<nocturn9x> but idk, I remember someone recommending not to do that
10:08:24*derpydoo quit (Quit: derpydoo)
10:45:36FromDiscord<nocturn9x> ended up just not sending refs over a channel
10:45:39FromDiscord<nocturn9x> they work _great_ tho
10:45:41FromDiscord<nocturn9x> very nice.
11:28:36*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
11:57:08*jjido joined #nim
12:26:15*xet7 joined #nim
13:35:59*Jjp137 quit (Ping timeout: 260 seconds)
13:36:18*Jjp137 joined #nim
13:49:37*derpydoo joined #nim
14:08:41FromDiscord<arkanoid> is it possible to convert a seq to an array at compile time? I want to turn a static string into `array[mystr.len, byte]` at compile time
14:11:01*attah quit (Ping timeout: 248 seconds)
14:12:58FromDiscord<solitudesf> sent a code paste, see https://play.nim-lang.org/#pasty=gdlMseRk
14:15:26FromDiscord<solitudesf> this will be compiletime in static context, but you can even add `{.compileTime.}` to make sure it doesn't run at runtime.
14:25:19FromDiscord<arkanoid> that's easy! thanks
14:32:19*derpydoo quit (Quit: derpydoo)
14:47:34FromDiscord<arkanoid> what's the best way to expose compile time parameters to pure Nim lib users? It is -d define, or is there a better pattern
14:50:53FromDiscord<Robyn [She/Her]> In reply to @arkanoid "what's the best way": Depends, what are you trying to do exactly?
14:52:40FromDiscord<arkanoid> let user decide which file to slurp at compile time to read some specific data
14:53:29FromDiscord<Robyn [She/Her]> Yeah I'd use a define flag for that if you don't want to expose a proc that runs at compile-time
14:53:48FromDiscord<arkanoid> thanks
14:54:51*derpydoo joined #nim
15:01:18*coldfeet quit (Quit: Lost terminal)
15:01:55FromDiscord<fl4shk> is there a good tutorial for fancier Nim macros?
15:02:08FromDiscord<fl4shk> here's what I specifically need:
15:02:53FromDiscord<fl4shk> I'm trying to use plain old C `if`-`else` chains without `goto`s, and I need to somehow convert Nim expressions into C expressions
15:03:03FromDiscord<fl4shk> ...this is a very simplified version of things
15:03:05FromDiscord<fl4shk> Let me post what I have
15:03:53FromDiscord<fl4shk> sent a code paste, see https://play.nim-lang.org/#pasty=RYUuYdEF
15:04:17FromDiscord<fl4shk> sent a code paste, see https://play.nim-lang.org/#pasty=tMjFvXHo
15:04:20FromDiscord<fl4shk> I have stuff like this ^
15:04:49FromDiscord<fl4shk> sent a code paste, see https://play.nim-lang.org/#pasty=XMQbpaaa
15:05:02FromDiscord<fl4shk> (note: `Mat3x3` is a 3x3 matrix)
15:05:14FromDiscord<fl4shk> I don't know how to do the `cexpr` part
15:05:26FromDiscord<fl4shk> nor the `cstmtlist` part
15:05:39FromDiscord<fl4shk> maybe with a `template`?
15:08:13FromDiscord<fl4shk> it's possible I need to make a PipelineC-code AST
15:08:25FromDiscord<fl4shk> and do `.emit.`s manually
15:09:02FromDiscord<fl4shk> oh maybe the `nodecl` pragma will work
15:13:27FromDiscord<solitudesf> considering pipelinec isn't really close to proper backend language and doesn't fit into any part of nim pipeline, maybe you should take approach like https://github.com/treeform/shady and just go from nim ast to string?
15:13:51FromDiscord<fl4shk> so, that is an idea, but I think I'm close to this working
15:14:18FromDiscord<bosinski2023> In reply to @fl4shk "is there a good": i liked this https://dev.to/beef331/demystification-of-macros-in-nim-13n8
15:14:32FromDiscord<fl4shk> ooh I'll look at that
15:14:38FromDiscord<solitudesf> In reply to @fl4shk "so, that is an": very deranged behaviour, but i support you
15:16:13FromDiscord<fl4shk> I think it won't take very much code to get this working
15:16:15FromDiscord<fl4shk> ...but well
15:20:06FromDiscord<fl4shk> can I prevent Nim from doing this error:↵`Error: expression 'left.m[0][0] == right.m[0][0]' is of type 'bool' and has to be used (or discarded)`
15:20:40FromDiscord<Robyn [She/Her]> In reply to @fl4shk "can I prevent Nim": You can mark your own functions as discardable, but not really, no
15:20:44FromDiscord<fl4shk> hmm
15:21:10FromDiscord<fl4shk> that basically means I'm gonna need a more advanced approach
15:21:21FromDiscord<Robyn [She/Her]> Or you can make discardable a no-op?
15:21:25FromDiscord<fl4shk> oh?
15:21:25FromDiscord<Robyn [She/Her]> (edit) "discardable" => "discard"
15:21:32FromDiscord<fl4shk> that would help
15:21:33FromDiscord<Robyn [She/Her]> In your C code, I mean
15:21:38FromDiscord<Robyn [She/Her]> (edit) "In your ... C" added "generated"
15:22:50FromDiscord<fl4shk> can I change how the Nim compiler emits `discard`?
15:23:05FromDiscord<fl4shk> how do I do that?
15:23:17FromDiscord<fl4shk> the generated C code has a cast to `void`
15:25:57FromDiscord<fl4shk> well, maybe I can make something more sophisticated
15:26:16FromDiscord<fl4shk> and do the string output :P
15:41:20*derpydoo quit (Ping timeout: 252 seconds)
15:50:54FromDiscord<fl4shk> @solitudesf can you tell me more about the approach you mentioned?
15:53:30FromDiscord<fl4shk> maybe I need to read the code
15:54:40FromDiscord<fl4shk> wait a minute
15:54:43FromDiscord<fl4shk> this code is very small!
15:58:19FromDiscord<bendugo> fix the font size on the playground: https://github.com/PMunch/nim-playground-frontend/pull/38
16:03:59*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
16:07:49*coldfeet joined #nim
16:08:12*coldfeet quit (Client Quit)
16:59:58*xet7 quit (Quit: Leaving)
17:12:56*coldfeet joined #nim
17:35:39*disso-peach quit (Quit: Leaving)
18:05:20FromDiscord<summarity> `--docRoot` seems to require an absolute path. If I want to set it in a nim.cfg, how can I express "the doc root is the 'src' subdirectory of the directory where this nim.cfg is located". I'm not using nimble for this project.
18:14:46FromDiscord<fluff.goose> sorry for the dumb question, but is Nim code compiled to C even with the optimization flags enabled the fastest it can be?
18:15:40FromDiscord<lainlaylie> In reply to @summarity "`--docRoot` seems to require": does `$projectDir` help?
18:18:19FromDiscord<summarity> In reply to @lainlaylie "does `$projectDir` help?": How would I apply that in nim.cfg?
18:23:06FromDiscord<summarity> Hm this isn't possible. projectDir doesn't resolve to an absolute path (`Error: 'conf.docRoot.isAbsolute' failed`). However, moving the config to a `config.nims` file and using `currentSourcePath` worked.
18:38:12FromDiscord<summarity> A different question, when using `md2html` to convert single MD files, how can I inject arbitrary HTML? Any HTML seems to be escaped and just rendered as text by default
19:19:05FromDiscord<Elegantbeef> @fluff.goose why would it suddenly stop being compiled to C?
19:20:13FromDiscord<fluff.goose> it's just an example. i'm just curious if Nim being compiled with optimization flags enabled is all I can get for performance
19:21:32FromDiscord<Elegantbeef> Well you can disable runtime checks, but Nim does not do any optimisations on it's generated code
19:21:32FromDiscord<Elegantbeef> Optimisation flags only enable C optimisation
19:26:25FromDiscord<fl4shk> so I'm making good progress
19:26:33FromDiscord<fl4shk> on my converter to PipelineC
19:26:44FromDiscord<fl4shk> thanks to @solitudesf for the suggestion of outputting strings!
19:26:50FromDiscord<fl4shk> this is a lot easier than I thought it'd be
19:26:52FromDiscord<fl4shk> really cool approach!
19:41:26FromDiscord<fluff.goose> In reply to @Elegantbeef "Well you can disable": i see. i have a DOOM Style software renderer and i get 230 FPS filling the screen up entirely with a solid colour and end up getting around 220FPS drawing walls and what not
19:42:46FromDiscord<fluff.goose> (edit) "In reply to @Elegantbeef "Well you can disable": i see. i have a DOOM Style software renderer and i get 230 FPS filling the screen up entirely with a solid colour and end up getting around 220FPS drawing walls and what ... notsure" added "not, and was wondering how i could get more. the resolution was at 320x200, but i'm" | "not, and was wondering how i could get more. the resolution was at 320x200, but i'mnot ... " a
20:10:40FromDiscord<bendugo> is there an admin or anyone here i could talk to?
20:15:21FromDiscord<Elegantbeef> @fluff.goose profile the code to see the issue, though you can always do `-d:release -d:lto --cc:clang`
20:15:28FromDiscord<Elegantbeef> Clang tends to generate faster code ime
20:15:48FromDiscord<bendugo> @pmunch Check PM
20:23:08FromDiscord<fluff.goose> In reply to @Elegantbeef "Clang tends to generate": seems to shit the bed when I include the others, and it wont let me run my exe when I use --cc:clang
20:28:18FromDiscord<Elegantbeef> Huh
20:28:39FromDiscord<Elegantbeef> What OS and do you have clang installed?
20:28:39FromDiscord<fluff.goose> it shows the terminal, but doesnt go further and crashes with only --cc:clang
20:29:02FromDiscord<fluff.goose> W11 and yes I do, it's in my mingw64\bin https://media.discordapp.net/attachments/371759389889003532/1337882907095597116/image.png?ex=67a9100d&is=67a7be8d&hm=4edbe4d990b739c1938a901d6fdb847e8ede2c5273873f3834cb2797b0956aac&
20:30:00FromDiscord<Elegantbeef> Are there bugs with a release build with your default compiler?
20:31:14FromDiscord<Elegantbeef> If so sounds like you are doing something unsafe and it's exploding
20:32:05FromDiscord<fluff.goose> In reply to @Elegantbeef "Are there bugs with": nope, my usual compile command I paste into my terminal runs fine
20:32:25FromDiscord<fluff.goose> C:/mingw64/bin/ld: C:/mingw64/bin/../lib/LLVMgold.dll: error loading plugin: ↵↵Error: execution of an external program failed: 'clang.exe -o C:\Users\frase\OneDrive\Desktop\NimProjects\Nim\main.exe
20:32:32FromDiscord<fluff.goose> i'm getting this
20:33:03FromDiscord<Elegantbeef> Well I cannot say much seems you're missing a llvm dll
20:33:13FromDiscord<Elegantbeef> Never get issues like this on linux
20:39:56FromDiscord<fluff.goose> In reply to @Elegantbeef "Well I cannot say": what is it I should download for Windows? I went onto the git page for LLVM 18.1.8 and wondering if that is correct?
20:43:33FromDiscord<fluff.goose> nevermind, I think I've got it
20:45:39FromDiscord<pmunch> In reply to @bendugo "<@392962235737047041> Check PM": I saw your PR, but I've been busy being sick
20:52:20FromDiscord<bendugo> In reply to @pmunch "I saw your PR,": Ah ok get better soon!
21:06:15*attah joined #nim
21:16:46*coldfeet quit (Quit: Lost terminal)
21:28:52FromDiscord<fluff.goose> haven't found solutions anywhere, and nobody knows online what LLVMgold is, so I can't use --cc:clang apparently. still crashes with just --cc:clang, and complains with a whole bunch of text when I add in more flags
22:18:43FromDiscord<summarity> Gold is a linker and LLVMgold is gold plugin that provides an interface to libLTO.
22:48:52*ntat quit (Quit: Leaving)
22:53:26*tiorock joined #nim
22:53:26*rockcavera quit (Killed (tantalum.libera.chat (Nickname regained by services)))
22:53:26*tiorock is now known as rockcavera
22:55:32*tiorock joined #nim
22:55:32*rockcavera is now known as Guest9460
22:55:32*Guest9460 quit (Killed (tungsten.libera.chat (Nickname regained by services)))
22:55:32*tiorock is now known as rockcavera
23:05:37*jjido joined #nim
23:31:40*GnuYawk675 joined #nim
23:31:47*GnuYawk67 quit (Read error: Connection reset by peer)
23:31:47*GnuYawk675 is now known as GnuYawk67