00:11:12 | FromDiscord | <Girvo> A more general question that Nim-specific (though it will inform what I implement in the library I'm building) -- are there any other higher level locking/synchronisation tools that one can build on top of semaphores/mutexes/etc. similar to a readers-writer lock? |
00:40:00 | * | derpydoo joined #nim |
00:41:45 | FromDiscord | <Nlits (Ping on reply)> sent a code paste, see https://play.nim-lang.org/#ix=4vyp |
00:41:48 | FromDiscord | <Girvo> sent a code paste, see https://play.nim-lang.org/#ix=4vyq |
00:42:26 | FromDiscord | <Elegantbeef> There is no way of locking mutability down girvo |
00:42:27 | FromDiscord | <Girvo> (edit) "https://play.nim-lang.org/#ix=4vyq" => "https://play.nim-lang.org/#ix=4vyr" |
00:42:31 | FromDiscord | <Girvo> Damn 😦 |
00:42:41 | FromDiscord | <Elegantbeef> you need to do `let example = example` inside a `if true:` or `block:` |
00:43:15 | FromDiscord | <Nlits (Ping on reply)> In reply to @Elegantbeef "you need to do": what do u mean? Like `let example = block:`? |
00:43:40 | FromDiscord | <Elegantbeef> That was to girvo |
00:43:49 | FromDiscord | <Nlits (Ping on reply)> In reply to @Elegantbeef "That was to girvo": oh, sory |
00:44:14 | FromDiscord | <Girvo> sent a code paste, see https://paste.rs/g5g |
00:44:16 | FromDiscord | <Girvo> Yeah I see now okay |
00:44:23 | FromDiscord | <Girvo> Better than nothing! |
00:44:42 | FromDiscord | <Nlits (Ping on reply)> In reply to @not logged in "What is wrong with": I swear this is exactly the same as the docs |
00:44:55 | FromDiscord | <Elegantbeef> It of course might not copy if copy elision kicks in |
00:45:39 | FromDiscord | <Girvo> Yeah... probably dangerous to rely on entirely. Probably just stick to careful code reviews haha. We're not using RW locks often at least |
00:45:45 | * | nanxiao joined #nim |
00:45:58 | FromDiscord | <Elegantbeef> https://nim-lang.org/docs/destructors.html#cursor-inference-slash-copy-elision if you didnt know |
00:46:55 | FromDiscord | <Elegantbeef> Tracked mutability is a hell of an optimiser 😄 |
00:47:55 | FromDiscord | <Nlits (Ping on reply)> In reply to @not logged in "I swear this is": oh wait, it is sorted not sort... |
00:47:59 | FromDiscord | <Girvo> It'd show in the C output if it has, right? |
00:48:22 | FromDiscord | <Elegantbeef> Correct girvo |
00:48:31 | FromDiscord | <Girvo> Sweet, I'll do some digging |
00:48:50 | FromDiscord | <Elegantbeef> You also can explicitly do `let example {.cursor.} = example` though no clue about the semantics there |
00:49:04 | FromDiscord | <Elegantbeef> This of course only makes sense for types that have heap allocations with a copy |
00:49:21 | FromDiscord | <Elegantbeef> Since you cannot remove a copy from a stack value without introducing a `ptr` |
00:49:33 | FromDiscord | <Girvo> Of course. Which in this case, they do, they're "large" ish objects on the heap shared across threads guarded by a RwLock |
00:49:41 | FromDiscord | <Elegantbeef> Actually i'm dumb |
00:49:50 | FromDiscord | <Elegantbeef> For direct variables i think it does remove a copy |
00:49:55 | FromDiscord | <Girvo> Oh neat |
00:49:59 | FromDiscord | <Elegantbeef> Since aliasing is easily checkable |
00:50:06 | FromDiscord | <Girvo> Yeah that makes sense tbh |
00:50:33 | FromDiscord | <Elegantbeef> In the case of `let a = a` you can just paste the original a everyhwere it was used since you have all that static analysis |
00:52:23 | FromDiscord | <Girvo> Could a withReadLock template not wrap your `bdy: untyped` into this `block: let data = data` if the template knows (or is told) about the guarded variable? Or does that not work the way I think it would |
00:53:02 | FromDiscord | <Elegantbeef> I mean it's a macro |
00:53:15 | FromDiscord | <Elegantbeef> You can rewrite the internals as much as you want |
00:53:20 | FromDiscord | <Girvo> I guess in some ways its probably better to have the `let a = a` block be explicit, especially if we're relying on copy elision to avoid memory usage. I'll have a play with it in the prod code base and see what it spits out on the C end with our usage |
00:54:04 | FromDiscord | <Girvo> Yeah I guess I'm wondering aloud whether hiding that would confuse rather than clear up things |
00:54:20 | FromDiscord | <Elegantbeef> It'd be less error prone |
00:54:28 | FromDiscord | <Elegantbeef> Since you now shadow an immutable version of the lock internally |
00:54:44 | FromDiscord | <Girvo> Mm |
00:55:07 | FromDiscord | <Elegantbeef> Basically for a `dotExpr` you'd shadow the highest level expression if it's a symbol(it's actually the deepest in the AST) |
00:55:10 | FromDiscord | <Girvo> I'll have a crack at it. It'd need this "object that holds the lock and the data" for it to work though |
00:55:44 | FromDiscord | <Elegantbeef> It might not be worth the trouble to do, who knows |
00:56:02 | FromDiscord | <Girvo> Yeah I'll timebox it. It'd be a _really_ nice end result, if it works |
00:56:55 | FromDiscord | <Girvo> And honestly for a RwLock, having the lock be seperate from the data variable is somewhat unneeded anyway, as its supposed to be 1:1 anyway |
00:56:55 | FromDiscord | <Elegantbeef> Well if you make a specialised `withReadLock` for the type you're using that uses that lock it should not be a big deal |
00:57:06 | FromDiscord | <Girvo> Yeah thats the plan |
00:57:32 | FromDiscord | <Elegantbeef> 😄 |
00:57:36 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4vys |
00:57:37 | FromDiscord | <Elegantbeef> whoops |
00:57:40 | FromDiscord | <Elegantbeef> `rl.lock is Lock` |
00:58:12 | FromDiscord | <Girvo> hehe. hmm okay I'm definitely having a crack at this today |
00:58:18 | FromDiscord | <Elegantbeef> Then you do not even need to do `withReadLock(myData.lock)` it's just `withReadLock(myReadLock)` |
00:58:33 | FromDiscord | <Elegantbeef> And since you know it's a `readLock` you can just emit your `let myReadLock {.cursor.} = myReadLock` |
00:58:45 | FromDiscord | <Girvo> yeah this seems feasible |
00:59:18 | FromDiscord | <Girvo> Alright brb lol |
00:59:41 | FromDiscord | <Elegantbeef> @Girvo\: will note that you should only use `block` if you want to enable `break blockName` otherwise use `if true` |
00:59:58 | FromDiscord | <Elegantbeef> `if true` does not block `break` so you can still use `withReadLock` inside an iterator |
01:00:18 | FromDiscord | <Elegantbeef> `block` eats a break so you cannot escape loops with it |
01:00:40 | FromDiscord | <Girvo> Oh thats good to know, cheers |
01:02:17 | FromDiscord | <Girvo> That actually impacts my freertos_tasks impl too, thats super good to know |
01:02:31 | FromDiscord | <Elegantbeef> It's why they keep me around |
01:09:52 | * | beholders_eye quit (Ping timeout: 248 seconds) |
01:35:32 | * | nanxiao quit (Quit: Client closed) |
02:29:24 | * | derpydoo quit (Quit: derpydoo) |
02:30:33 | * | derpydoo joined #nim |
02:48:49 | * | nanxiao joined #nim |
03:03:05 | * | rockcavera quit (Remote host closed the connection) |
03:15:45 | FromDiscord | <voidwalker> wouldn't it be nice if people could have their own channel here under a "Projects" category ? |
03:17:53 | FromDiscord | <voidwalker> You can only join so many discord servers (100), and thus people less likely to bother, or take the time to click on it once joined. I think it would improve visibility and participation a lot if allowed to host project based chats here |
03:18:26 | FromDiscord | <voidwalker> (edit) "click on" => "check" | "checkit ... oncehere." added "out often" | "here" => "here." |
03:20:38 | * | nanxiao quit (Quit: Client closed) |
03:21:31 | FromDiscord | <Elegantbeef> You're right we should use matrix and add each room to the space under "community" |
03:22:14 | NimEventer | New thread by terrygils: Clearer copyright license for Nim logos and assets, see https://forum.nim-lang.org/t/10188 |
03:24:57 | * | nanxiao joined #nim |
04:11:45 | NimEventer | New Nimble package! nimipdf - Nim library that adds a PDF backend for nimib, see https://neroist.github.io/nimipdf/index.pdf |
04:56:14 | * | nanxiao quit (Quit: Client closed) |
05:11:55 | FromDiscord | <Girvo> sent a code paste, see https://play.nim-lang.org/#ix=4vyS |
05:13:06 | FromDiscord | <Elegantbeef> Make a property for `.a` |
05:14:05 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4vyV |
05:14:06 | FromDiscord | <Elegantbeef> Draw the rest of the owl |
05:15:34 | FromDiscord | <Girvo> Ah yeah, I'm with you. Sweet |
05:15:39 | FromDiscord | <Girvo> Cheers 🙂 |
05:17:34 | FromDiscord | <Elegantbeef> Rust devs hate this one simple trick |
05:21:44 | * | azimut quit (Ping timeout: 240 seconds) |
05:30:31 | FromDiscord | <Rika> Why the backticks |
05:30:42 | FromDiscord | <Elegantbeef> I was thinking of a setter |
05:30:48 | FromDiscord | <Elegantbeef> As I always do |
05:40:54 | * | advesperacit joined #nim |
06:12:56 | FromDiscord | <Dudugz> sent a code paste, see https://play.nim-lang.org/#ix=4vyY |
06:13:25 | FromDiscord | <Elegantbeef> Purely cause it's unimplemented |
06:13:44 | FromDiscord | <Dudugz> But it could be implemented, using Option feels weird. |
06:13:45 | FromDiscord | <Elegantbeef> Also why wouldnt it be `int?` if we were going to add it |
06:14:34 | FromDiscord | <Dudugz> Why would it be an optional value? It would be the same as Option.isNone() just more straightforward |
06:14:40 | FromDiscord | <Dudugz> a !== nil |
06:15:16 | FromDiscord | <Dudugz> (edit) "a !== nil" => "``a != nil`` instead of ``a.isNone()``" |
06:15:36 | FromDiscord | <Dudugz> You could also use ``a`` directly instead of having to fetch the value in Option |
06:15:46 | FromDiscord | <Dudugz> (edit) "Why" => "Because" |
06:16:01 | FromDiscord | <Dudugz> (edit) "would it" => "it'd" | "value?" => "value" |
06:17:45 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4vyZ |
06:18:29 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4vz0 |
06:18:39 | FromDiscord | <Dudugz> Hm yea, I forgot that Nim allows you to create macros :v |
06:19:28 | FromDiscord | <Dudugz> It's interesting how simple it is to add new features to the language without having to think too much lol. Imagine implementing all this in parser and lexer how boring it would be. |
06:20:05 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4vz1 |
06:20:24 | FromDiscord | <Elegantbeef> Sadly a converter to generics doesnt work so you'd need like `converter toOpt(i: int): Option[int] = some(i)` |
06:21:02 | FromDiscord | <Dudugz> Yea, but still you depend on Option and need to wrap the values, the idea was to do this natively without needing to wrap the values ​​in none or some |
06:23:27 | FromDiscord | <Dudugz> sent a code paste, see https://play.nim-lang.org/#ix=4vz3 |
06:23:28 | FromDiscord | <Elegantbeef> I mean if you write that converter you do not need to wrap them |
06:23:42 | FromDiscord | <Elegantbeef> The only issue is you need to write the converter for each type or use a template to emit it |
06:23:42 | FromDiscord | <Dudugz> In reply to @Elegantbeef "I mean if you": Hm, yea |
06:25:01 | FromDiscord | <Dudugz> An easier way would be to use toBase and an Option itself since refs are nilable |
06:25:28 | om3ga | what does this proc, returns value if it exist? |
06:26:00 | FromDiscord | <Elegantbeef> Which proc? |
06:26:07 | om3ga | 'a' |
06:26:36 | FromDiscord | <Dudugz> sent a code paste, see https://paste.rs/Hqo |
06:26:46 | FromDiscord | <Elegantbeef> The one wrote for girvo ages ago returns none(int) if `exp` doesnt exist otherwise returns whatever `a` is |
06:26:56 | FromDiscord | <Elegantbeef> So if it's `none` it returns `none` else it returns `some` |
06:27:46 | om3ga | yeah, and what rust devs hate? I have friend to troll |
06:27:51 | om3ga | :) |
06:27:53 | FromDiscord | <Elegantbeef> Properties |
06:27:57 | FromDiscord | <Elegantbeef> Rust doesnt have properties |
06:28:07 | om3ga | aah, ok )))) |
06:28:09 | om3ga | thanks |
06:28:09 | FromDiscord | <Elegantbeef> in Rust you'd probably name it like `get_a` or w/e |
06:28:11 | FromDiscord | <Dudugz> lol |
06:28:27 | FromDiscord | <Elegantbeef> Really in Rust you'd use patter matching |
06:28:42 | FromDiscord | <Elegantbeef> `if let Some(Some(i))...` |
06:28:54 | FromDiscord | <Dudugz> Yea, I tried Rust for 1 month, pure suffering. |
06:29:12 | FromDiscord | <Elegantbeef> I've never tried it but i've looked at it |
06:29:27 | om3ga | Elegantbeef, yeah, nice |
06:30:32 | om3ga | in my C code I coded my own helper functions for that reasons |
06:31:32 | om3ga | with use of specific value mappings, like lists |
06:33:45 | * | nanxiao joined #nim |
07:00:55 | * | frenchboy[m] quit (Quit: Bridge terminating on SIGTERM) |
07:21:55 | FromDiscord | <Rika> I like pattern matching but I think rust doesn’t do it that well |
07:22:06 | FromDiscord | <Rika> Then again I’m spoiled by the more functional languages |
07:33:59 | * | lucas_ta joined #nim |
07:34:02 | * | lucasta quit (Read error: Connection reset by peer) |
07:36:21 | * | PMunch joined #nim |
07:43:18 | FromDiscord | <sOkam!> sent a code paste, see https://play.nim-lang.org/#ix=4vzb |
07:52:59 | * | PMunch quit (Quit: Leaving) |
08:02:56 | FromDiscord | <sOkam!> found it. i was recursively calling a constructor function |
08:03:44 | * | PMunch joined #nim |
08:16:25 | * | derpydoo quit (Read error: Connection reset by peer) |
08:19:23 | * | PMunch quit (Quit: Leaving) |
08:34:16 | * | PMunch joined #nim |
08:37:58 | * | PMunch quit (Client Quit) |
08:40:38 | * | PMunch joined #nim |
08:41:26 | * | frenchboy[m] joined #nim |
08:45:24 | * | PMunch quit (Client Quit) |
08:48:06 | * | PMunch joined #nim |
08:52:18 | * | PMunch quit (Client Quit) |
08:54:13 | * | PMunch joined #nim |
09:02:28 | * | PMunch quit (Quit: Leaving) |
09:12:28 | * | PMunch joined #nim |
09:17:15 | om3ga | is there any method to get the size of seq[seq[char]]? |
09:18:37 | * | PMunch quit (Quit: Leaving) |
09:18:39 | om3ga | or I should calculate it in a loop by tacking lengths of all seq[char] ? |
09:19:27 | * | nanxiao quit (Quit: Client closed) |
09:28:51 | * | nanxiao joined #nim |
09:38:02 | * | PMunch joined #nim |
10:01:56 | FromDiscord | <voidwalker> I don't think there's any other way than `seq2D.mapIt(it.len).sum` except if the "columns" have equal length, of course |
10:05:47 | * | nanxiao quit (Quit: Client closed) |
10:06:34 | FromDiscord | <Rika> foldl |
10:06:37 | FromDiscord | <Rika> please use foldl |
10:07:39 | FromDiscord | <Rika> seq2D.foldl(a + b.len) |
10:07:53 | FromDiscord | <Rika> wait |
10:07:57 | FromDiscord | <Rika> (edit) "b.len)" => "b.len, 0)" |
10:08:02 | FromDiscord | <voidwalker> indeed |
10:13:22 | om3ga | Thanks, I will try now |
10:18:07 | * | Notxor joined #nim |
10:20:11 | NimEventer | New question by Ovqou: What c compiler does nim use to make exe file?, see https://stackoverflow.com/questions/76217249/what-c-compiler-does-nim-use-to-make-exe-file |
10:23:02 | om3ga | Rika, voidwalker, works great, thanks a lot! |
10:34:44 | * | lucas__ta joined #nim |
10:39:47 | * | lucas_ta quit (Ping timeout: 264 seconds) |
10:51:14 | NimEventer | New thread by alexeypetrushin: Fswatch, non blocking usage?, see https://forum.nim-lang.org/t/10189 |
11:23:43 | * | lucas__ta quit (Read error: Connection reset by peer) |
12:10:23 | FromDiscord | <Nerve> In reply to @Rika "Then again I’m spoiled": Same, spoiled by Lisp, so a lot of what Rust is trying seems...hobbled by the memory semantics. |
12:10:51 | FromDiscord | <Rika> I really should try some Lisp some time |
12:11:54 | FromDiscord | <Nerve> Janet's probably a good way to start, it's a very capable scripting language halfway between Python and Lua. Scripts can be bundled in an exe with the interpreter for independent binaries. C-interop. Can probably play nice with Nim. |
12:21:35 | * | Mister_Magister quit (Ping timeout: 260 seconds) |
12:29:08 | * | Notxor quit (Remote host closed the connection) |
12:36:10 | * | jmdaemon quit (Ping timeout: 260 seconds) |
12:41:42 | * | Mister_Magister joined #nim |
12:48:19 | FromDiscord | <willyboar> Janet's creator has create another one lisp that compiles to lua. Fennel |
12:48:59 | FromDiscord | <willyboar> I heard best for both. |
12:49:01 | FromDiscord | <Rika> So is Janet abandoned or something |
12:49:24 | FromDiscord | <willyboar> No it was very active last time I checked |
12:51:18 | FromDiscord | <Nerve> Quite active |
12:51:59 | FromDiscord | <willyboar> A static typed Janet would be cool |
12:53:10 | FromDiscord | <Nerve> Eh, that seems to go against the Lisp philosophical approach. If you really really want a statically typed Lisp, there's Carp, but I don't know how active that project is |
12:54:23 | FromDiscord | <willyboar> Yes but Janet is not compatible with lisp I think, it has just lispy syntax. |
12:54:48 | FromDiscord | <Nerve> Not sure what that means, most Lisps can't really talk to each other |
12:54:59 | FromDiscord | <Nerve> Not at a binary level anyways |
12:56:22 | FromDiscord | <willyboar> There was a nice repo that sorts lis languages to categories . Let me search for it. |
12:56:32 | FromDiscord | <Nerve> Oh, the various types |
12:56:34 | FromDiscord | <willyboar> (edit) "lis" => "lisp" |
12:56:42 | FromDiscord | <Nerve> Janet's a Clojure-type by that list's definition |
12:56:50 | FromDiscord | <Nerve> Mainly by syntactic similarities |
12:57:35 | FromDiscord | <Nerve> Semantically it's sort of on its own because it backs its data with arrays and dynamic tables written in C |
12:57:57 | FromDiscord | <willyboar> https://github.com/dundalek/awesome-lisp-languages |
12:59:16 | FromDiscord | <Nerve> I'm still not sure what you mean by "not compatible with Lisp" |
12:59:31 | FromDiscord | <Nerve> If you mean it's not a Common Lisp dialect, then yes |
12:59:36 | FromDiscord | <willyboar> Type L or type S |
12:59:45 | * | rockcavera joined #nim |
12:59:48 | FromDiscord | <Nerve> Yup |
13:00:13 | FromDiscord | <willyboar> In the repo Janet is in the same type with carp |
13:07:10 | FromDiscord | <Nerve> That's because they take syntactic inspiration from Clojure |
13:07:29 | FromDiscord | <Nerve> Carp is semantically VERY different however, given it's a borrow-checked statically typed compiled language |
13:08:20 | FromDiscord | <Nerve> And Clojure is semantically different from either given it runs on the JVM and uses immutable persistent data structures |
13:08:29 | FromDiscord | <Nerve> So the similarity is only aesthetic |
13:15:57 | * | krux02 joined #nim |
13:27:05 | FromDiscord | <michaelb.eth> for a typed lisp in the scheme family, Typed Racket is worth a look |
13:28:04 | FromDiscord | <michaelb.eth> https://github.com/racket/typed-racket |
13:42:05 | * | PMunch quit (Quit: Leaving) |
13:56:17 | FromDiscord | <pysan> sent a code paste, see https://play.nim-lang.org/#ix=4vAD |
14:05:17 | * | azimut joined #nim |
14:13:22 | FromDiscord | <Rika> how do you use this macro? |
14:13:33 | FromDiscord | <Rika> runnableexamples blocks are meant to go inside function definitions |
14:16:59 | * | Notxor joined #nim |
14:23:29 | FromDiscord | <pysan> I write simple tests for that single file in `when isMainModule:` but I want to display that content inside the doc's top section as well (using top level `runnableExamples`). Something like this example, above `Imports` https://nim-lang.org/docs/jsonutils.html |
14:34:51 | FromDiscord | <sa-code> Hey. Underscore insensitivity drives me mad. There's no reason `i_stop` and `is_top` should be the same thing |
14:36:21 | FromDiscord | <jtv> It's not fully insensitive... it rejects double underscores 🤯 |
14:36:34 | FromDiscord | <jtv> And trailing ones too |
14:36:45 | FromDiscord | <sa-code> That makes it worse |
14:37:19 | FromDiscord | <sa-code> Makes me want to give up not gonna lie |
14:37:20 | FromDiscord | <Nerve> Is that a real example of variable naming that is bothering you in your project? |
14:39:20 | FromDiscord | <jtv> Double underscore is a practical issue, it's definitely long been used to set off internal stuff, same with trailing underscore |
14:39:37 | FromDiscord | <jtv> You can't even put it in backticks and have it work |
14:43:09 | FromDiscord | <deech> In reply to @sa-code "Hey. Underscore insensitivity drives": Yep, I've run into variations of your issue several times. IMO it's a misfeature, your best bet is to stick with camel case. 🤷 |
14:44:57 | FromDiscord | <jtv> I agree, and that sucks because that's a religious battle, and I shouldn't be forced into anything for minor religious battles :). I think CamelCase becomes hard to read when you've got abbreviations, etc. |
14:45:37 | FromDiscord | <pysan> Please someone make a very opinionated formatter that auto renames all vars to camel case (or anything _consistant_) except when there's `# fmt: ignore` comment or smtg like that |
14:46:40 | FromDiscord | <jtv> Go for it. There isn't a good, flexible format tool at all, so it's a definite need. But, doing a good job is a really hard project |
14:48:23 | FromDiscord | <Evissim> Can anyone point me in the right direction for how to bind/interact with templated C++ classes? |
14:49:20 | * | beholders_eye joined #nim |
14:49:43 | FromDiscord | <deech> In reply to @Evissim "Can anyone point me": I have an example of binding to `std::vector` and `std::string`. https://github.com/deech/NimNuggets/blob/master/backup/cppvector.nim |
14:50:23 | FromDiscord | <deech> And type level factorial. https://github.com/deech/NimNuggets/blob/master/backup/factorial.nim |
14:51:01 | FromDiscord | <Evissim> Thank you! I'll take a peek 😄 |
15:01:56 | FromDiscord | <mratsim> In reply to @Evissim "Can anyone point me": several here as well: https://github.com/SciNim/flambeau/blob/master/flambeau/raw/bindings/c10.nim |
15:12:05 | * | Notxor quit (Quit: Leaving) |
15:17:43 | NimEventer | New Nimble package! lorem - Nim library that generates "Lorem ipsum" text., see https://github.com/neroist/lorem |
15:33:52 | FromDiscord | <gloopsies> sent a code paste, see https://play.nim-lang.org/#ix=4vB1 |
15:37:01 | * | beholders_eye quit (Ping timeout: 240 seconds) |
15:37:22 | FromDiscord | <gloopsies> Oh, I'm just stupid... Had the same type implemented in 2 places and they tehnicaly aren't the same thing |
15:37:30 | NimEventer | New thread by Antichristos: Macros - object.method, see https://forum.nim-lang.org/t/10190 |
16:07:38 | * | jmdaemon joined #nim |
16:20:07 | FromDiscord | <that_dude> In reply to @Evissim "Can anyone point me": https://scripter.co/binding-nim-to-c-plus-plus-std-list/ How close is this to what you're looking for? |
16:32:29 | FromDiscord | <Evissim> sent a code paste, see https://paste.rs/5Ou |
16:47:06 | * | arkurious joined #nim |
16:47:09 | * | arkurious quit (Remote host closed the connection) |
16:52:34 | * | beholders_eye joined #nim |
17:33:11 | * | beholders_eye quit (Ping timeout: 246 seconds) |
17:41:40 | * | demetera joined #nim |
17:58:51 | FromDiscord | <nqeron> sent a code paste, see https://play.nim-lang.org/#ix=4vBu |
18:03:15 | * | demetera quit (Remote host closed the connection) |
18:04:03 | * | demetera joined #nim |
18:06:31 | * | beholders_eye joined #nim |
18:13:37 | * | demetera quit (Quit: Leaving) |
18:15:58 | * | lucasta joined #nim |
18:26:43 | FromDiscord | <decoded> How can I access the clipboard? I want to write a verification link to my user's clipboard and then also check if they copied the code from said link by checking their clipboard |
19:02:31 | FromDiscord | <qb> `nimble search clipboard` |
19:40:53 | * | Notxor joined #nim |
19:50:46 | * | rockcavera quit (Read error: Connection reset by peer) |
19:51:20 | * | rockcavera joined #nim |
19:51:21 | * | rockcavera quit (Changing host) |
19:51:21 | * | rockcavera joined #nim |
20:28:37 | * | progranner joined #nim |
20:34:46 | * | advesperacit quit () |
21:09:03 | * | progranner quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
21:15:30 | * | xet7 quit (Read error: Connection reset by peer) |
21:16:20 | * | progranner joined #nim |
21:29:36 | * | progranner quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
21:31:20 | * | progranner joined #nim |
21:32:17 | * | xet7 joined #nim |
21:37:28 | * | demetera joined #nim |
21:48:16 | * | progranner quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
21:51:08 | * | progranner joined #nim |
22:04:02 | * | progranner quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
22:16:33 | NimEventer | New post on r/nim by deadkonsumer: Simple Gamepad Support, see https://reddit.com/r/nim/comments/13e54oc/simple_gamepad_support/ |
22:25:31 | * | demetera left #nim (Leaving) |
22:25:48 | * | demetera joined #nim |
22:25:56 | * | demetera quit (Quit: Leaving) |
22:26:50 | * | beholders_eye quit (Ping timeout: 246 seconds) |
23:00:29 | * | Notxor quit (Remote host closed the connection) |
23:02:12 | * | Mister_Magister quit (Ping timeout: 265 seconds) |
23:52:40 | FromDiscord | <pysan> In reply to @pysan "Please someone make a": Found this. Haven’t tested yet but looks promising?↵↵https://github.com/FedericoCeratto/nimfmt |