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:43 | FromDiscord | <fl4shk> is there a way I can get my `if` statements to not compile into `goto`s? |
01:51:27 | FromDiscord | <fl4shk> looking more and more like I need to do the C DSL stuff for this. |
02:04:56 | FromDiscord | <fl4shk> how do you prevent the `result` value from being implemented as a pointer? |
02:07:55 | FromDiscord | <fl4shk> maybe if I just do everything as `template`s instead of `proc`s I can achieve what I'm after. |
02:16:55 | FromDiscord | <fl4shk> that... actually appears to have worked |
02:17:34 | FromDiscord | <fl4shk> for getting rid of pointers at least... |
02:17:40 | FromDiscord | <fl4shk> anyway I'm gonna need to try another thing |
02:18:09 | FromDiscord | <fl4shk> unless I just make the full C code generator I'm out of luck here since my application is weird |
02:21:06 | FromDiscord | <fl4shk> unfortunate. Maybe I just can't do what I was hoping to. |
02:26:35 | FromDiscord | <fl4shk> ...hm I wonder if I could have a macro that does `.emit:"...".` |
03:16:29 | * | rockcavera joined #nim |
04:35:02 | FromDiscord | <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:52 | FromDiscord | <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:16 | FromDiscord | <mrgaturus> (edit) "In reply to @gogolxdong666 "Anyone heard DeepSeek": it's a cool proof of concept that ... biggest" added "shows" |
07:34:29 | FromDiscord | <mrgaturus> (edit) "code" => "it's models" |
07:34:37 | FromDiscord | <mrgaturus> (edit) "it's" => "their" |
07:47:53 | FromDiscord | <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:31 | FromDiscord | <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:02 | FromDiscord | <nocturn9x> question about channels |
09:58:09 | FromDiscord | <nocturn9x> how safe is it to send references across them |
09:59:58 | FromDiscord | <nocturn9x> looks like they get copied when they're sent |
10:00:01 | FromDiscord | <nocturn9x> which is fine by me |
10:00:10 | FromDiscord | <nocturn9x> but idk, I remember someone recommending not to do that |
10:08:24 | * | derpydoo quit (Quit: derpydoo) |
10:45:36 | FromDiscord | <nocturn9x> ended up just not sending refs over a channel |
10:45:39 | FromDiscord | <nocturn9x> they work _great_ tho |
10:45:41 | FromDiscord | <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:41 | FromDiscord | <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:58 | FromDiscord | <solitudesf> sent a code paste, see https://play.nim-lang.org/#pasty=gdlMseRk |
14:15:26 | FromDiscord | <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:19 | FromDiscord | <arkanoid> that's easy! thanks |
14:32:19 | * | derpydoo quit (Quit: derpydoo) |
14:47:34 | FromDiscord | <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:53 | FromDiscord | <Robyn [She/Her]> In reply to @arkanoid "what's the best way": Depends, what are you trying to do exactly? |
14:52:40 | FromDiscord | <arkanoid> let user decide which file to slurp at compile time to read some specific data |
14:53:29 | FromDiscord | <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:48 | FromDiscord | <arkanoid> thanks |
14:54:51 | * | derpydoo joined #nim |
15:01:18 | * | coldfeet quit (Quit: Lost terminal) |
15:01:55 | FromDiscord | <fl4shk> is there a good tutorial for fancier Nim macros? |
15:02:08 | FromDiscord | <fl4shk> here's what I specifically need: |
15:02:53 | FromDiscord | <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:03 | FromDiscord | <fl4shk> ...this is a very simplified version of things |
15:03:05 | FromDiscord | <fl4shk> Let me post what I have |
15:03:53 | FromDiscord | <fl4shk> sent a code paste, see https://play.nim-lang.org/#pasty=RYUuYdEF |
15:04:17 | FromDiscord | <fl4shk> sent a code paste, see https://play.nim-lang.org/#pasty=tMjFvXHo |
15:04:20 | FromDiscord | <fl4shk> I have stuff like this ^ |
15:04:49 | FromDiscord | <fl4shk> sent a code paste, see https://play.nim-lang.org/#pasty=XMQbpaaa |
15:05:02 | FromDiscord | <fl4shk> (note: `Mat3x3` is a 3x3 matrix) |
15:05:14 | FromDiscord | <fl4shk> I don't know how to do the `cexpr` part |
15:05:26 | FromDiscord | <fl4shk> nor the `cstmtlist` part |
15:05:39 | FromDiscord | <fl4shk> maybe with a `template`? |
15:08:13 | FromDiscord | <fl4shk> it's possible I need to make a PipelineC-code AST |
15:08:25 | FromDiscord | <fl4shk> and do `.emit.`s manually |
15:09:02 | FromDiscord | <fl4shk> oh maybe the `nodecl` pragma will work |
15:13:27 | FromDiscord | <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:51 | FromDiscord | <fl4shk> so, that is an idea, but I think I'm close to this working |
15:14:18 | FromDiscord | <bosinski2023> In reply to @fl4shk "is there a good": i liked this https://dev.to/beef331/demystification-of-macros-in-nim-13n8 |
15:14:32 | FromDiscord | <fl4shk> ooh I'll look at that |
15:14:38 | FromDiscord | <solitudesf> In reply to @fl4shk "so, that is an": very deranged behaviour, but i support you |
15:16:13 | FromDiscord | <fl4shk> I think it won't take very much code to get this working |
15:16:15 | FromDiscord | <fl4shk> ...but well |
15:20:06 | FromDiscord | <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:40 | FromDiscord | <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:44 | FromDiscord | <fl4shk> hmm |
15:21:10 | FromDiscord | <fl4shk> that basically means I'm gonna need a more advanced approach |
15:21:21 | FromDiscord | <Robyn [She/Her]> Or you can make discardable a no-op? |
15:21:25 | FromDiscord | <fl4shk> oh? |
15:21:25 | FromDiscord | <Robyn [She/Her]> (edit) "discardable" => "discard" |
15:21:32 | FromDiscord | <fl4shk> that would help |
15:21:33 | FromDiscord | <Robyn [She/Her]> In your C code, I mean |
15:21:38 | FromDiscord | <Robyn [She/Her]> (edit) "In your ... C" added "generated" |
15:22:50 | FromDiscord | <fl4shk> can I change how the Nim compiler emits `discard`? |
15:23:05 | FromDiscord | <fl4shk> how do I do that? |
15:23:17 | FromDiscord | <fl4shk> the generated C code has a cast to `void` |
15:25:57 | FromDiscord | <fl4shk> well, maybe I can make something more sophisticated |
15:26:16 | FromDiscord | <fl4shk> and do the string output :P |
15:41:20 | * | derpydoo quit (Ping timeout: 252 seconds) |
15:50:54 | FromDiscord | <fl4shk> @solitudesf can you tell me more about the approach you mentioned? |
15:53:30 | FromDiscord | <fl4shk> maybe I need to read the code |
15:54:40 | FromDiscord | <fl4shk> wait a minute |
15:54:43 | FromDiscord | <fl4shk> this code is very small! |
15:58:19 | FromDiscord | <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:20 | FromDiscord | <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:46 | FromDiscord | <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:40 | FromDiscord | <lainlaylie> In reply to @summarity "`--docRoot` seems to require": does `$projectDir` help? |
18:18:19 | FromDiscord | <summarity> In reply to @lainlaylie "does `$projectDir` help?": How would I apply that in nim.cfg? |
18:23:06 | FromDiscord | <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:12 | FromDiscord | <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:05 | FromDiscord | <Elegantbeef> @fluff.goose why would it suddenly stop being compiled to C? |
19:20:13 | FromDiscord | <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:32 | FromDiscord | <Elegantbeef> Well you can disable runtime checks, but Nim does not do any optimisations on it's generated code |
19:21:32 | FromDiscord | <Elegantbeef> Optimisation flags only enable C optimisation |
19:26:25 | FromDiscord | <fl4shk> so I'm making good progress |
19:26:33 | FromDiscord | <fl4shk> on my converter to PipelineC |
19:26:44 | FromDiscord | <fl4shk> thanks to @solitudesf for the suggestion of outputting strings! |
19:26:50 | FromDiscord | <fl4shk> this is a lot easier than I thought it'd be |
19:26:52 | FromDiscord | <fl4shk> really cool approach! |
19:41:26 | FromDiscord | <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:46 | FromDiscord | <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:40 | FromDiscord | <bendugo> is there an admin or anyone here i could talk to? |
20:15:21 | FromDiscord | <Elegantbeef> @fluff.goose profile the code to see the issue, though you can always do `-d:release -d:lto --cc:clang` |
20:15:28 | FromDiscord | <Elegantbeef> Clang tends to generate faster code ime |
20:15:48 | FromDiscord | <bendugo> @pmunch Check PM |
20:23:08 | FromDiscord | <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:18 | FromDiscord | <Elegantbeef> Huh |
20:28:39 | FromDiscord | <Elegantbeef> What OS and do you have clang installed? |
20:28:39 | FromDiscord | <fluff.goose> it shows the terminal, but doesnt go further and crashes with only --cc:clang |
20:29:02 | FromDiscord | <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:00 | FromDiscord | <Elegantbeef> Are there bugs with a release build with your default compiler? |
20:31:14 | FromDiscord | <Elegantbeef> If so sounds like you are doing something unsafe and it's exploding |
20:32:05 | FromDiscord | <fluff.goose> In reply to @Elegantbeef "Are there bugs with": nope, my usual compile command I paste into my terminal runs fine |
20:32:25 | FromDiscord | <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:32 | FromDiscord | <fluff.goose> i'm getting this |
20:33:03 | FromDiscord | <Elegantbeef> Well I cannot say much seems you're missing a llvm dll |
20:33:13 | FromDiscord | <Elegantbeef> Never get issues like this on linux |
20:39:56 | FromDiscord | <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:33 | FromDiscord | <fluff.goose> nevermind, I think I've got it |
20:45:39 | FromDiscord | <pmunch> In reply to @bendugo "<@392962235737047041> Check PM": I saw your PR, but I've been busy being sick |
20:52:20 | FromDiscord | <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:52 | FromDiscord | <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:43 | FromDiscord | <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 |