<< 17-04-2024 >>

00:00:20*def- quit (Quit: -)
00:01:49*def- joined #nim
00:08:04FromDiscord<saint.___.> In reply to @morganalyssa "today i've made some": Awesome!
00:09:41*def- quit (Quit: -)
00:11:23*def- joined #nim
00:18:06FromDiscord<morgan> a tldr on what i've done, rather than having a bunch of procs to write where all the parameter info handling is spread out over them, you define a seq of parameter objects, and then the procs handle it for you, for whatever parameters you have defined
00:18:14FromDiscord<morgan> it should be much less error prone
00:20:01FromDiscord<morgan> my plans going forward is to make a core plugin bit of code, and then on top of it, build frameworks for standard plugin topologies (audio in audio out, midi in audio out, and midi in midi out, with optional second audio in for the first two. maybe audio in midi out, but im not sure if much of anything supports that anyways)
00:20:57*rockcavera joined #nim
00:21:05FromDiscord<morgan> then, it will require some data to be supplied, like parameters, and callbacks to be supplied, which in the simplest case of audio in audio out, would mainly just be the process callback
00:22:48FromDiscord<morgan> but for midi in audio out, i'd like to have a basic synth framework which handles per voice per block, start of voice, end of voice, end of all voices, once per block, and maybe others
00:23:45FromDiscord<morgan> although im not set on whether it should determine the base way it functions that you fill in the details on, or having something a bit more freeform
00:24:46FromDiscord<morgan> i'd like to have a base synth option, but midi in audio in audio out could also be an effect which uses midi to change the settings
00:24:52FromDiscord<morgan> like colourcopy
00:25:24FromDiscord<morgan> while serumfx or surge are the same topology but multi voice
00:25:35FromDiscord<morgan> but that's a ways off
00:25:55FromDiscord<morgan> im writing this primarily for myself, and right now i just need one audio in and one audio out
00:26:02FromDiscord<morgan> and ui
00:26:20FromDiscord<morgan> which i wish i could avoid lol
00:27:11FromDiscord<morgan> i'd like to hook up sokol for graphics, but i don't see an easy way to pass in a window handle, but the sokol "docs" are not great for discoverability
00:27:46FromDiscord<morgan> i started on this first because i wanna put that off while still being productive, and because the code for that will probably be messy and i don't wanna write that more than once
00:29:55FromDiscord<morgan> the long term goal of this is to have something that makes it easy to make an audio plugin, ideally also handling the compilation of the official c++ clap wrappers for au and vst3, so ppl can focus on the fun stuff like dsp and designing uis, rather than the painful stuff, like graphics programming and debugging misinterpretation of types
00:42:45FromDiscord<morgan> (and if anyone wants to contribute and has done windowing/graphics apis stuff, i would love some help on that front)
00:45:20FromDiscord<morgan> oh and more rambling, i might split up the raw api wrapper code from the nicer api abstraction, in part because it could be made to directly compile to other plugin apis, rather than using the host in a plugin wrappers
00:45:54*def- quit (Quit: -)
00:47:46*def- joined #nim
00:50:42*def- quit (Client Quit)
00:51:12*def- joined #nim
00:52:08*rockcavera quit (Ping timeout: 268 seconds)
01:00:31*rockcavera joined #nim
01:31:50FromDiscord<sOkam! 🫐> In reply to @morganalyssa "(and if anyone wants": define this. what tasks do you need to accomplish exactly?
02:06:22*def- quit (Quit: -)
02:07:11FromDiscord<morgan> so with some clap api stuff, i get a window handle. this depends on platform of course. then, possibly with some platform specific handling, i pass that window handle in some call to sokol. normally one would use sokol-app, but that handles that part of the setup and creates the window and handles events, which would either be partly or fully replaced by clap api stuff. then, when sokol renders, it renders to the window provided by the plu
02:08:17*def- joined #nim
02:10:32FromDiscord<Elegantbeef> It should not be too hard to convert a window handle into something that sokol or friends can use to render to
02:10:58*rockcavera quit (Remote host closed the connection)
02:11:25FromDiscord<Elegantbeef> Though it's a bit odd that it gives a handle
02:11:41FromDiscord<Elegantbeef> One would imagine you'd just supply it a framebuffer and it'd blit that into the window itself
02:15:14FromDiscord<Elegantbeef> Sdl2 atleast has a `createWindowFrom` which takes in a native pointer that clap gives you
02:19:43*def- quit (Quit: -)
02:23:06*def- joined #nim
02:24:54FromDiscord<Elegantbeef> Looking at sokol there is no clear way to go from a handle to the `sapp_desc`
02:28:46*def- quit (Quit: -)
02:29:16*def- joined #nim
02:49:20*rockcavera joined #nim
03:08:54*def- quit (Quit: -)
03:25:57*def- joined #nim
03:51:50*MacDefender joined #nim
04:30:24*def- quit (Quit: -)
04:40:44*ntat joined #nim
04:47:48*SchweinDeBurg quit (Quit: WeeChat 4.3.0-dev)
04:47:52*def- joined #nim
04:51:28*SchweinDeBurg joined #nim
04:52:51FromDiscord<threefour> Does anyone know what the status is on handling circular dependencies? Just ran into a situation where it would have been handy, looked it up, and turns out it's one of the biggest pain points last I read.
04:53:09FromDiscord<leorize> it might never arrive
05:12:33FromDiscord<morgan> In reply to @Elegantbeef "Looking at sokol there": yeah idk, i am struggling to understand the relevant parts of it, so i might make an issue to ask the maintainers of it
05:13:39FromDiscord<Elegantbeef> I do not see anyway of doing it with sokol from a cursory look. Sokol really seems to just expect you do not have a window
05:16:05FromDiscord<morgan> yeah
05:16:18FromDiscord<morgan> sokol-app makes it easy, if it handles everything
05:16:50FromDiscord<morgan> this is what i'm looking at for ui stuff with clap, i haven't started it but i've followed part 1 and 2 alreadyhttps://nakst.gitlab.io/tutorial/clap-part-3.html
05:16:54FromDiscord<morgan> (edit) "alreadyhttps://nakst.gitlab.io/tutorial/clap-part-3.html" => "already https://nakst.gitlab.io/tutorial/clap-part-3.html"
05:17:26FromDiscord<morgan> looking at it again tho, it looks like you do set up a window bits pointer to write to
05:18:09FromDiscord<morgan> which uh, i really don't wanna do that since i am using opengl (or whatever else that lets me run a shader on gpu)
05:18:18FromDiscord<morgan> so i might be finding a different solution
05:18:42FromDiscord<Elegantbeef> Well sdl2 does have a way to get the context if that helps you any
05:18:56FromDiscord<Elegantbeef> Can use that with an imgui library
05:19:18FromDiscord<morgan> i want to render with a shader on gpu
05:19:25FromDiscord<Elegantbeef> https://github.com/johnnovak/koi or dearimgui could work fine with sdl2
05:19:28FromDiscord<Elegantbeef> Ok?
05:19:39FromDiscord<morgan> i guess im not really familiar with imgui
05:19:54FromDiscord<Elegantbeef> Sdl2 has a way to get a window context and you can then go from there to render using whatever GUI you want
05:20:04FromDiscord<Elegantbeef> imgui is just immediate mode gui
05:20:10FromDiscord<Elegantbeef> it does not mean anything aside from that
05:20:16FromDiscord<morgan> ah ok
05:20:19FromDiscord<Elegantbeef> You can render it with a pencil, with a cpu, with a gpu
05:20:35FromDiscord<morgan> lemme look up sdl2 to see how that looks for what i wanna do
05:21:31FromDiscord<Elegantbeef> You get the window handler you create a window, target that window with opengl and there you go you're in an accelerated gui environment
05:21:56FromDiscord<morgan> 👍
05:23:53FromDiscord<morgan> it would be really nice if i could figure out doing that with sokol, i liked working with it much more than the raw opengl calls i was doing before in juce
05:24:24FromDiscord<Elegantbeef> Hey koi is self contained 😄
05:24:29FromDiscord<Elegantbeef> You will not need to do many rawgui calls 😛
05:25:04FromDiscord<morgan> i should post an example of what i am trying to do
05:25:32FromDiscord<morgan> https://media.discordapp.net/attachments/371759389889003532/1230026333967618068/image.png?ex=6631d24a&is=661f5d4a&hm=227d4e8b3a99723cbbefe644004ebf55b887b91785a578d6ca766b02a8c397ee&
05:25:56FromDiscord<Elegantbeef> With or without bloom?
05:26:05FromDiscord<morgan> with, it's baked into textures
05:26:39FromDiscord<morgan> each unique segment has baked glow, which are added together in one pass, then passed thru a gradient map and some math in another pass
05:26:59FromDiscord<morgan> so it's pretty cheap for how good it looks
05:27:37FromDiscord<morgan> and it actually looked perfectly fine updating at only 10 fps
05:30:29FromDiscord<morgan> and because of the 16 bit depth and the particular glow falloff function i chose, simply scaling the image before the gradient map looks fairly physically accurate, as long as the texture is large enough or the edges of it aren't isolated
05:35:23FromDiscord<morgan> im pretty sure that screenshot was with sokol
05:36:28FromDiscord<morgan> tho i had something similar with juce and opengl but the raw opengl calls had gotten way too messy and it either didn't work or had to resend textures constantly which was heavy on the cpu
05:38:49FromDiscord<morgan> hmm i could go with approach 2 and just have sokol-app create a floating window. but it would not feel right https://media.discordapp.net/attachments/371759389889003532/1230029679226912818/image.png?ex=6631d568&is=661f6068&hm=44cf5c454b05169e577802f8b2760354e067494fac6154e01e5a0b85c6066d4f&
05:50:55FromDiscord<morgan> another idea is that i use sokol, but reparent the window myself, depending on the OS
06:26:18*PMunch joined #nim
06:32:46*disso-peach quit (Quit: Leaving)
07:04:52*ntat quit (Quit: Leaving)
07:18:11NimEventerNew Nimble package! rex - Reactive programming, in nim, see https://github.com/minamorl/rex
07:19:48FromDiscord<Robyn [She/Her]> In reply to @NimEventer "New Nimble package! rex": @Phil 'is this RxNim' on that meme template?
07:20:05FromDiscord<Robyn [She/Her]> (edit) "'is" => "is" | "RxNim' on that meme template?" => "RxNim?"
08:27:47*rockcavera quit (Ping timeout: 256 seconds)
08:41:33FromDiscord<ichigo7799> RxNim needs to be called cowbell
08:41:54FromDiscord<ichigo7799> 'cause I got a fever, and the only prescription etc
08:50:39FromDiscord<ieltan> sent a code paste, see https://play.nim-lang.org/#pasty=jzhRlHDLmtBC
08:51:32FromDiscord<ieltan> Or maybe the answer is that is belongs to both `Indexable` and `Iterable` ... ?
08:53:59FromDiscord<Elegantbeef> It doesn't belong in iterable
08:53:59FromDiscord<Elegantbeef> Also concept refinement does not work so.... yea
08:53:59FromDiscord<Elegantbeef> It belongs to indexable and that's it
08:54:02FromDiscord<Elegantbeef> `c.len is int` does not belong to any of those
08:54:47FromDiscord<ieltan> In reply to @Elegantbeef "Also concept refinement does": Ah alright.. I can just work around that
08:55:05FromDiscord<ieltan> In reply to @Elegantbeef "It belongs to indexable": Nice, thanks 🙂
08:55:30FromDiscord<Elegantbeef> I corrected myself cause that was clearly wrong
08:55:39FromDiscord<Elegantbeef> Using your other concepts it belongs to nothing
08:56:23FromDiscord<ieltan> In reply to @Elegantbeef "Using your other concepts": So, i should actually just leave it out ?
08:56:25FromDiscord<Elegantbeef> Your `Container` is also completely wrong as it does not encapsulate `Table[string, float]`
08:56:35FromDiscord<Elegantbeef> Since you for `Indexable` to be `c[int]`
08:56:39FromDiscord<Elegantbeef> force\
08:57:11FromDiscord<ieltan> In reply to @Elegantbeef "Your `Container` is also": I planned on making a `TableLike` concept for that
08:57:26FromDiscord<Elegantbeef> Well then `Container` is not aptly named
08:57:54FromDiscord<Elegantbeef> With your present logic`array[SomeEnum, T] isnot Indexable[T]` 😄
08:58:34FromDiscord<ieltan> In reply to @Elegantbeef "Well then `Container` is": Would `ArrayLike` be better ?
08:58:47*def- quit (Quit: -)
08:59:54FromDiscord<Elegantbeef> Sure assuming you change that from `int` to `SomeOrdinal`
09:06:54FromDiscord<Phil> In reply to @chronos.vitaqua "<@180601887916163073> is this RxNim?": If it is I'm buying this guy a coffee
09:08:19FromDiscord<Phil> Or girl
09:09:19FromDiscord<ieltan> sent a code paste, see https://play.nim-lang.org/#pasty=iidFHabrqkbh
09:09:52FromDiscord<ieltan> ArrayLike compiles but without actually using it i'm not sure if it accounts for `var vc`
09:14:05*rockcavera joined #nim
09:14:05*rockcavera quit (Changing host)
09:14:05*rockcavera joined #nim
09:16:41*def- joined #nim
09:19:55FromDiscord<Elegantbeef> I also think you can just do `typeof(items(c)) is lent T`
09:26:21FromDiscord<ieltan> sent a code paste, see https://play.nim-lang.org/#pasty=xIbcvRYrlsAq
09:26:46FromDiscord<ieltan> In reply to @Elegantbeef "I also think you": Nice, I'll try this out
09:27:11FromDiscord<Elegantbeef> Why does `K` need to be hashable for a Table?
09:27:40FromDiscord<Elegantbeef> I would not write these concepts like you, so perhaps that's my issue
09:29:20FromDiscord<ieltan> In reply to @Elegantbeef "Why does `K` need": Because if your type doesn't implement `==` and `hash` and you use the stdlib's hashtable then the compiler will scream at you
09:30:35FromDiscord<ieltan> so hopefully with the`{.explain.}` pragma the compiler does a better job at telling you "hey you need to implement `==` and `hash`
09:30:41FromDiscord<ieltan> (edit) "`hash`" => "`hash`""
09:30:57FromDiscord<Elegantbeef> Right but a `seq[T]` is a `TableLike` for a `Table[int, T]`
09:31:03FromDiscord<Elegantbeef> 😄
09:32:40FromDiscord<ieltan> that's fair enough, probably a newbie question but does `Table[int, T]` behave like `seq[T]` internally ?
09:33:22FromDiscord<ieltan> if it doesnt i think it's okay to just leave it to `TableLike`, if you're going to use `Table[int, T]` why not use `seq[T]` then ?
09:35:57FromDiscord<Elegantbeef> It of course does not behave the same
09:36:06FromDiscord<Elegantbeef> The point of concepts is to allow code reuse
09:36:43FromDiscord<Elegantbeef> If `seq[T]` fits in `TableLike[int, T]` it should just work, no?
09:36:48FromDiscord<Elegantbeef> Anyway I'm off so that's food for thought
10:18:15FromDiscord<_nenc> `seq[T]` doesn't fit in `Tablelike[int, T]`
10:18:28FromDiscord<_nenc> (edit) "`Tablelike[int," => "`TableLike[int,"
10:19:00FromDiscord<_nenc> if you have a `TableLike[int, T]`, you may just do `x[114514]` or any int, but in `seq[T]` you can't go beyond the length
10:32:45FromDiscord<odexine> i think there needs to be more rigorous (prose) definitions on how you determine what would fit what concept
10:33:13FromDiscord<odexine> like when something is tablelike, you could say that "values can be set for any arbitrary key with one procedure []=" or so
10:33:31FromDiscord<odexine> which then means seq would not fit, then you can model your concepts from there
10:33:59FromDiscord<odexine> In reply to @odexine "like when something is": the thing is though, concepts cannot enforce this specific point so
11:30:40*ntat joined #nim
11:36:44FromDiscord<albassort> sent a code paste, see https://play.nim-lang.org/#pasty=pqVfxhTWpPBs
11:36:50FromDiscord<albassort> (edit) "https://play.nim-lang.org/#pasty=OkFLqITfKbat" => "https://play.nim-lang.org/#pasty=GIMEIMghakvQ"
11:36:55FromDiscord<albassort> from asynchttpclient
11:37:10FromDiscord<albassort> (edit) "https://play.nim-lang.org/#pasty=IXBGICDDhHeC" => "https://play.nim-lang.org/#pasty=xjseabOXbtYs"
11:37:28FromDiscord<albassort> honestly httpclient is probably my least favorite module in nim
11:37:39FromDiscord<albassort> let me see if anyone made a better alternative then puppy
11:38:49FromDiscord<intellij_gamer> By any chance were you making multiple requests with the same client? Like simultaneously
11:38:59FromDiscord<albassort> yes
11:39:08FromDiscord<albassort> I am using the async client for a reason
11:39:27FromDiscord<albassort> unless i misunderstood
11:39:34FromDiscord<albassort> (edit) "misunderstood" => "misunderstood..."
11:40:13FromDiscord<intellij_gamer> Ye you can't do that↵Since all the requests reuse the same socket.↵So it's trying to parse a response but it's halfway read cause of another request
11:40:17FromDiscord<nnsee> async client means it will yield execution so that another client can execute requests at the same time
11:40:35FromDiscord<nnsee> but you will need multiple clients for multiple requests
11:40:53FromDiscord<albassort> but if i make many clients then the sockets get soggy and die
11:41:05FromDiscord<odexine> ? what?
11:41:06FromDiscord<albassort> or at least did historicalyl
11:41:07FromDiscord<albassort> (edit) "historicalyl" => "historically"
11:41:09FromDiscord<albassort> like 2 years ago
11:41:12FromDiscord<nnsee> soggy?
11:41:14FromDiscord<intellij_gamer> Then make sure to close them when done
11:41:16FromDiscord<albassort> i forget the word
11:41:17FromDiscord<nnsee> i.. i'm sorry?
11:41:24FromDiscord<albassort> my brain has holes in it
11:41:26FromDiscord<albassort> uhhh
11:41:30FromDiscord<odexine> stale?
11:41:32FromDiscord<albassort> yes
11:41:35FromDiscord<albassort> they would deadlock
11:41:40FromDiscord<albassort> i posted about this like 2-3 years ago
11:41:42FromDiscord<odexine> deadlock?
11:41:49FromDiscord<odexine> i dont think thats the correct term either
11:41:56FromDiscord<albassort> hmmmm
11:41:58FromDiscord<albassort> probably
11:42:15FromDiscord<albassort> https://en.wikipedia.org/wiki/Deadlock
11:42:17FromDiscord<albassort> could be
11:42:54FromDiscord<nnsee> i don't think deadlocking is a problem here
11:43:01FromDiscord<nnsee> the clients do no synchronization themselves
11:43:06FromDiscord<albassort> Basically, like 3 years ago if I were to open many httpclients the processes would get stale and it would stay forever in a while true: waiting loop
11:43:20FromDiscord<albassort> but i never investigated it further
11:43:27FromDiscord<albassort> maybe less than 3, 1.5 or so
11:43:43FromDiscord<odexine> because you dont close them
11:43:43FromDiscord<albassort> it happened faster if i did threading+async
11:43:48FromDiscord<albassort> In reply to @odexine "because you dont close": I WOULD
11:43:49FromDiscord<nnsee> it sounds like some client blocked for whatever reason, probably trying to read from a stale socket
11:52:02FromDiscord<albassort> sent a long message, see https://pasty.ee/mJaBtrIhuTal
11:52:13FromDiscord<albassort> (edit) "long message," => "code paste," | "https://pasty.ee/LYNFfcfQBfLx" => "https://play.nim-lang.org/#pasty=HOgfOlFCJJMa"
11:52:28FromDiscord<albassort> (edit) "https://play.nim-lang.org/#pasty=gOPoENSodDle" => "https://play.nim-lang.org/#pasty=zBQNlohVzNli"
11:55:28FromDiscord<albassort> :)
11:55:41FromDiscord<albassort> i feel like asynclient used to not be so picky
11:55:48FromDiscord<albassort> but my memory has become uhhhh
11:55:49FromDiscord<albassort> bad
11:56:34FromDiscord<nnsee> i would not await everything and _then_ close all sockets
11:56:46FromDiscord<nnsee> i would close sockets immediately when you're done with them
11:57:25FromDiscord<albassort> perhaps this was my issue in the past
11:57:26FromDiscord<albassort> thank you
11:57:38FromDiscord<nnsee> idunno
11:57:40FromDiscord<nnsee> wild guess
11:57:45FromDiscord<nnsee> it may not be your problem at all
11:59:32FromDiscord<odexine> sent a code paste, see https://play.nim-lang.org/#pasty=TSFRtsiJfuAa
12:00:05FromDiscord<odexine> i dont remember the behaviour of `all`
12:00:30FromDiscord<odexine> idk, i havent programmed in nim in a real long while
12:04:43FromDiscord<albassort> its ok rika
12:04:49FromDiscord<albassort> your personality makes up for any compiler errors
12:06:38FromDiscord<odexine> you sure im a person
12:55:44FromDiscord<saint.___.> In reply to @odexine "you sure im a": 😲
12:55:54*def- quit (Quit: -)
13:16:24*def- joined #nim
13:23:22*def- quit (Quit: -)
13:23:34*def- joined #nim
13:47:30*def- quit (Quit: -)
13:49:05*def- joined #nim
13:50:04*ntat_ joined #nim
13:50:21*ntat quit (Ping timeout: 272 seconds)
13:51:01*ntat_ quit (Remote host closed the connection)
13:51:21*ntat_ joined #nim
13:52:36*def- quit (Client Quit)
13:53:15*def- joined #nim
14:01:11FromDiscord<sOkam! 🫐> In reply to @odexine "you sure im a": Waaaait!
14:01:31FromDiscord<sOkam! 🫐> (edit) "Waaaait!" => "Waaaait!↵Are you ChatRikaPT? The one and only? 😮"
14:04:15FromDiscord<odexine> lol
14:04:31FromDiscord<odexine> made before GPTs were popularised
14:22:03FromDiscord<nnsee> just a very well tuned markov chain
14:26:28*xet7 quit (Remote host closed the connection)
14:30:35FromDiscord<threefour> Is there a way to use a library nimble package located in a local directory in a `requires` statement in Nimble? Or something else to achieve that goal?
14:31:01FromDiscord<threefour> For library development testing
14:46:32*krux02 joined #nim
14:58:22FromDiscord<demotomohiro> https://github.com/nim-lang/atlas↵How about to use Atlas?
15:00:06Amun-Rasymlink package inside src
15:00:32Amun-Raln -s /path/to/deplib/src src/deplib
15:00:54Amun-Raor even src/deplib.nim
15:01:20Amun-Rahmm, no
15:14:50FromDiscord<threefour> Atlas might be what I need. How did people develop libraries before? Unit tests?
15:15:48FromDiscord<threefour> (edit) "develop" => "test their" | "test theirlibraries ... before?" added "while developing"
15:15:58FromDiscord<mratsim> In reply to @threefour "Atlas might be what": `nimble test`
15:34:54*MacDefender quit (Read error: Connection reset by peer)
15:47:56*def- quit (Quit: -)
15:53:00*def- joined #nim
15:53:48*xet7 joined #nim
15:57:57*def- quit (Quit: -)
15:58:17*def- joined #nim
15:59:44*krux02_ joined #nim
16:01:17*def- quit (Client Quit)
16:02:17*def- joined #nim
16:02:57*krux02 quit (Ping timeout: 268 seconds)
16:05:15*def- quit (Client Quit)
16:07:44*def- joined #nim
16:18:43*coldfeet joined #nim
16:47:10*coldfeet quit (Remote host closed the connection)
16:54:00*Mister_Magister quit (Ping timeout: 260 seconds)
17:42:49*def- quit (Quit: -)
17:43:36*def- joined #nim
17:54:27*Mister_Magister joined #nim
18:04:56*PMunch quit (Quit: Leaving)
18:32:26*rockcavera quit (Read error: Connection reset by peer)
18:33:15*rockcavera joined #nim
18:34:55*rockcavera quit (Read error: Connection reset by peer)
18:36:07*rockcavera joined #nim
18:36:07*rockcavera quit (Changing host)
18:36:07*rockcavera joined #nim
19:24:03*def- quit (Quit: -)
19:26:41*def- joined #nim
19:40:39*def- quit (Quit: -)
19:42:32*def- joined #nim
19:48:51*ntat_ quit (Quit: Leaving)
20:42:44FromDiscord<cephonaltera> anyone know a package named "beyond"? nimble cant find it and the godot bindings are trying to import it
20:44:16FromDiscord<the_real_hypno> Did any of the macro gods ever considered creating a rebuild of the Winapi typical definitions with "IN", "OUT", "NTAPI" etc?
20:45:23FromDiscord<cephonaltera> oh its called "nim-beyond", nevermind, weirdly ungooglable name
20:48:28FromDiscord<Phil> I have in fact not
20:48:38FromDiscord<Phil> Not that I'm a macro god or anything
20:48:48FromDiscord<Phil> But I can at least write them on some level
20:52:02FromDiscord<the_real_hypno> Dont worry, I cant at all, thats why im asking. The implementation should be simple and it could be included into c2nim
20:52:13FromDiscord<the_real_hypno> Which currently dies because of it
20:53:26FromDiscord<Phil> Your problem is more finding somebody with macro skills and leftover brainpower tbh 😛
20:54:14FromDiscord<the_real_hypno> Well, im actually not happy asking at all but macros are definitely not on my list atm 😛
20:55:56FromDiscord<the_real_hypno> I recently saw a Cpp macro that rewrote structs. Pretty cool, it was really simple aswell but as far as I can tell, Nim is more complex
20:56:14FromDiscord<the_real_hypno> (Which is not negative)
21:30:32FromDiscord<TӨMΛ ☠> I'm kinda shocked, but.. I made struct with field that has default to `true`, yet, when echoed, it returns false somehow?
21:31:10FromDiscord<TӨMΛ ☠> I did change it to `false` in very unprobable case, but even after removing the only one place where I changed it - so, making it forever `true` - it still returns false
21:34:03FromDiscord<Robyn [She/Her]> In reply to @toma400 "I did change it": How are you initialising the object?
21:35:46FromDiscord<Elegantbeef> `var a: T` does not call default you need to do `var a = T()` or `var a = default T`
21:36:48FromDiscord<TӨMΛ ☠> sent a code paste, see https://play.nim-lang.org/#pasty=mCvkNMUbSLkg
21:40:06FromDiscord<Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=LYLxCxVxPRxN
21:43:08FromDiscord<TӨMΛ ☠> Wut, why does that work that way? o.o
21:43:21FromDiscord<TӨMΛ ☠> Why does it even needs that, pretty sure my previous constructors didn't need it
21:43:26FromDiscord<TӨMΛ ☠> (edit) "Why does it even needs that, pretty sure my previous constructors didn't need it ... " added "to work out-of-the-box"
21:45:00FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "`var a: T` does": Probably because of this
22:09:19*gooba quit (Ping timeout: 256 seconds)
22:18:00*gooba joined #nim
22:19:13NimEventerNew thread by bajith: Dear Araq, how do I create a programming language?, see https://forum.nim-lang.org/t/11449
22:56:51*Batzy_ is now known as Batzy
23:07:08*def- quit (Quit: -)
23:09:21*def- joined #nim
23:13:40*def- quit (Client Quit)
23:13:52*def- joined #nim
23:42:03*def- quit (Quit: -)
23:43:25*def- joined #nim