00:00:20 | * | def- quit (Quit: -) |
00:01:49 | * | def- joined #nim |
00:08:04 | FromDiscord | <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:06 | FromDiscord | <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:14 | FromDiscord | <morgan> it should be much less error prone |
00:20:01 | FromDiscord | <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:05 | FromDiscord | <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:48 | FromDiscord | <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:45 | FromDiscord | <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:46 | FromDiscord | <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:52 | FromDiscord | <morgan> like colourcopy |
00:25:24 | FromDiscord | <morgan> while serumfx or surge are the same topology but multi voice |
00:25:35 | FromDiscord | <morgan> but that's a ways off |
00:25:55 | FromDiscord | <morgan> im writing this primarily for myself, and right now i just need one audio in and one audio out |
00:26:02 | FromDiscord | <morgan> and ui |
00:26:20 | FromDiscord | <morgan> which i wish i could avoid lol |
00:27:11 | FromDiscord | <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:46 | FromDiscord | <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:55 | FromDiscord | <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:45 | FromDiscord | <morgan> (and if anyone wants to contribute and has done windowing/graphics apis stuff, i would love some help on that front) |
00:45:20 | FromDiscord | <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:50 | FromDiscord | <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:11 | FromDiscord | <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:32 | FromDiscord | <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:25 | FromDiscord | <Elegantbeef> Though it's a bit odd that it gives a handle |
02:11:41 | FromDiscord | <Elegantbeef> One would imagine you'd just supply it a framebuffer and it'd blit that into the window itself |
02:15:14 | FromDiscord | <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:54 | FromDiscord | <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:51 | FromDiscord | <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:09 | FromDiscord | <leorize> it might never arrive |
05:12:33 | FromDiscord | <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:39 | FromDiscord | <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:05 | FromDiscord | <morgan> yeah |
05:16:18 | FromDiscord | <morgan> sokol-app makes it easy, if it handles everything |
05:16:50 | FromDiscord | <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:54 | FromDiscord | <morgan> (edit) "alreadyhttps://nakst.gitlab.io/tutorial/clap-part-3.html" => "already https://nakst.gitlab.io/tutorial/clap-part-3.html" |
05:17:26 | FromDiscord | <morgan> looking at it again tho, it looks like you do set up a window bits pointer to write to |
05:18:09 | FromDiscord | <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:18 | FromDiscord | <morgan> so i might be finding a different solution |
05:18:42 | FromDiscord | <Elegantbeef> Well sdl2 does have a way to get the context if that helps you any |
05:18:56 | FromDiscord | <Elegantbeef> Can use that with an imgui library |
05:19:18 | FromDiscord | <morgan> i want to render with a shader on gpu |
05:19:25 | FromDiscord | <Elegantbeef> https://github.com/johnnovak/koi or dearimgui could work fine with sdl2 |
05:19:28 | FromDiscord | <Elegantbeef> Ok? |
05:19:39 | FromDiscord | <morgan> i guess im not really familiar with imgui |
05:19:54 | FromDiscord | <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:04 | FromDiscord | <Elegantbeef> imgui is just immediate mode gui |
05:20:10 | FromDiscord | <Elegantbeef> it does not mean anything aside from that |
05:20:16 | FromDiscord | <morgan> ah ok |
05:20:19 | FromDiscord | <Elegantbeef> You can render it with a pencil, with a cpu, with a gpu |
05:20:35 | FromDiscord | <morgan> lemme look up sdl2 to see how that looks for what i wanna do |
05:21:31 | FromDiscord | <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:56 | FromDiscord | <morgan> 👍 |
05:23:53 | FromDiscord | <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:24 | FromDiscord | <Elegantbeef> Hey koi is self contained 😄 |
05:24:29 | FromDiscord | <Elegantbeef> You will not need to do many rawgui calls 😛 |
05:25:04 | FromDiscord | <morgan> i should post an example of what i am trying to do |
05:25:32 | FromDiscord | <morgan> https://media.discordapp.net/attachments/371759389889003532/1230026333967618068/image.png?ex=6631d24a&is=661f5d4a&hm=227d4e8b3a99723cbbefe644004ebf55b887b91785a578d6ca766b02a8c397ee& |
05:25:56 | FromDiscord | <Elegantbeef> With or without bloom? |
05:26:05 | FromDiscord | <morgan> with, it's baked into textures |
05:26:39 | FromDiscord | <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:59 | FromDiscord | <morgan> so it's pretty cheap for how good it looks |
05:27:37 | FromDiscord | <morgan> and it actually looked perfectly fine updating at only 10 fps |
05:30:29 | FromDiscord | <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:23 | FromDiscord | <morgan> im pretty sure that screenshot was with sokol |
05:36:28 | FromDiscord | <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:49 | FromDiscord | <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:55 | FromDiscord | <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:11 | NimEventer | New Nimble package! rex - Reactive programming, in nim, see https://github.com/minamorl/rex |
07:19:48 | FromDiscord | <Robyn [She/Her]> In reply to @NimEventer "New Nimble package! rex": @Phil 'is this RxNim' on that meme template? |
07:20:05 | FromDiscord | <Robyn [She/Her]> (edit) "'is" => "is" | "RxNim' on that meme template?" => "RxNim?" |
08:27:47 | * | rockcavera quit (Ping timeout: 256 seconds) |
08:41:33 | FromDiscord | <ichigo7799> RxNim needs to be called cowbell |
08:41:54 | FromDiscord | <ichigo7799> 'cause I got a fever, and the only prescription etc |
08:50:39 | FromDiscord | <ieltan> sent a code paste, see https://play.nim-lang.org/#pasty=jzhRlHDLmtBC |
08:51:32 | FromDiscord | <ieltan> Or maybe the answer is that is belongs to both `Indexable` and `Iterable` ... ? |
08:53:59 | FromDiscord | <Elegantbeef> It doesn't belong in iterable |
08:53:59 | FromDiscord | <Elegantbeef> Also concept refinement does not work so.... yea |
08:53:59 | FromDiscord | <Elegantbeef> It belongs to indexable and that's it |
08:54:02 | FromDiscord | <Elegantbeef> `c.len is int` does not belong to any of those |
08:54:47 | FromDiscord | <ieltan> In reply to @Elegantbeef "Also concept refinement does": Ah alright.. I can just work around that |
08:55:05 | FromDiscord | <ieltan> In reply to @Elegantbeef "It belongs to indexable": Nice, thanks 🙂 |
08:55:30 | FromDiscord | <Elegantbeef> I corrected myself cause that was clearly wrong |
08:55:39 | FromDiscord | <Elegantbeef> Using your other concepts it belongs to nothing |
08:56:23 | FromDiscord | <ieltan> In reply to @Elegantbeef "Using your other concepts": So, i should actually just leave it out ? |
08:56:25 | FromDiscord | <Elegantbeef> Your `Container` is also completely wrong as it does not encapsulate `Table[string, float]` |
08:56:35 | FromDiscord | <Elegantbeef> Since you for `Indexable` to be `c[int]` |
08:56:39 | FromDiscord | <Elegantbeef> force\ |
08:57:11 | FromDiscord | <ieltan> In reply to @Elegantbeef "Your `Container` is also": I planned on making a `TableLike` concept for that |
08:57:26 | FromDiscord | <Elegantbeef> Well then `Container` is not aptly named |
08:57:54 | FromDiscord | <Elegantbeef> With your present logic`array[SomeEnum, T] isnot Indexable[T]` 😄 |
08:58:34 | FromDiscord | <ieltan> In reply to @Elegantbeef "Well then `Container` is": Would `ArrayLike` be better ? |
08:58:47 | * | def- quit (Quit: -) |
08:59:54 | FromDiscord | <Elegantbeef> Sure assuming you change that from `int` to `SomeOrdinal` |
09:06:54 | FromDiscord | <Phil> In reply to @chronos.vitaqua "<@180601887916163073> is this RxNim?": If it is I'm buying this guy a coffee |
09:08:19 | FromDiscord | <Phil> Or girl |
09:09:19 | FromDiscord | <ieltan> sent a code paste, see https://play.nim-lang.org/#pasty=iidFHabrqkbh |
09:09:52 | FromDiscord | <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:55 | FromDiscord | <Elegantbeef> I also think you can just do `typeof(items(c)) is lent T` |
09:26:21 | FromDiscord | <ieltan> sent a code paste, see https://play.nim-lang.org/#pasty=xIbcvRYrlsAq |
09:26:46 | FromDiscord | <ieltan> In reply to @Elegantbeef "I also think you": Nice, I'll try this out |
09:27:11 | FromDiscord | <Elegantbeef> Why does `K` need to be hashable for a Table? |
09:27:40 | FromDiscord | <Elegantbeef> I would not write these concepts like you, so perhaps that's my issue |
09:29:20 | FromDiscord | <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:35 | FromDiscord | <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:41 | FromDiscord | <ieltan> (edit) "`hash`" => "`hash`"" |
09:30:57 | FromDiscord | <Elegantbeef> Right but a `seq[T]` is a `TableLike` for a `Table[int, T]` |
09:31:03 | FromDiscord | <Elegantbeef> 😄 |
09:32:40 | FromDiscord | <ieltan> that's fair enough, probably a newbie question but does `Table[int, T]` behave like `seq[T]` internally ? |
09:33:22 | FromDiscord | <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:57 | FromDiscord | <Elegantbeef> It of course does not behave the same |
09:36:06 | FromDiscord | <Elegantbeef> The point of concepts is to allow code reuse |
09:36:43 | FromDiscord | <Elegantbeef> If `seq[T]` fits in `TableLike[int, T]` it should just work, no? |
09:36:48 | FromDiscord | <Elegantbeef> Anyway I'm off so that's food for thought |
10:18:15 | FromDiscord | <_nenc> `seq[T]` doesn't fit in `Tablelike[int, T]` |
10:18:28 | FromDiscord | <_nenc> (edit) "`Tablelike[int," => "`TableLike[int," |
10:19:00 | FromDiscord | <_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:45 | FromDiscord | <odexine> i think there needs to be more rigorous (prose) definitions on how you determine what would fit what concept |
10:33:13 | FromDiscord | <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:31 | FromDiscord | <odexine> which then means seq would not fit, then you can model your concepts from there |
10:33:59 | FromDiscord | <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:44 | FromDiscord | <albassort> sent a code paste, see https://play.nim-lang.org/#pasty=pqVfxhTWpPBs |
11:36:50 | FromDiscord | <albassort> (edit) "https://play.nim-lang.org/#pasty=OkFLqITfKbat" => "https://play.nim-lang.org/#pasty=GIMEIMghakvQ" |
11:36:55 | FromDiscord | <albassort> from asynchttpclient |
11:37:10 | FromDiscord | <albassort> (edit) "https://play.nim-lang.org/#pasty=IXBGICDDhHeC" => "https://play.nim-lang.org/#pasty=xjseabOXbtYs" |
11:37:28 | FromDiscord | <albassort> honestly httpclient is probably my least favorite module in nim |
11:37:39 | FromDiscord | <albassort> let me see if anyone made a better alternative then puppy |
11:38:49 | FromDiscord | <intellij_gamer> By any chance were you making multiple requests with the same client? Like simultaneously |
11:38:59 | FromDiscord | <albassort> yes |
11:39:08 | FromDiscord | <albassort> I am using the async client for a reason |
11:39:27 | FromDiscord | <albassort> unless i misunderstood |
11:39:34 | FromDiscord | <albassort> (edit) "misunderstood" => "misunderstood..." |
11:40:13 | FromDiscord | <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:17 | FromDiscord | <nnsee> async client means it will yield execution so that another client can execute requests at the same time |
11:40:35 | FromDiscord | <nnsee> but you will need multiple clients for multiple requests |
11:40:53 | FromDiscord | <albassort> but if i make many clients then the sockets get soggy and die |
11:41:05 | FromDiscord | <odexine> ? what? |
11:41:06 | FromDiscord | <albassort> or at least did historicalyl |
11:41:07 | FromDiscord | <albassort> (edit) "historicalyl" => "historically" |
11:41:09 | FromDiscord | <albassort> like 2 years ago |
11:41:12 | FromDiscord | <nnsee> soggy? |
11:41:14 | FromDiscord | <intellij_gamer> Then make sure to close them when done |
11:41:16 | FromDiscord | <albassort> i forget the word |
11:41:17 | FromDiscord | <nnsee> i.. i'm sorry? |
11:41:24 | FromDiscord | <albassort> my brain has holes in it |
11:41:26 | FromDiscord | <albassort> uhhh |
11:41:30 | FromDiscord | <odexine> stale? |
11:41:32 | FromDiscord | <albassort> yes |
11:41:35 | FromDiscord | <albassort> they would deadlock |
11:41:40 | FromDiscord | <albassort> i posted about this like 2-3 years ago |
11:41:42 | FromDiscord | <odexine> deadlock? |
11:41:49 | FromDiscord | <odexine> i dont think thats the correct term either |
11:41:56 | FromDiscord | <albassort> hmmmm |
11:41:58 | FromDiscord | <albassort> probably |
11:42:15 | FromDiscord | <albassort> https://en.wikipedia.org/wiki/Deadlock |
11:42:17 | FromDiscord | <albassort> could be |
11:42:54 | FromDiscord | <nnsee> i don't think deadlocking is a problem here |
11:43:01 | FromDiscord | <nnsee> the clients do no synchronization themselves |
11:43:06 | FromDiscord | <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:20 | FromDiscord | <albassort> but i never investigated it further |
11:43:27 | FromDiscord | <albassort> maybe less than 3, 1.5 or so |
11:43:43 | FromDiscord | <odexine> because you dont close them |
11:43:43 | FromDiscord | <albassort> it happened faster if i did threading+async |
11:43:48 | FromDiscord | <albassort> In reply to @odexine "because you dont close": I WOULD |
11:43:49 | FromDiscord | <nnsee> it sounds like some client blocked for whatever reason, probably trying to read from a stale socket |
11:52:02 | FromDiscord | <albassort> sent a long message, see https://pasty.ee/mJaBtrIhuTal |
11:52:13 | FromDiscord | <albassort> (edit) "long message," => "code paste," | "https://pasty.ee/LYNFfcfQBfLx" => "https://play.nim-lang.org/#pasty=HOgfOlFCJJMa" |
11:52:28 | FromDiscord | <albassort> (edit) "https://play.nim-lang.org/#pasty=gOPoENSodDle" => "https://play.nim-lang.org/#pasty=zBQNlohVzNli" |
11:55:28 | FromDiscord | <albassort> :) |
11:55:41 | FromDiscord | <albassort> i feel like asynclient used to not be so picky |
11:55:48 | FromDiscord | <albassort> but my memory has become uhhhh |
11:55:49 | FromDiscord | <albassort> bad |
11:56:34 | FromDiscord | <nnsee> i would not await everything and _then_ close all sockets |
11:56:46 | FromDiscord | <nnsee> i would close sockets immediately when you're done with them |
11:57:25 | FromDiscord | <albassort> perhaps this was my issue in the past |
11:57:26 | FromDiscord | <albassort> thank you |
11:57:38 | FromDiscord | <nnsee> idunno |
11:57:40 | FromDiscord | <nnsee> wild guess |
11:57:45 | FromDiscord | <nnsee> it may not be your problem at all |
11:59:32 | FromDiscord | <odexine> sent a code paste, see https://play.nim-lang.org/#pasty=TSFRtsiJfuAa |
12:00:05 | FromDiscord | <odexine> i dont remember the behaviour of `all` |
12:00:30 | FromDiscord | <odexine> idk, i havent programmed in nim in a real long while |
12:04:43 | FromDiscord | <albassort> its ok rika |
12:04:49 | FromDiscord | <albassort> your personality makes up for any compiler errors |
12:06:38 | FromDiscord | <odexine> you sure im a person |
12:55:44 | FromDiscord | <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:11 | FromDiscord | <sOkam! 🫐> In reply to @odexine "you sure im a": Waaaait! |
14:01:31 | FromDiscord | <sOkam! 🫐> (edit) "Waaaait!" => "Waaaait!↵Are you ChatRikaPT? The one and only? 😮" |
14:04:15 | FromDiscord | <odexine> lol |
14:04:31 | FromDiscord | <odexine> made before GPTs were popularised |
14:22:03 | FromDiscord | <nnsee> just a very well tuned markov chain |
14:26:28 | * | xet7 quit (Remote host closed the connection) |
14:30:35 | FromDiscord | <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:01 | FromDiscord | <threefour> For library development testing |
14:46:32 | * | krux02 joined #nim |
14:58:22 | FromDiscord | <demotomohiro> https://github.com/nim-lang/atlas↵How about to use Atlas? |
15:00:06 | Amun-Ra | symlink package inside src |
15:00:32 | Amun-Ra | ln -s /path/to/deplib/src src/deplib |
15:00:54 | Amun-Ra | or even src/deplib.nim |
15:01:20 | Amun-Ra | hmm, no |
15:14:50 | FromDiscord | <threefour> Atlas might be what I need. How did people develop libraries before? Unit tests? |
15:15:48 | FromDiscord | <threefour> (edit) "develop" => "test their" | "test theirlibraries ... before?" added "while developing" |
15:15:58 | FromDiscord | <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:44 | FromDiscord | <cephonaltera> anyone know a package named "beyond"? nimble cant find it and the godot bindings are trying to import it |
20:44:16 | FromDiscord | <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:23 | FromDiscord | <cephonaltera> oh its called "nim-beyond", nevermind, weirdly ungooglable name |
20:48:28 | FromDiscord | <Phil> I have in fact not |
20:48:38 | FromDiscord | <Phil> Not that I'm a macro god or anything |
20:48:48 | FromDiscord | <Phil> But I can at least write them on some level |
20:52:02 | FromDiscord | <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:13 | FromDiscord | <the_real_hypno> Which currently dies because of it |
20:53:26 | FromDiscord | <Phil> Your problem is more finding somebody with macro skills and leftover brainpower tbh 😛 |
20:54:14 | FromDiscord | <the_real_hypno> Well, im actually not happy asking at all but macros are definitely not on my list atm 😛 |
20:55:56 | FromDiscord | <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:14 | FromDiscord | <the_real_hypno> (Which is not negative) |
21:30:32 | FromDiscord | <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:10 | FromDiscord | <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:03 | FromDiscord | <Robyn [She/Her]> In reply to @toma400 "I did change it": How are you initialising the object? |
21:35:46 | FromDiscord | <Elegantbeef> `var a: T` does not call default you need to do `var a = T()` or `var a = default T` |
21:36:48 | FromDiscord | <TӨMΛ ☠> sent a code paste, see https://play.nim-lang.org/#pasty=mCvkNMUbSLkg |
21:40:06 | FromDiscord | <Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=LYLxCxVxPRxN |
21:43:08 | FromDiscord | <TӨMΛ ☠> Wut, why does that work that way? o.o |
21:43:21 | FromDiscord | <TӨMΛ ☠> Why does it even needs that, pretty sure my previous constructors didn't need it |
21:43:26 | FromDiscord | <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:00 | FromDiscord | <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:13 | NimEventer | New 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 |