00:43:14 | FromDiscord | <jos> can you forward declare types? |
00:43:35 | FromDiscord | <jos> ah ok i see you can't really |
00:43:36 | FromDiscord | <Elegantbeef> Kinda but you really dont need to |
00:43:46 | FromDiscord | <Elegantbeef> There is an experiemental `packageType` which works like C's incomplete struct |
00:45:02 | FromDiscord | <jos> i kind of need to |
00:45:13 | FromDiscord | <Elegantbeef> Why? |
00:45:17 | FromDiscord | <jos> i realize i can restructure my code |
00:45:21 | FromDiscord | <jos> but in a lot of cases it's just nastier |
00:45:41 | FromDiscord | <jos> especially if you don't really have a good thing to call your new file |
00:46:03 | FromDiscord | <jos> maybe code reordering will just magically fix it |
00:46:20 | FromDiscord | <Elegantbeef> Eh i wouldnt rely on it |
00:47:38 | FromDiscord | <jos> well it did work 😁 |
00:47:47 | FromDiscord | <jos> so for now i'll just roll with that lmao |
00:48:02 | FromDiscord | <Elegantbeef> What are you doing? |
00:48:55 | FromDiscord | <jos> writing a parser |
00:49:10 | FromDiscord | <Elegantbeef> That's not what i mean |
00:49:21 | FromDiscord | <jos> i have a file that declares a bunch of operators, and some operators need to invoke parsers |
00:49:21 | FromDiscord | <Elegantbeef> What is the code you're using reordering for |
00:49:29 | FromDiscord | <jos> but parsers need to invoke operators |
00:51:28 | FromDiscord | <jos> actually code reordering didn't work either, it just solved an early symptom |
00:51:37 | FromDiscord | <jos> i think i do need another module |
00:51:53 | FromDiscord | <Elegantbeef> If you were attempting to use code reordering for types, that isnt needed |
00:52:05 | FromDiscord | <Elegantbeef> Just declare your types in a single type block and move along |
00:52:26 | FromDiscord | <jos> well i can't really |
00:52:35 | FromDiscord | <jos> unless i really muck with the ordering of everything |
00:53:01 | FromDiscord | <jos> i'd have to put all the types at the top and then the rest of the impl at the bottom |
00:53:03 | FromDiscord | <Elegantbeef> I mean Nim's biggest problem in this regard is cyclical dependencies are disallowed which cause many odd design choices |
00:53:09 | FromDiscord | <jos> but i kind of like to keep them together |
00:53:10 | FromDiscord | <Elegantbeef> That's fine to do and preferable |
00:53:16 | FromDiscord | <jos> eh |
00:53:19 | FromDiscord | <jos> depends who you ask |
00:53:45 | FromDiscord | <jos> i'm making a language so i can have my own opinions, using nim because it's the closest thing to what i want my language to be |
00:55:03 | FromDiscord | <jos> and to that point the easiest thing would just be to move the operators into the parser file so.. i guess i'll do that for now |
00:55:05 | FromDiscord | <jos> :chatting: |
01:00:12 | FromDiscord | <SaAnd> I had a similar sounding issue with nimble in general, it couldn't download anything and even `nimble refresh` failed. What was the error message exactly?↵(@jan Apisu) |
01:01:11 | * | jmdaemon joined #nim |
02:02:01 | * | arkurious quit (Quit: Leaving) |
02:44:04 | FromDiscord | <Tuatarian> In reply to @Elegantbeef "`lexer` is your program": oh, even in this context |
02:44:28 | FromDiscord | <Tuatarian> I saw lexer.c and got confused lmao |
02:44:38 | FromDiscord | <Tuatarian> this is a nim bug though right, not my code's problem? |
02:44:59 | FromDiscord | <Elegantbeef> I mean it's your code problem but it's a compiler bug |
02:45:21 | FromDiscord | <Tuatarian> fair |
02:46:08 | FromDiscord | <Tuatarian> is there anything significant in #devel which is not in stable? |
02:46:21 | FromDiscord | <Tuatarian> this is still broken on stable btw |
03:00:57 | * | derpydoo quit (Quit: derpydoo) |
03:06:07 | FromDiscord | <Elegantbeef> It's likely some Nim compiler bug that allowed bad code |
03:06:14 | FromDiscord | <Elegantbeef> So look at all your proc types |
03:06:20 | FromDiscord | <wiga> is there any lib to copy files? |
03:06:55 | FromDiscord | <wiga> nvm imma make my own |
03:09:07 | FromDiscord | <Elegantbeef> std/os has copyFile |
03:10:12 | FromDiscord | <Elegantbeef> @Tuatarian\: do you know where you use proc types, if so ensure those are the same |
04:12:51 | FromDiscord | <wiga> In reply to @Elegantbeef "std/os has copyFile": Whenever i try to copy a sqlite database while it being opened, the destination file is empty |
04:13:25 | FromDiscord | <wiga> Any workaround for that? Without having the terminate the process using the db |
04:13:33 | FromDiscord | <wiga> (edit) "the" => "to" |
04:15:55 | FromDiscord | <Tuatarian> In reply to @Elegantbeef "<@284835054633353226>\: do you know": like a variable of type proc? |
04:15:57 | FromDiscord | <Tuatarian> never |
04:17:47 | FromDiscord | <Xenon> In reply to @iWonderAboutTuatara "like a variable of": maybe he means lambdas? |
04:17:52 | FromDiscord | <Xenon> ah wait |
04:17:58 | FromDiscord | <Xenon> just read what he meant |
04:18:00 | FromDiscord | <Xenon> lol |
04:18:02 | FromDiscord | <Xenon> oops |
04:18:33 | FromDiscord | <Elegantbeef> Oh bridge moment |
04:18:39 | FromDiscord | <Elegantbeef> I mean the variable or field that is a proctype |
04:19:24 | FromDiscord | <Xenon> lol |
04:19:37 | FromDiscord | <Elegantbeef> Any usage of pointer procs |
04:20:04 | FromDiscord | <Elegantbeef> Likely the procedure named `applyLexer` |
04:22:46 | FromDiscord | <Tuatarian> there's some lambdas, but no pointer procts/pointers to procs |
04:22:56 | FromDiscord | <Elegantbeef> what's the third parameter of `applyLexer`? |
04:23:27 | FromDiscord | <Tuatarian> there is no `applyLexer` |
04:23:32 | FromDiscord | <Tuatarian> I have no `applyLexer` function |
04:23:42 | FromDiscord | <Elegantbeef> `apply`? |
04:23:51 | FromDiscord | <Tuatarian> apply I'm using yeah |
04:24:00 | FromDiscord | <Elegantbeef> Ok so what's the apply |
04:24:01 | FromDiscord | <Tuatarian> `newTree.apply(x => x.left - shift)` |
04:24:07 | FromDiscord | <Tuatarian> this should work fine |
04:24:24 | FromDiscord | <Tuatarian> `newTree` is a `var` |
04:24:29 | FromDiscord | <Tuatarian> not a `let` |
04:24:36 | FromDiscord | <Elegantbeef> Likely Nim's generator not working well |
04:24:41 | FromDiscord | <Tuatarian> probalby |
04:24:48 | FromDiscord | <Tuatarian> anything I can do about this besides waiting |
04:24:48 | FromDiscord | <Elegantbeef> Who cares what the mutabillity is |
04:25:06 | FromDiscord | <Tuatarian> as in, it's not to do with me trying to mutate an immutable thing |
04:25:11 | FromDiscord | <Elegantbeef> try `newTree.apply(proc(x: YourType): yourResult = x.left - shift)` |
04:25:16 | FromDiscord | <Elegantbeef> That's unrelated |
04:25:18 | FromDiscord | <wiga> Difference between var and let ? Im curious |
04:25:20 | FromDiscord | <Elegantbeef> It's a codegen issue |
04:25:24 | FromDiscord | <Tuatarian> yeah |
04:25:52 | FromDiscord | <Tuatarian> In reply to @Elegantbeef "try `newTree.apply(proc(x: YourType): yourResult": same |
04:26:53 | FromDiscord | <Elegantbeef> What's the apply proc? |
04:26:58 | FromDiscord | <Elegantbeef> Is it `sequtils`? |
04:27:12 | FromDiscord | <Tuatarian> yes |
04:27:38 | FromDiscord | <Tuatarian> oh I see the problem |
04:27:41 | FromDiscord | <Elegantbeef> What about `newTree.applyIt(it.left - shift)`? |
04:27:50 | FromDiscord | <Tuatarian> wait nevermind |
04:28:07 | FromDiscord | <Elegantbeef> should be using applyit anyway imo |
04:28:19 | FromDiscord | <Tuatarian> actually this may be the `zero_functional` apply |
04:28:47 | FromDiscord | <Tuatarian> `d:\Scripts\Misc\Nim\Nim\nCas\lexer.nim(90, 37) Error: type mismatch: got 'int' for 'it.left - shift' but expected 'ASTNode = object'` |
04:29:18 | FromDiscord | <Elegantbeef> `discard it.left - shift` |
04:29:21 | FromDiscord | <Elegantbeef> I guess |
04:29:33 | FromDiscord | <Elegantbeef> No clue if it'll work |
04:29:39 | FromDiscord | <Tuatarian> nope |
04:29:46 | FromDiscord | <Tuatarian> expression expected, but found keyword discard |
04:29:55 | FromDiscord | <Tuatarian> that's weird that apply doesn't work this way |
04:30:13 | FromDiscord | <Elegantbeef> I mean it should work |
04:30:19 | FromDiscord | <Tuatarian> yeah |
04:30:28 | FromDiscord | <Elegantbeef> Something is causing it to generate a new procedure type |
04:30:28 | FromDiscord | <Elegantbeef> One that mismatches |
04:31:13 | FromDiscord | <Tuatarian> in the meantime, I could just use a for loop I guess and do it that way |
04:31:29 | FromDiscord | <Elegantbeef> I mean you can just copy `applyit` |
04:32:16 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4ceT |
04:32:57 | FromDiscord | <Elegantbeef> But yea i'd just use a forloop, though i tend to avoid FPisms |
04:33:10 | FromDiscord | <Tuatarian> the FPisms are good if you're doing array stuff |
04:33:18 | FromDiscord | <Tuatarian> they're very concise and readable |
04:33:24 | FromDiscord | <Tuatarian> moreso than loops on both counts |
04:33:28 | FromDiscord | <Elegantbeef> Eh i dont find lambda syntax very readable |
04:34:19 | FromDiscord | <Tuatarian> personal preference I guess |
04:34:42 | FromDiscord | <Tuatarian> but in general I find reducing verbosity generally increases readability, at least for me |
04:34:42 | FromDiscord | <Elegantbeef> Though i dont see the point in the `apply` procedure when you're using `=>` |
04:34:52 | FromDiscord | <Elegantbeef> The point of `apply` to me is if you have an existing procedure |
04:34:56 | FromDiscord | <Elegantbeef> `applyit` is just better |
04:35:04 | FromDiscord | <Tuatarian> I was doing that since I think zero_functional requires you to use the lambdas |
05:02:06 | FromDiscord | <Rika> In reply to @wiga "Difference between var and": Mutability |
05:02:39 | FromDiscord | <wiga> Develop |
05:04:19 | FromDiscord | <Rika> What? |
05:55:37 | * | rockcavera quit (Remote host closed the connection) |
06:06:43 | * | kenran joined #nim |
06:31:40 | * | xet7 quit (Ping timeout: 268 seconds) |
07:19:49 | * | kenran quit (Remote host closed the connection) |
07:21:43 | * | kenran joined #nim |
07:51:01 | * | m5zs7k quit (Ping timeout: 265 seconds) |
07:53:41 | * | m5zs7k joined #nim |
08:50:52 | * | neceve quit (Quit: ZNC - https://znc.in) |
08:52:27 | * | neceve joined #nim |
09:29:43 | * | dnh joined #nim |
09:48:24 | FromDiscord | <Super Dev> sent a code paste, see https://play.nim-lang.org/#ix=4cfA |
09:50:00 | FromDiscord | <baalajimaestro> 😂😂 |
10:11:53 | * | dnh quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:17:54 | FromDiscord | <mahdibehkar> Does Case/of work at compile time? |
10:26:43 | FromDiscord | <mratsim> In reply to @mahdibehkar "Does Case/of work at": yes. Macros use that extensively |
11:08:37 | * | dnh joined #nim |
11:19:39 | * | jmdaemon quit (Ping timeout: 268 seconds) |
11:26:12 | FromDiscord | <Phil> So it acts kind of like a when statement? Neat |
12:12:23 | * | PMunch joined #nim |
12:19:50 | * | arkurious joined #nim |
12:33:29 | FromDiscord | <konsumlamm> no no, a normal `case` runs at runtime |
12:33:41 | FromDiscord | <konsumlamm> you can put it in a `static` block though |
12:34:17 | FromDiscord | <konsumlamm> (and then it still doesn't act like `when`, because it creates a new scope for each branch) |
12:37:48 | * | dnh quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:38:06 | FromDiscord | <ChocolettePalette> When is kinda cool but static is cooler doe |
12:41:32 | FromDiscord | <Generic> it's two fundamentally different things |
12:48:23 | * | dnh joined #nim |
13:01:33 | * | derpydoo joined #nim |
13:12:23 | * | PMunch quit (Quit: Leaving) |
13:30:03 | * | kenran quit (Remote host closed the connection) |
14:03:23 | FromDiscord | <jos> they seem pretty similar to me, to the point where you could omit when from the language and just use static if |
14:03:45 | FromDiscord | <jos> unless I'm misunderstanding something |
14:07:04 | FromDiscord | <Rika> Static if would evaluate all the code including the body of the if on compile time |
14:07:15 | FromDiscord | <Rika> When does only the condition, then the body is pasted in |
14:09:12 | FromDiscord | <Takemichi Hanagaki> In reply to @Rainbow Asteroids "typically types are in": Got it, thank you! |
14:13:13 | FromDiscord | <jos> In reply to @Rika "Static if would evaluate": if static <expression>:? |
14:14:14 | * | kenran joined #nim |
14:14:55 | FromDiscord | <Rika> Then that would only evaluate the expression on compile time, no copy paste |
14:15:08 | FromDiscord | <Rika> Well of course unless folding I guess |
14:27:57 | * | LuxuryMode joined #nim |
14:33:34 | * | dnh quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:39:51 | * | rockcavera joined #nim |
14:39:51 | * | rockcavera quit (Changing host) |
14:39:51 | * | rockcavera joined #nim |
14:40:19 | * | dnh joined #nim |
15:07:20 | FromDiscord | <halc> is it possible to move an existing `seq` to an object field without copying the data on the heap? |
15:09:53 | FromDiscord | <Yardanico> In reply to @halc "is it possible to": i don't think so, but with arc/orc the compiler itself might optimize it to a move if it deems it safe |
15:11:23 | FromDiscord | <halc> In reply to @Yardanico "i don't think so,": well, the output of `--expandArc` says otherwise |
15:11:30 | FromDiscord | <halc> 😔 |
15:13:17 | FromDiscord | <halc> even if it can be "proven" the old seq won't be used again |
15:14:14 | FromDiscord | <halc> I guess potentially one could make a `ref seq`? |
15:14:19 | FromDiscord | <halc> (edit) "make" => "use" |
15:15:54 | FromDiscord | <halc> In reply to @Yardanico "i don't think so,": well, the output of `--expandArc` says otherwise |
15:31:58 | * | derpydoo quit (Ping timeout: 268 seconds) |
16:08:37 | * | gsalazar joined #nim |
16:21:12 | * | droidrage quit (*.net *.split) |
16:21:13 | * | ehmry quit (*.net *.split) |
16:21:13 | * | tanami quit (*.net *.split) |
16:21:13 | * | mahlon quit (*.net *.split) |
16:21:13 | * | adium quit (*.net *.split) |
16:21:13 | * | nyeaa4 quit (*.net *.split) |
16:21:13 | * | void09_ quit (*.net *.split) |
16:21:13 | * | dom96 quit (*.net *.split) |
16:21:13 | * | robertmeta quit (*.net *.split) |
16:21:13 | * | GreaseMonkey quit (*.net *.split) |
16:21:13 | * | Jovan quit (*.net *.split) |
16:21:14 | * | ormiret quit (*.net *.split) |
16:21:14 | * | Ekho quit (*.net *.split) |
16:21:14 | * | Onionhammer quit (*.net *.split) |
16:21:14 | * | mal`` quit (*.net *.split) |
16:21:14 | * | Jjp137 quit (*.net *.split) |
16:21:14 | * | koltrast quit (*.net *.split) |
16:21:14 | * | estiquelapice quit (*.net *.split) |
16:21:14 | * | madprops quit (*.net *.split) |
16:21:14 | * | oisota quit (*.net *.split) |
16:21:14 | * | deadmarshal quit (*.net *.split) |
16:22:52 | * | droidrage joined #nim |
16:22:52 | * | ehmry joined #nim |
16:22:52 | * | Onionhammer joined #nim |
16:22:52 | * | tanami joined #nim |
16:22:52 | * | mal`` joined #nim |
16:22:52 | * | nyeaa4 joined #nim |
16:22:52 | * | adium joined #nim |
16:22:52 | * | mahlon joined #nim |
16:22:52 | * | Jjp137 joined #nim |
16:22:52 | * | koltrast joined #nim |
16:22:52 | * | Ekho joined #nim |
16:22:52 | * | ormiret joined #nim |
16:22:52 | * | Jovan joined #nim |
16:22:52 | * | GreaseMonkey joined #nim |
16:22:52 | * | robertmeta joined #nim |
16:22:52 | * | dom96 joined #nim |
16:22:52 | * | void09_ joined #nim |
16:22:52 | * | estiquelapice joined #nim |
16:22:52 | * | deadmarshal joined #nim |
16:22:52 | * | oisota joined #nim |
16:22:52 | * | madprops joined #nim |
16:26:48 | * | gsalazar quit (Ping timeout: 264 seconds) |
16:32:06 | FromDiscord | <gibson> sent a code paste, see https://paste.rs/3UC |
16:36:31 | FromDiscord | <demotomohiro> `namespace` parameter in `markov` template replace both `namespane` in `n.namespace = namespace`. |
16:37:46 | FromDiscord | <gibson> ohhh, thank you. I see, the error is talking about the `n.namespace` |
16:38:28 | FromDiscord | <Horizon [She/Her]> Is there a tool that handles lexing and parsing with a few rules i can define so I don't have to do both myself? |
16:38:56 | FromDiscord | <Horizon [She/Her]> I'd implement the actual executing of the AST myself, just really can't be bothered building the AST from my tokens |
16:39:03 | FromDiscord | <Horizon [She/Her]> Irritating and annoying |
16:39:05 | FromDiscord | <gibson> @demotomohiro Awesome, knowing how to read that error made the fix incredibly obvious. Thanks again. |
16:40:20 | FromDiscord | <demotomohiro> @gibson https://nim-lang.org/docs/manual.html#templates-lookup-rules-for-template-parameters |
16:41:02 | FromDiscord | <gibson> I should've remembered those rules 🤦♂️ |
16:52:54 | * | kenran quit (Remote host closed the connection) |
16:56:27 | * | wallabra_ joined #nim |
16:58:12 | * | wallabra quit (Ping timeout: 268 seconds) |
16:58:15 | * | wallabra_ is now known as wallabra |
17:26:56 | NimEventer | New post on r/nim by unquietwiki: sortplz: initial release of a file-sorting tool; have ideas for more features to add later on. Enjoy!, see https://reddit.com/r/nim/comments/xvl1ys/sortplz_initial_release_of_a_filesorting_tool/ |
18:08:06 | * | rez joined #nim |
18:31:00 | FromDiscord | <Horizon [She/Her]> Does Nim have a binding for `Bison`? |
18:34:11 | FromDiscord | <Horizon [She/Her]> Nvm found Nimly which is cool |
19:09:36 | NimEventer | New thread by Araq: Threaded TLSF, see https://forum.nim-lang.org/t/9506 |
19:11:56 | FromDiscord | <ShalokShalom> In reply to @Yardanico "I think so, yes": Thanks a lot, but how are strictEffects are related to strictFuncs? |
19:22:45 | * | arkurious quit (Quit: Leaving) |
19:26:03 | * | rez quit (Quit: much snoozes...) |
19:57:56 | FromDiscord | <ShalokShalom> sent a long message, see http://ix.io/4chZ |
19:58:32 | * | jmdaemon joined #nim |
19:59:13 | FromDiscord | <Horizon [She/Her]> It uses FFI yeah |
19:59:16 | FromDiscord | <Horizon [She/Her]> With Nimpy lmao |
19:59:37 | * | kenran joined #nim |
19:59:44 | * | kenran quit (Remote host closed the connection) |
19:59:58 | FromDiscord | <Horizon [She/Her]> Also, what's a good mix of the words Nim and "Revolt" for an API wrapper ;p |
20:00:19 | * | kenran joined #nim |
20:00:42 | * | kenran quit (Remote host closed the connection) |
20:01:17 | * | kenran joined #nim |
20:08:36 | FromDiscord | <Horizon [She/Her]> Ah... https://github.com/disruptek/openapi doesn't support OpenAPI 3, sad |
20:22:15 | FromDiscord | <Horizon [She/Her]> Is it better to use the C generator for OpenAPI or the Nim generator? Since the Nim generator is currently in beta and Futhark can wrap C files automatically |
20:22:26 | FromDiscord | <Horizon [She/Her]> https://openapi-generator.tech/docs/generators/c vs https://openapi-generator.tech/docs/generators/nim |
20:32:06 | FromDiscord | <Horizon [She/Her]> Nim has a `mixin` keyword? |
20:32:34 | FromDiscord | <Patitotective> yea, and bind |
20:32:48 | FromDiscord | <Patitotective> https://nim-lang.org/docs/manual.html#generics-mixin-statement |
20:33:55 | FromDiscord | <Horizon [She/Her]> Oh neat |
20:51:10 | * | rez joined #nim |
21:06:06 | * | qwr quit (Ping timeout: 268 seconds) |
21:07:52 | * | kenran quit (Remote host closed the connection) |
21:15:49 | FromDiscord | <Raynei486> how do we do left and right shifting in nim? |
21:16:06 | FromDiscord | <Elegantbeef> `shl` and `shr` |
21:19:49 | FromDiscord | <Raynei486> 👍 |
21:27:29 | * | qwr joined #nim |
22:51:28 | * | rez quit (Quit: much snoozes...) |
23:57:42 | * | LuxuryMode quit (Quit: Connection closed for inactivity) |