<< 05-10-2023 >>

00:36:04FromDiscord<sOkam! 🫐> @pmunch would it be possible to turn either opir or futhark into a c2nim-like application, by using the functions as a library imported from another app?↵What functions should I be looking at to achieve such a goal?
00:37:29FromDiscord<sOkam! 🫐> I know futhark can export readable code, but I'm talking about an app that takes some input and outputs a file with code directly, without having to extract it from the nimcache folder and create the binding generator etc etc etc, which becomes really awkward to work with from a C-translation-workflow perspective
01:19:08*a_ia`est- joined #nim
01:20:25*a_ia`est- left #nim (Glined: User has been banned from the network.)
01:45:33*lucerne3 joined #nim
01:47:02*lucerne quit (Ping timeout: 272 seconds)
01:47:03*lucerne3 is now known as lucerne
02:09:28NimEventerNew thread by carterza: Why is building the community and ecosystem such a struggle?, see https://forum.nim-lang.org/t/10529
02:10:12*deadmarshal_ quit (Ping timeout: 240 seconds)
02:10:22*Onionhammer quit (Quit: Ping timeout (120 seconds))
02:10:40*Onionhammer joined #nim
02:13:00*alice quit (Ping timeout: 240 seconds)
02:13:22FromDiscord<_gumbercules> now I get to wait until I wake up tomorrow to read a page full of replies telling me I'm an idiot because everyone lives in the EU and is asleep now
02:13:39*adium quit (Ping timeout: 272 seconds)
02:21:00*adium joined #nim
02:21:35*alice joined #nim
02:26:25FromDiscord<_gumbercules> I'd change my forum username to Gumbercules too but alas, the Nim forum wont' let me
02:26:46*deadmarshal joined #nim
02:37:10FromDiscord<gogolxdong666> where is SDL_mutex implement of Nim, sdl2 doesn't have.
02:37:41FromDiscord<_gumbercules> Probably just isn't wrapped - I found stuff like that when using the SDL2 bindings previously
02:45:57*greaser|q quit (Changing host)
02:45:57*greaser|q joined #nim
03:23:12FromDiscord<thattotallyrealmyth> sent a long message, see http://ix.io/4IbS
03:24:46FromDiscord<thattotallyrealmyth> If you are building a parser, I have got some notes from a module I did at uni that focuses on the model of computations and has a few weeks worth of notes/excersizes on parsers and compiler design
03:45:01*xet7 quit (Read error: Connection reset by peer)
03:57:34FromDiscord<user2m> sent a code paste, see https://play.nim-lang.org/#ix=4IbV
03:57:57FromDiscord<user2m> (edit) "https://play.nim-lang.org/#ix=4IbV" => "https://paste.rs/xA6Zq"
04:42:28FromDiscord<luxurymode> sent a long message, see https://paste.rs/rZp3H
05:07:19FromDiscord<_gumbercules> sent a code paste, see https://play.nim-lang.org/#ix=4Ic9
05:09:07*lucerne quit (Quit: Ping timeout (120 seconds))
05:10:22*lucerne joined #nim
05:17:34*om3ga quit (Ping timeout: 245 seconds)
05:45:24*om3ga joined #nim
06:29:34*advesperacit joined #nim
06:29:57*rockcavera quit (Remote host closed the connection)
06:52:01*azimut quit (Ping timeout: 252 seconds)
06:55:01*junaid_ joined #nim
06:57:39FromDiscord<user2m> In reply to @user2m "I'm trying to run": I found the answer `-d:nimExperimentalAsyncjsThen` I really wish this would be made explicit in the docs....
06:59:08*antranigv quit (Ping timeout: 255 seconds)
07:02:21*alphacentauri quit (Quit: WeeChat 4.0.5)
07:03:18*alphacentauri joined #nim
07:08:23FromDiscord<_gumbercules> more evidence of one of the points I tried to make in that long ass forum post I wrote earlier ^
07:09:38*antranigv joined #nim
07:14:16FromDiscord<user2m> In reply to @_gumbercules "more evidence of one": just read your post - an idea that immediately popped into my head would be an online searchable cookbook\
07:14:17*PMunch joined #nim
07:14:53FromDiscord<user2m> the docs are USUALLY helpful but every now and then theres things where I'm just banging my head
07:15:17FromDiscord<_gumbercules> Yeah - something like that would be great and they exist in certain states of completion but they tend to be maintained by individual contributors and there is no effort to centralize them or make them work for everyone, and it's been that way forever
07:17:46FromDiscord<_gumbercules> sent a long message, see http://ix.io/4IcJ
07:19:55FromDiscord<_gumbercules> The docs are helpful but as you alluded to - not everything is always easily found in them / made explicit and questions around what is not get asked quite frequently
07:20:45FromDiscord<_gumbercules> Not to mention all the silly inane questions that people ask constantly which we could simply answer with a link to some cookbook / FAQ - for instance: why does this Nim code not run as fast as this python code?
07:21:21FromDiscord<_gumbercules> bam - link to FAQ section about why benchmarks are dumb and things you might be doing to slow down your Nim code / things you could do to speed it up
07:22:46FromDiscord<_gumbercules> at one point there were efforts to create and maintain this type of thing on Github but of course only a select few people could contribute to them and they've gotten out of date and are now not worth much
07:24:01FromDiscord<user2m> could you link the OG attempt?
07:24:11FromDiscord<user2m> from github?
07:26:35FromDiscord<_gumbercules> sure, one moment
07:27:50FromDiscord<_gumbercules> https://github.com/nim-lang/Nim/wiki/Unofficial-FAQ
07:28:09FromDiscord<_gumbercules> and then there is this too - https://nim-lang.org/faq.html
07:28:57FromDiscord<_gumbercules> I don't think either really help newcomers and I don't think they were written from the perspective of one either
07:29:40FromDiscord<user2m> gotcha this is still helpful thank you!
07:30:12FromDiscord<_gumbercules> They might answer questions frequently asked about the language and it's roadmap / design but definitely not questions that get frequently asked in here - like how do I do X, how do I use this library / feature, etc...
07:30:21FromDiscord<_gumbercules> In reply to @user2m "gotcha this is still": anytime! glad I could help!
07:54:20PMunchHmm, it annoys me how poorly Nim does in this benchmark..
07:55:50PMunchI mean the Go code looks almost the same as the Nim code but runs 3x faster?
08:09:45FromDiscord<nnsee> which benchmark is this
08:23:54FromDiscord<vindaar> In reply to @PMunch "Hmm, it annoys me": have you run perf or similar on it? and tried a different table, like something from adix?
08:25:13PMunchI tried some tables from adix, just made it slower
08:26:05PMunch@nnsee, this one https://github.com/jinyus/related_post_gen
08:26:23PMunchI think we might just get screwed by not being allowed -d:danger
08:26:53*dza quit (Remote host closed the connection)
08:36:54*dza joined #nim
08:39:03FromDiscord<thattotallyrealmyth> is there a plan/project around making nims version of ziglings or rustlings? nimlings!
08:41:54FromDiscord<Phil> I can't say I'm familiar with either expression, as in: What? 😄
08:43:14FromDiscord<Phil> In reply to @PMunch "I think we might": I mean, likely somewhat, but -d: danger didn't give me a 66% performance improvement so I don't think that's enough of an explainer
08:43:41FromDiscord<Phil> The one time I ran the nim example anyway
08:48:25FromDiscord<thattotallyrealmyth> sent a long message, see http://ix.io/4IcU
08:49:23FromDiscord<Phil> Hmmm I'm only aware of advent of code initiative
08:49:47FromDiscord<thattotallyrealmyth> rustlings is almost like tutortials/seminars at uni but from your shell
08:50:19FromDiscord<Phil> Could be a really cool project though.↵I mean, at least I learn a lot while writing docs.↵I'm currently contributing a ton to a nim project that wraps GTK and I literally started by writing the nimibook-docs (and integrating already existing docs which made up at least half of it) for it
08:50:54FromDiscord<thattotallyrealmyth> you launch up rustlings, it takes you to the first question, it gives you a readme file for info needed, it allows you to get hints, and if you still dont get it; you google it and on to the next. its just an interactive way of learning how to program in rust
08:51:25FromDiscord<Phil> Could also be a really good way to learn nim 😄
08:51:28FromDiscord<thattotallyrealmyth> In reply to @isofruit "Could be a really": thats really awesome. I think rust with rustlings has defo set a new standard for learning new languages i reckon
08:52:25FromDiscord<thattotallyrealmyth> i would do it but I am not good enough at coding nor do I know nim enough to even begin making a half decent attempt:dogkek:
08:52:58FromDiscord<Phil> In reply to @thattotallyrealmyth "i would do it": No need to start out writing the CLI tool.↵This is a multi-step monstrum, could start out first with writing the individual exercises
08:53:30PMunchWith -d:danger it runs almost twice as fast for me
08:53:55FromDiscord<Phil> Assuming like a dozen exercises for the more basic nim features that already can be a nice and gentle introduction to nim and be useful later down the line when thinking about bundling all the exercises together into a binary 😛
08:54:17PMunch@thattotallyrealmyth, sounds a bit like what Excercism is doing
08:54:40FromDiscord<Phil> And over the scope of individual exercises you can of course also always come to chat and ask for help in that regard, explainers to you so you can turn it into exercises etc.
08:56:39FromDiscord<thattotallyrealmyth> In reply to @isofruit "No need to start": Thats a really good idea; that would also give me a better medium to learning nim more actively! I will get the mastering nim book and think of ways to make the excersizes follow the book
08:57:32FromDiscord<thattotallyrealmyth> In reply to @PMunch "<@1002236313350701096>, sounds a bit": Ah are they developing like a guided learning path for nim then. Thats great if one is avaliable
08:57:56FromDiscord<Phil> In reply to @thattotallyrealmyth "Thats a really good": Always happy to help 😄↵And if by the end of it CLI apps are still a scary beast, then it could still be a project you publish and you could keep that in the back of your head to recruit somebody for writing a CLI tool
08:58:47FromDiscord<Phil> It's far easier to recruit somebody looking for a project if you can just say "Do you wanna build something like rustlings, the exercises are already written!"
08:59:24PMunch@thattotallyrealmyth, yeah they have a Nim track: https://exercism.org/tracks/nim
08:59:30FromDiscord<Phil> (edit) "written!"" => "written!".↵So after writing those it's just publishing the exercises, keeping that in the back of your head and work on other stuff until see somebody getting bored, happened a least twice this year 😄"
08:59:39FromDiscord<Phil> (edit) "It's far easier to recruit somebody looking for a project if you can just say "Do you wanna build something like rustlings, the exercises are already written!".↵So after writing those it's just publishing the exercises, keeping that in the back of your head and work on other stuff until see somebody getting bored, happened a least twice this year ... 😄" added "in this chat that I pushed folks towards projects"
09:03:52FromDiscord<thattotallyrealmyth> In reply to @PMunch "<@1002236313350701096>, yeah they have": It looks really cool! But I guess it does lack a specific emphasis on nim, instead of teaching you in a targetted manner each feature or compenent of nim; it seems like the focus is on more general programming in nim/logic based instead of purly language synthax and feature based
09:06:30PMunchThat's true
09:06:53FromDiscord<thattotallyrealmyth> In reply to @isofruit "It's far easier to": AHAHHAH that be really awesome. I will defo think long and hard about this. I spent the last day translating my favorite libraries from c/c++ to nim from arduino. Not that I had much success but I learned a fair bit to contiue makin good progress : )
09:08:17FromDiscord<Phil> In reply to @thattotallyrealmyth "AHAHHAH that be really": Man you will love that Pmunch is in this chat 😄
09:08:43FromDiscord<Phil> (edit) "Pmunch" => "PMunch"
09:09:43FromDiscord<thattotallyrealmyth> In reply to @isofruit "Man you will love": I assume you guys are regular nim contributors? What lead to you guys to finding out about and using nim
09:11:33FromDiscord<Phil> He wrote futhark to make wrapping C less of a PITA and is pretty much the first name that pops into my mind when it comes to embedded.↵And I think he wrote badger: https://www.youtube.com/watch?v=dcHEhO4J29U
09:11:59FromDiscord<Phil> And ratel: https://github.com/PMunch/ratel
09:12:10FromDiscord<thattotallyrealmyth> oh wow... I had actually been going through your blog for wrapping c libraries!!!
09:12:13FromDiscord<Phil> Though I can't claim to understand the difference
09:12:30FromDiscord<Phil> PMunch, accept your praise 😛
09:13:26FromDiscord<thattotallyrealmyth> In reply to @isofruit "PMunch, accept your praise": youre all out here doing the lords work <:10_10:1081586146640941106>
09:14:26FromDiscord<Phil> I'll take that compliment, though I'm pretty sure I work in fields you're unlikely to touch if you're into embedded ^^
09:15:21FromDiscord<thattotallyrealmyth> In reply to @isofruit "I'll take that compliment,": Try me!
09:15:53FromDiscord<Phil> I do like majority webdev and contribute to GTK because I like the visuals of the framework and wanted to learn about wrapping C to turn it into a not-painful API
09:16:06FromDiscord<Phil> (edit) "API" => "API. And learn about packaging native GUI apps"
09:16:15FromDiscord<Phil> (edit) "I do like majority webdev and contribute to ... GTKwrapper" added "a" | "aGTK ... because" added "wrapper"
09:16:50FromDiscord<thattotallyrealmyth> thats really cool stuff. I am the least creative person on this planet so I defo could never work with making anything that needs to look more appealing than a wet cardboard box
09:17:23FromDiscord<thattotallyrealmyth> when did you first get into webdev? I have a few friends in cs into it and I see them doing some crazy wizardtry on JS and node
09:18:15FromDiscord<Phil> Funnily enough design basics have very little to do with creativity and everything to do with knowing what information is important compared to the other information and what ways of emphasizing there are to catch somebodies eye
09:18:45FromDiscord<Phil> It's a bit of learning a few rules by heart and a few patterns and that's it, for everything else you need a designer
09:20:41FromDiscord<thattotallyrealmyth> Ah alright. Thats still I think at least, smth I could never wrap my head around. I totally respect that; for what its made to be, web dev is way harder than anything else
09:24:59PMunch@thattotallyrealmyth, glad to hear my articles can be of help :)
09:25:30PMunch@Phil, Badger is my keyboard firmware, Ratel is the code from badger generalized to work for more than just my keyboard firmware :P
09:25:43PMunchNowadays Badger runs on Ratel
09:26:12FromDiscord<Phil> That's actually just GUI stuff in general, the same rules apply to native GUI 😛↵As for webdev, been in the industry for like 3.5 years at this point and its neat, but JS is a painful language
09:26:15FromDiscord<Phil> Like, really painful
09:26:35PMunchAnd @thattotallyrealmyth to answer your other question, I learned about Nim from a friend who used to send me cool languages you'd never heard of
09:26:59PMunchComing from a background of C and Python Nim was naturally an immediate hit with me
09:28:58FromDiscord<thattotallyrealmyth> In reply to @PMunch "And <@1002236313350701096> to answer": ahahahah thats really cool! Everyone deserves a friend like that. Its really awesome that you are taking the time to help others like myself get adapted to the language and learn how to apply it in their context of interest
09:29:27FromDiscord<thattotallyrealmyth> In reply to @PMunch "Coming from a background": I definitly really like that its python but way better. I think nim should be the default begineer language
09:29:43FromDiscord<thattotallyrealmyth> it includes alot of key concepts a begineer should probably learn in a friendly enough way
09:30:41FromDiscord<thattotallyrealmyth> (edit) "In reply to @PMunch "Coming from a background": I definitly really like that its ... python" added "like"
09:38:39*madprops quit (Remote host closed the connection)
09:38:56*madprops joined #nim
09:38:56*madprops quit (Changing host)
09:38:56*madprops joined #nim
10:11:11*junaid_ quit (Quit: leaving)
10:12:20FromDiscord<Chronos [She/Her]> In reply to @termer "it's really weird": Fair lol, I messed with bytecode briefly :p
10:13:13FromDiscord<Chronos [She/Her]> In reply to @thattotallyrealmyth "A finite state machines": Thanks for explaining!
10:17:00*junaid_ joined #nim
10:19:13FromDiscord<Phil> In reply to @thattotallyrealmyth "it includes alot of": I like to express it as "Nim as a lot of opt-in mechanics that are generally useful, not just in nim. Things you can learn about, but you don't have to.", for stuff like more in-depth compiler knowledge, metaprogramming, memory management, dynamic vs. static dispatch etc. etc.
10:20:34FromDiscord<Phil> In reply to @PMunch "Nowadays Badger runs on": I swear you had a talk about Ratel that explained how awesome Ratel binaries are
10:20:48FromDiscord<Phil> Like, I was there at nimconf when you held it but I thought it was also on youtube
10:21:47FromDiscord<Phil> Found it !↵@thattotallyrealmyth as an arduino guy this may be of interest to you, PMunch introducing Ratel basically:↵https://www.youtube.com/watch?v=0dt3icPj8Kk
10:22:03FromDiscord<Phil> (edit) "Found it !↵@thattotallyrealmyth as an arduino guy this may be of interest to you, PMunch introducing Ratel ... basically:↵https://www.youtube.com/watch?v=0dt3icPj8Kk" added "for nimconf"
10:22:11PMunchAh yes, I was confused because all of the NimConf talks are available on YouTube
10:24:35FromDiscord<Phil> That thing really needs Ratel in the title 😛
10:27:13FromDiscord<dissolved.girl> ... Honestly didn't expect PMunch to look so handsome 😳
10:28:17PMunchUhm, thanks I guess :P
10:28:48PMunchHmm, turns out that replacing the table in this benchmark with just a sequence of tuples makes it faster
10:30:21FromDiscord<vindaar> hashing is (can be) expensive. noticed the same recently in `unchained`. I was caching unit names (strings) at CT using a Table. Turns out that's 50% slower than just regenerating the string names each time, due to the cost of hashing the data types that uniquely identify the unit
10:36:38*junaid_ quit (Remote host closed the connection)
10:37:26*junaid_ joined #nim
10:40:34PMunchHmm, tried to do a tuple of two sequences instead a sequence of key/value tuples, but that turned out to be slower
10:45:22*junaid_ quit (Remote host closed the connection)
10:50:17*junaid_ joined #nim
10:54:40FromDiscord<sOkam! 🫐> @pmunch missed the question or ignored because its not possible or don't want to bother?↵its an important one for me, but im fine if you just don't have the time or don't want to bother explaining. just wanted to know if you just missed it accidentaly
11:02:53PMunchDid I miss a question?
11:05:20FromDiscord<nnsee> probably referring to this: https://media.discordapp.net/attachments/371759389889003532/1159446218783596575/image.png?ex=65310d70&is=651e9870&hm=97a55a696d5111925ea596334cbe5e436a7eb0875dd58679ab671b55c01e7d62&
11:05:38FromDiscord<sOkam! 🫐> In reply to @heysokam "<@392962235737047041> would it be": this one
11:05:52FromDiscord<nnsee> more context:
11:05:54FromDiscord<nnsee> https://media.discordapp.net/attachments/371759389889003532/1159446361171832945/image.png?ex=65310d91&is=651e9891&hm=4478322284939b660f59138109bfcf9f6af92c2dc8c2d891e44c94ded18929d2&
11:06:03FromDiscord<nnsee> In reply to @heysokam "this one": he probably can't see what you replied to on irc
11:06:19FromDiscord<sOkam! 🫐> In reply to @nnsee "he probably can't see": yeah but do images even work in irc?
11:06:43FromDiscord<sOkam! 🫐> i thought it was just text
11:06:45FromDiscord<nnsee> i don't see why not? it's just a link to a png
11:07:02FromDiscord<sOkam! 🫐> kk ty
11:07:08FromDiscord<nnsee> <https://cdn.discordapp.com/attachments/371759389889003532/1159446361171832945/image.png?ex=65310d91&is=651e9891&hm=4478322284939b660f59138109bfcf9f6af92c2dc8c2d891e44c94ded18929d2&>
11:07:13FromDiscord<nnsee> oh, they have signature checks now?
11:07:28FromDiscord<nnsee> guess no more using discord as an image/media host
11:07:35FromDiscord<nnsee> not that i did that, but i know people used to
11:18:40*junaid_ quit (Remote host closed the connection)
11:23:05FromDiscord<odexine> Currently the signatures are nonfunctional but are expected to activate within the year yes
11:42:25FromDiscord<_gumbercules> feels like we're back in the days of AOL chatrooms
11:43:09PMunchI'm not entirely sure what you mean sOkam
11:44:24PMunchYou want a program that does what Futhark does but just outputs to a file?
11:46:02PMunchFor that you would basically have to do the same stuff that this does: https://github.com/PMunch/futhark/blob/master/src/futhark.nim#L667
11:46:40PMunchOf course you can probably drop all the hashing and caching stuff
11:46:55PMunchAnd probably only select the logic you need from the branches
11:48:07PMunchHmm, might be tricky to make it into a program though without including the Nim compiler since Futhark works by creating NimNodes
11:48:47PMunchYou could of course take all of the logic in Futhark and rewrite it to output strings instead, while still reusing the Opir output as is
11:49:34PMunchThe Opir output is basically just a big JSON file of everything in the C file. Futhark only translates this file to NimNodes, so your tool could translate it into a string instead
11:51:49PMunchNot sure why you would want to do that though
12:28:18*rockcavera joined #nim
12:36:36FromDiscord<thattotallyrealmyth> In reply to @isofruit "I like to express": Yeah for sure. I think it’s a lot of fair stuff that I’d rather be taught then be taught the basics but not be given the full story. I think the start is the biggest hurdle and there’s a short gap where you have this massive leap in knowledge; I think it makes python a not very bang for ur buck language. I would think C is but I would definitely change that to nim
12:37:08FromDiscord<Phil> Define "bang for buck"
12:38:15FromDiscord<thattotallyrealmyth> In reply to @isofruit "Found it ! <@1002236313350701096>": I’ll definitely look into it! I probably need to dig a tad bit deeper since I’ve decided there are some stuff I want to rewrite in nim. I imagine the preformance gain will be worth it and the time spent getting all these libraries working together is better spent rewriting them all in a way that teaches old c code new nim tricks as Pmunch put it : )
12:38:18FromDiscord<Phil> I mean, Python also has a lot of valuable things it can teach you.↵First level functions in python are a valuable thing to have in any other language.↵The mixin design pattern can be pretty useful to understand.↵Its "protocol oriented nature" with dunder methods teaches you how you do polymorphism in static dispatch languages typically like nim etc.
12:39:18FromDiscord<Phil> And it can show you where dynamic typing can shine when it comes to deserialization.↵Like if you need to have a list to contain both a number and a string.↵It is impossible to do this as effortlessly in nim.↵It's still doable, just requires a bit of extra effort in the form of type unions
12:42:53FromDiscord<thattotallyrealmyth> sent a long message, see http://ix.io/4IdJ
12:44:47FromDiscord<Phil> In reply to @thattotallyrealmyth "I guess that if": I mean, I never really programmed in C. I just keep looking at the type system and think that programming in C is a bunch of insanity.↵Mostly because of the combination of entirely manual memory management combined with somehow "Pointer to value is either a pointer to one value or a pointer to a list. Have fun figuring out which it is"
12:45:42FromDiscord<Phil> "Also you better know how long that list is ahead of time"
12:46:47FromDiscord<thattotallyrealmyth> In reply to @isofruit "I mean, I never": HAHAHAHA yeah I imagine there’s a fair bit of that. I could totally be talkin non sense but I guess that would just be my general thoughts. Like you learn about var and let assignments, you get to lightly introduce pre processors and macros, you get to introduce basic concepts related to memory; it feels like almost like C with training wheels at times
12:47:40FromDiscord<thattotallyrealmyth> In reply to @isofruit "And it can show": I did not know this… I assumed this was possible :kekw:
12:47:58FromDiscord<Phil> In reply to @thattotallyrealmyth "I did not know": It is, just need to use union types
12:49:22FromDiscord<thattotallyrealmyth> In reply to @isofruit "It is, just need": Ah okay. Well yeah, I’m definitely rooting for nim to be more widely adopted and especially for beginners to programming
12:50:13FromDiscord<thattotallyrealmyth> I think it could be a really valuable tool in teaching good concepts in a manigable way but yet still not compromising on all the other amazing stuff the language could
12:50:14FromDiscord<thattotallyrealmyth> Do
12:50:49FromDiscord<Phil> I appreciate the lang for what it has taught me when my base knowledge level before was basically Java, python and js
12:51:07FromDiscord<Phil> Didn't know jack about compilers, compieltime, different types of dispatch, metaprogramming etc.
12:51:48FromDiscord<Phil> Not that I know that much more
12:52:19FromDiscord<jviega> Learning C well will definitely help get a deep understanding of how everything actually works at least 🙂
12:52:36FromDiscord<Phil> I'll agree on that one
12:55:46FromDiscord<thattotallyrealmyth> In reply to @jviega "Learning C well will": Yeah yeah no doubt
12:57:15FromDiscord<thattotallyrealmyth> Is nim seeing a rise in its adoption recently? I’ve definitely had people at my university talk about it. One of the people writing the compiler for V language goes here and he was praising nim actually during his presentation(it’s how I learned bout it)
12:58:04FromDiscord<leetnewb> I think it moves in waves
12:59:17FromDiscord<thattotallyrealmyth> In reply to @leetnewb "I think it moves": Is there one thing nim is particularly popular for?
13:00:34FromDiscord<Phil> nitter
13:00:41FromDiscord<nnsee> In reply to @thattotallyrealmyth "Is there one thing": unfortunately, malware
13:00:46FromDiscord<Phil> And that
13:01:28FromDiscord<thattotallyrealmyth> In reply to @nnsee "unfortunately, malware": other than infosec? I guess that’s the consequence of it being so easy for write, create win api support and produces really light weight binaries
13:01:34FromDiscord<leetnewb> In reply to @thattotallyrealmyth "Is there one thing": I think nim casts a very wide net with its features. Hard to pin popularity on any single one.
13:01:38FromDiscord<thattotallyrealmyth> Which is a W in its self
13:01:53FromDiscord<thattotallyrealmyth> In reply to @isofruit "nitter": Sorry what’s nitter?
13:02:01FromDiscord<odexine> twitter proxy
13:02:05FromDiscord<odexine> "sorry, i mean X"
13:02:29FromDiscord<Phil> Alternative frontend for twitter, more focussed, less data grabby
13:02:35FromDiscord<thattotallyrealmyth> (edit) "create" => "great"
13:03:00FromDiscord<nnsee> In reply to @thattotallyrealmyth "Sorry what’s nitter?": https://nitter.net/potus
13:03:07FromDiscord<nnsee> (example account)
13:03:17FromDiscord<thattotallyrealmyth> That’s really cool, I didn’t expect that to be its biggest adoption domain
13:03:41FromDiscord<thattotallyrealmyth> I was hoping it was embedded programming or smth related :dogkek:
13:04:09FromDiscord<nnsee> it's very good for embedded as well
13:04:15FromDiscord<nnsee> like leetnewb said, wide net
13:04:22FromDiscord<jviega> I mean, Nim's a good systems language that tends to produce faster code than Rust while being more readable and easy to write.
13:04:40FromDiscord<jviega> As long as you can live with the ecosystem being a lot less developed
13:05:55FromDiscord<nnsee> C/C++ interop makes the "lot less developed ecosystem" problem not as important
13:06:05FromDiscord<thattotallyrealmyth> In reply to @jviega "I mean, Nim's a": That’s a really interesting point. I guess I never thought about the speed in comparison to rust
13:06:29FromDiscord<jviega> The speed isn't generally the important thing
13:07:13FromDiscord<thattotallyrealmyth> In reply to @nnsee "C/C++ interop makes the": Yeah it’s a major positive that’s what drew me in at the start as well
13:08:59FromDiscord<thattotallyrealmyth> I’ve got an 8 am lab tmrw so I should probably get going to bed. Definitely learned a fair bit : ) I appreciate you all taking the time to share ur opinions on the language :nim1:
13:09:01FromDiscord<jviega> But then you need to be comfortable with C/C++, which a lot of people aren't. The community really needs to maintain decent wrappings of popular libraries in a way that's easy to consume. Right now, even stuff that Nim theoretically wraps are barely wrapped, like OpenSSL. It's just enough to get TLS going for https and almost nothing more.
14:03:18arkanoidwe're at nim 2.0, but nimsuggests keeps crashing even for the most simple projects. What's wrong with it?
14:04:19FromDiscord<odexine> i believe most people would say that it's poorly designed
14:04:31FromDiscord<odexine> it's difficult to fix
14:05:21FromDiscord<jviega> Can it be `rm -rf`'d? Seems like the community would be better served if it didn't exist than if everyone tried it and had a bad experience
14:07:12arkanoidall this tooling is mess is quite a disaster. Just by checking process list I can see that when I open VSCode (configured for lsp) it spawns nimlangserver and nimsuggest process. Then in minutes I get "nimsuggests crashed" message, task manager shows old nimlangserver process and a new nimsuggest process, but editor loses all the completion capabilities. If I close VSCode, I see nimlangserver and
14:07:14arkanoidnimsuggest process hanging there for no reason even if VSCode is not running
14:08:19FromDiscord<jviega> Several people in my team won't choose Nim because they had a bad experience w/ it in VSCode as well.
14:08:29FromDiscord<demotomohiro> sent a long message, see http://ix.io/4Ie7
14:10:41FromDiscord<odexine> In reply to @jviega "Can it be `rm": i do wonder if that would be the cased
14:10:42FromDiscord<odexine> (edit) "cased" => "case"
14:11:10FromDiscord<jviega> Having nothing would be more inviting in terms of getting someone inspired to write something that works
14:11:35arkanoidjviega I also have experienced two programmers thrashing Nim after 10 minutes use just due to not working defaults in VSCode environment
14:12:14FromDiscord<jviega> Yeah, I'm convinced no VSCode support is better than bad VSCode support.
14:12:32FromDiscord<jviega> It's the most popular development environment period
14:13:20arkanoiddue to how Nim modules work, the feature I miss the most when nimsuggest/lsp are not collaborating, is the impossibility to jump to function definition, or module definition
14:14:45arkanoidBeing not much explicit, Nim, like python, requires these tools to have comfortable experience
14:40:19FromDiscord<nervecenter> In reply to @arkanoid "nimsuggest process hanging there": My big issue was the VSCode plugin starting a ton of nimsuggest processes until I had maybe 10 running and all just idling there
14:40:35FromDiscord<nervecenter> And all consuming ~600mb of ram
14:41:39FromDiscord<sOkam! 🫐> In reply to @PMunch "Not sure why you": well, to achieve c2nim functionality, why else?
14:42:55FromDiscord<sOkam! 🫐> but using clang, not the c2nim parser
14:43:09arkanoidnervecenter, I had that too. My 2 cents: 1) if you're using LSP this is kinda less prone 2) assure you're configuring the "nim.project" extension setting per-project, and point to your "main" nim file (the one root module that imports all the others), this way nimsuggest/lsp will launch once on the file and not once for every .nim file tab you open inside vscode
14:44:53FromDiscord<sOkam! 🫐> In reply to @PMunch "The Opir output is": sounds like what I would need, yep. will look into it ✍️
14:45:01arkanoidnervecenter, try to run nimsuggest manually via command line, try to understand how it hooks to one or more nim files, then you understand why the extension "spawns" many nimsuggest processes if you don't set that project property
14:46:14arkanoidmy problem is that even if I set up all these things, I manage to crash nimsuggest for some reason, and from that point on lsp/vscode is unable to recover even if the requires processes seems running
14:48:14FromDiscord<nervecenter> Okay yeah that makes sense, I never dug into how nimsuggest worked so I didn't know it needed configuring
14:48:55FromDiscord<nervecenter> I also use makefiles instead of nimble so I don't think any plugin could automatically figure out what my main-level source file is
14:51:22FromDiscord<.aingel.> In reply to @arkanoid "Being not much explicit,": Isn't python explicit so you need these tools less with python?
14:51:29FromDiscord<.aingel.> (edit) "In reply to @arkanoid "Being not much explicit,": Isn't python ... explicit" added "more"
14:53:06FromDiscord<.aingel.> In reply to @arkanoid "we're at nim 2.0,": I've been having decent success with https://github.com/PMunch/nimlsp for vim
14:54:13arkanoidnervecenter, that option I'm talking about, is not written in nimble file, but is a setting of the vscode nim extension (by saem)
14:54:24arkanoidyou can perfectly stick with makefiles, I guess
14:55:00arkanoidthe point is that nor the makefile, not the vscode extension nor nimsuggest know which nim file is your main file, unless you tell
14:56:47arkanoid.aingel. imho python modules are more explicit than Nim ones. With python, when you import a module, you are not importing all the names withing it automatically, because there's no "export" system, which Nim has
14:57:22arkanoidso basically with Nim you end up with a name in your scope that may come from a module very nested away from where you are
14:57:33FromDiscord<nervecenter> Yes, but to make the extension "just work" for people trying Nim, having it automatically figure out the main source file, maybe through the nimble file, would be good for adoption.
14:57:47FromDiscord<.aingel.> In reply to @arkanoid ".aingel. imho python modules": Yeah I agree
14:58:18FromDiscord<.aingel.> In reply to @nervecenter "Yes, but to make": How does rust or crystal do it?
14:58:28FromDiscord<nervecenter> 🤷‍♂️
14:58:34arkanoidnervecenter, well, for a new user, the default behaviour (opening a nimsuggest process for any opened nim file) is perfectly fine. Problem is when you start importing stuff and opening lot of files
14:59:21FromDiscord<sOkam! 🫐> In reply to @arkanoid ".aingel. imho python modules": I imagine you know about `from thing import nil`, but mentioning because not enough people know about it
15:00:28*krux02 joined #nim
15:01:01arkanoids0Kam I know, but I don't see it used really. The "default idiomatic nim" (whatever it means) don't import nim, it exports stuff from modules and you have them by default in your context
15:05:31FromDiscord<kinda-new-here> sent a long message, see https://paste.rs/pnU83
15:06:54FromDiscord<Phil> Aye, this is the channel.↵As for the problem, I think you'll need another one of the windows folks here for that I can't help much there outside of making assumptions.
15:07:23FromDiscord<Phil> I should start to remember who other than ringabout uses windows
15:09:44FromDiscord<vindaar> While I'm no windows user either, what are you trying to compile? Does this happen on every single program you compile? And how do you call the compiler?
15:11:25FromDiscord<Phil> @System64 ~ Flandre Scarlet do you have any clue here? IIRC you use windows and may have encountered behaviour like it before
15:11:32FromDiscord<kinda-new-here> I tried with just a simple echo 1.
15:11:50FromDiscord<Phil> Could you copy paste the file and the command you run for compiling?
15:12:31FromDiscord<kinda-new-here> And nim c test.nim. Nothing fancy.
15:12:47FromDiscord<kinda-new-here> Same with F6 from VSCode.
15:12:53FromDiscord<Phil> Oh right, matrix, one sec starting up element
15:13:06FromDiscord<kinda-new-here> Nothing compiles.
15:14:14FromDiscord<kinda-new-here> I didn't even change my environment, so I suspected some corrupted state stuck somewhere.
15:14:31FromDiscord<Phil> Can you copy paste just your terminal logs?↵And also how you reinstalled?
15:16:53FromDiscord<kinda-new-here> I originally installed through Choco, but I also tried manual installation from the official archive.
15:17:16FromDiscord<kinda-new-here> I'm a bit stumped, because it had been happily working for a few years without changing anything.
15:17:37FromDiscord<Phil> What nim version were you on?
15:18:02FromDiscord<kinda-new-here> I must admit that I don't really know which logs you mean.
15:18:17FromDiscord<kinda-new-here> 2.0
15:20:28FromDiscord<Phil> Ah, just me using a convoluted way to ask "Can you copy paste the text in your terminal after the compile command?"
15:23:36FromDiscord<.aingel.> @enthus1ast Hey are you around by any chance? I'm having a problem compiling the HCR example of nimja after a nim 2.0 update
15:28:19FromDiscord<kinda-new-here> PS C\:\\dev\\test\> nim c -r .\\test.nim↵Hint\: used config file 'C\:\\tools\\Nim\\nim-2.0.0\\config\\nim.cfg' [Conf]↵Hint\: used config file 'C\:\\tools\\Nim\\nim-2.0.0\\config\\config.nims' [Conf]
15:28:33FromDiscord<kinda-new-here> The process just doesn't terminate.
15:29:04FromDiscord<Phil> Hmmm I assume you never touched nim.cfg and config.nims?
15:29:35FromDiscord<kinda-new-here> but it's still using a full processor thread.
15:29:47FromDiscord<kinda-new-here> No, I didn't.
15:30:58FromDiscord<Phil> During your manual installation you basically just downloaded the .zip file and ran finish.exe? Or did you do a complete compiler compilation?
15:31:34FromDiscord<kinda-new-here> Yes. Exactly. The problem started while I had nim installed through chocolatey, tho.
15:32:02FromDiscord<kinda-new-here> I didn't try compiling myself.
15:32:32FromDiscord<Phil> If nobody here on windows is currently available the next stop is more likely to be to make a forum post
15:32:32FromDiscord<Phil> Though did you install choosenim?
15:33:02FromDiscord<Phil> Like, I have no clue if choosenim works on windows in any capacity, if it does it might be worth a try to install that and choose a nim version through it, it tends to be pretty decent at installing
15:33:35FromDiscord<kinda-new-here> yes, but the installation didn't work and I didn't want to troubleshoot
15:33:55FromDiscord<kinda-new-here> I used to use choosenim until maybe a year ago.
15:33:58rockcaverakinda-new-here any installation does not work? manual, choosenim, etc.
15:33:58FromDiscord<Phil> Hmm yeah next step I can only think of forum post
15:35:03rockcaverahave you tried compiling from source? It's very simple...
15:35:30FromDiscord<kinda-new-here> installation manual and choco did work. Choosenim didn't.
15:36:51rockcaveraso I don't understand your problem if manual and choco installation work
15:37:49FromDiscord<kinda-new-here> Otherwise it seems time to finally register a forum account \:D
15:37:50FromDiscord<Phil> If I were brave enough to install windows and not absolutely slammed for time I might be starting to look into choosenim and general installation because this is just a sad state of affairs
15:37:50FromDiscord<Phil> But windows is just scary at this point
15:38:10FromDiscord<kinda-new-here> thanks for your help anyway!
15:38:37rockcaverakinda-new-here https://www.reddit.com/r/nim/comments/10g8fi7/comment/j575r80/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
15:43:50*def- quit (Quit: -)
15:51:39*azimut joined #nim
16:01:06*def- joined #nim
16:13:55FromDiscord<.aingel.> Where can I find the docs for "dyn("
16:14:00FromDiscord<.aingel.> (edit) ""dyn("" => "`dyn(`"
16:14:24FromDiscord<Phil> More context, you mean dynlib?
16:15:45FromDiscord<Phil> It is too late Aingel, I have already seen the message and am looking at the docs for dynlib! 😄
16:17:23FromDiscord<.aingel.> In reply to @isofruit "It is too late": Haha I am sorry!
16:17:30FromDiscord<.aingel.> Yeah it turns out it was a macro for something
16:17:38FromDiscord<Phil> Ah check
16:17:40FromDiscord<.aingel.> My lsp doesn't go to definitions of macros apparently, so I thought it was a system lib
16:39:04FromDiscord<enthus1ast> Have not tried it yet↵(@.aingel.)
16:39:37FromDiscord<enthus1ast> If you could open an issue I will have a look
16:39:45FromDiscord<.aingel.> In reply to @enthus1ast "Have not tried it": Gotcha, it seems like there's an issue with nim 2.0 forcing GC safe
16:39:49FromDiscord<.aingel.> In reply to @enthus1ast "If you could open": Already did!
16:40:00FromDiscord<enthus1ast> Oh 😌
16:40:35FromDiscord<.aingel.> 😺
16:40:56FromDiscord<enthus1ast> Do you have code based on this? Or just exploring?
16:40:57FromDiscord<.aingel.> In reply to @enthus1ast "Oh 😌": Can the filewatcher use global vars or is that not allwoed anymore in nim 2.0?
16:41:08FromDiscord<.aingel.> In reply to @enthus1ast "Do you have code": Yeah I have a project using it
16:41:21FromDiscord<.aingel.> Although I disabled hcr I wanted to enable it again to get it working
16:41:38FromDiscord<.aingel.> It used to work but there was some problem with hcr and I wanted to see if I could fix it to get hcr totally working
16:53:39FromDiscord<enthus1ast> yeah there are multiple issues
16:54:45FromDiscord<enthus1ast> i will look into them, but today i have no time unfortunately
16:56:52FromDiscord<enthus1ast> just a tip\: for my last project i've used\:↵↵https://github.com/treeform/guardmons/blob/master/src/guardmons/watchmon.nim
16:57:03FromDiscord<enthus1ast> i recompiled the application on a file change
16:57:50FromDiscord<enthus1ast> it
16:58:14FromDiscord<enthus1ast> i've used this for another project that required constant recompilation and was good enough (and not too big)
16:58:23FromDiscord<enthus1ast> maybe you can use this as well until its fixed
17:05:48FromDiscord<.aingel.> In reply to @enthus1ast "maybe you can use": Gotcha, thank you !
17:13:41FromDiscord<Phil> ... anyone willing to go a deep dive troubleshooting into owlkettle with me because I'm drawing way too many lbanks
17:13:43FromDiscord<Phil> (edit) "lbanks" => "blanks"
17:26:32FromDiscord<Chronos [She/Her]> I'm not sure on how I'd implement GUIs oof
17:27:11FromDiscord<Chronos [She/Her]> For the most part, I should be able to just reuse the logic for map rendering, but then there's the issue of what size the screen is depending on the device (for example, phones)
17:50:19*xet7 joined #nim
17:51:58FromDiscord<Phil> Shakes fist at GTK↵"You win for now, Cursed SpinRow Widget!"↵Yeah that thing crashes on me way too much
17:52:04FromDiscord<Phil> (edit) "Shakes fist at GTK↵"You win for now, Cursed SpinRow Widget!"↵Yeah that thing crashes on me way too much ... " added "and I just don't see what's going on"
18:03:30FromDiscord<sOkam! 🫐> i struggled to get the examples running, so on my part that's why I didn't say a word
18:06:37FromDiscord<Phil> Oh? Were you on windows or sth?
18:07:13FromDiscord<Phil> Always thought it shouldn't be too hard with gtk under windows installed, though how easy that one is I have no clue
18:21:58FromDiscord<Phil> If there's anything that could be documented to make that experience easier I'm happy to add it to the docs
18:26:42FromDiscord<sOkam! 🫐> I meant more in terms of tweaking and creating my own stuff. I think I built the basic example, tried to look around casually, and was like... "yeah, this need a deep dive, won't happen anytime soon" and continued with something else
18:27:13FromDiscord<sOkam! 🫐> its probably not difficult, it just needs some studying
18:27:27FromDiscord<Phil> The realization I've come to is that Adwaita is where the magic happens
18:27:33FromDiscord<Phil> The basic widgets in general owlkettle are nice and all
18:27:48FromDiscord<Phil> But basically you mostly need to know Box for the most part because that's the equivalent to Html divs
18:28:24FromDiscord<sOkam! 🫐> I was thinking about creating an app to replace airtable for my writing management with an sqlite database... but then I realized its not a simple task and left it for another time 🙂
18:28:26FromDiscord<Phil> Compiling owlkettle examples e.g. nets you free lightmode/darkmode conversions (At least I think those didn't happen when compiling / brewing with the normal owlkettle brew proc
18:28:28FromDiscord<Phil> (edit) "proc" => "proc)"
18:28:46FromDiscord<Phil> Replacing whattable?
18:29:28FromDiscord<sOkam! 🫐> #googleit its like an excel database manager, that has a crazy good interface for managing images+data
18:29:56FromDiscord<sOkam! 🫐> that's mostly what I would want, images (aka a moodbard) but with a database table attached to each image
18:33:00FromDiscord<.aingel.> In reply to @enthus1ast "just a tip\: for": https://github.com/emcrisostomo/fswatch
18:33:16FromDiscord<.aingel.> What do you think about this? Watchmon seems to just use basic polling, which I don't know if is all that good
18:36:09FromDiscord<Phil> It would be so fire if products could be more about what they are than what they promise you
18:36:38FromDiscord<Phil> So like this one? https://www.airtable.com/solutions/product
18:37:07*azimut quit (Ping timeout: 252 seconds)
18:37:08FromDiscord<Phil> That... doesn't look like a dbm though ´, hmm
18:37:40FromDiscord<Phil> I give up, that webpage is giving me an aneurism
18:37:53FromDiscord<sOkam! 🫐> In reply to @isofruit "That... doesn't look like": its not, that's the point
18:38:02FromDiscord<sOkam! 🫐> well it is, but more behind the scenes
18:38:10FromDiscord<sOkam! 🫐> in the frontend you just deal with an excel sheet
18:39:04FromDiscord<sOkam! 🫐> its like an overpowered excel sheet that understands relationships between things, but without having to deal with the whole db management complexity
18:39:29FromDiscord<Phil> That seems like the backend logic alone might eat you alive
18:39:42*azimut joined #nim
18:39:44FromDiscord<Phil> Before even considering any gui elements
18:39:51FromDiscord<sOkam! 🫐> now that I know coding I don't have much use in it, and I see your point. Its very counterintuitive↵but as an artist, with an artist brain and no coding skills at all... airtable is -beyond- invaluable
18:40:07FromDiscord<sOkam! 🫐> the problem is the damn paywall and restrictions, and then you cannot export your data without coding skills
18:40:36FromDiscord<sOkam! 🫐> In reply to @isofruit "That seems like the": how so? its just a database management app, right? or am I missing something
18:41:28FromDiscord<Phil> In reply to @heysokam "how so? its just": The way you described it being able to understand data relationship seemed like it having complex algorithms that automatically recognizes data-relationships without you typing them out and then building database schemas on the fly
18:41:48FromDiscord<sOkam! 🫐> In reply to @isofruit "The way you described": i mean... that is just a relationship in a database?
18:42:04FromDiscord<sOkam! 🫐> i don't understand what you just described, but i was mentioning a simple `othertable.ID` entry
18:42:15FromDiscord<Phil> Ohhhhh
18:42:39FromDiscord<sOkam! 🫐> you cannot do that with excel. it doesn't show up the data you are linking to another table
18:42:51FromDiscord<sOkam! 🫐> but with a database table ID, you can bring that info
18:42:51FromDiscord<Phil> I was like "So basically you wrapped all of SQL and put an excel abstraction layer over it that was so insanely well designed that it was intuitive for the everyday person"
18:43:05FromDiscord<sOkam! 🫐> lol hell no, not even airtable does that
18:43:15FromDiscord<sOkam! 🫐> i don't know how i would even use such a tool at all
18:43:51FromDiscord<Phil> That's just what it initially sounded like to me 😄↵Wrapping all of SQL is such an arduous task that the common approaches tend to be "don't"
18:44:03FromDiscord<sOkam! 🫐> what I was using it for is having a screen full of thumbnails/images... and each of them has data attached to them↵and in another view, you just see the database table like normal, and the image is one of the fields
18:44:17FromDiscord<Phil> And the next most common approach is "Wrap half of it with a custom language that should be less annoying to deal with"
18:45:04FromDiscord<sOkam! 🫐> In reply to @isofruit "And the next most": is this not what `db_connector` is for?
18:45:22FromDiscord<Phil> In reply to @heysokam "is this not what": Oh I was talking SQL the language and its features, not sql drivers
18:46:20FromDiscord<Phil> Because fun stuff like recursive queries, queries for windows of values (e.g. the 5th to 10th value of a query), entries grouped by value etc. etc. are also things that it does that I just never ever want to deal with providing an interface for
18:46:26FromDiscord<Phil> (edit) "an" => "a specific"
18:47:08FromDiscord<sOkam! 🫐> isn't it easier to just hardcode a bunch of operations and deal with those?
18:47:25FromDiscord<sOkam! 🫐> why wrap the entire sql lang?
18:47:45FromDiscord<Phil> For full feature compatibility when your customer inevitably wants to do crazy complex stuff
18:47:54FromDiscord<sOkam! 🫐> not judging, just asking because i don't understand what you mean
18:48:18FromDiscord<Phil> Like "I have a list of that link to each other, I want to find the articles that only link to each other"
18:48:23FromDiscord<Phil> (edit) "" => "articles"
18:48:27FromDiscord<sOkam! 🫐> In reply to @isofruit "For full feature compatibility": ah so you are thinking industrial-level stuff. yeah, i see what you mean↵well, this idea is hella lot more simple than that
18:48:36FromDiscord<Phil> (edit) "Like "I have a list of articles that link to each other, I want to find the ... articlesother" added "pairs of 2" | "other"" => "other and nothing else""
18:48:43FromDiscord<sOkam! 🫐> thats probably why i was missing your point
18:48:54FromDiscord<sOkam! 🫐> (edit) "point" => "point, totally different frame of mind / perspective"
18:49:03FromDiscord<Phil> I may be missing the forest for the trees, very fair and never unlikely
19:08:08*dtomato quit (Quit: The Lounge - https://thelounge.chat)
19:08:17FromDiscord<Elegantbeef> @Phil lol you tried summoning me but I had no internet, so try harder
19:12:45*dtomato joined #nim
19:14:25*nyeaa4928423010 quit (Quit: Ping timeout (120 seconds))
19:14:45*nyeaa4928423010 joined #nim
20:00:48FromDiscord<System64 ~ Flandre Scarlet> In reply to @kinda-new-here "Yes. Exactly. The problem": Remove every installation of Nim, and install Nim the official way
20:18:12FromDiscord<thattotallyrealmyth> In reply to @jviega "But then you need": Is there a particular reason wrappings of popular libraries is poor? Has their been a consideration on simply translating them to nim?
20:21:38FromDiscord<jviega> It takes a lot of manual work people generally don't want to do, esp for large libraries. For the libraries I wrap, I only wrap what I need myself!
20:22:53FromDiscord<thattotallyrealmyth> In reply to @jviega "It takes a lot": Yeah that’s fair. But nim is a relatively young language no? So I’m guessing it’ll keep going uphill from here
20:23:02FromDiscord<jviega> No
20:23:22FromDiscord<thattotallyrealmyth> I went to open a git repo but nimlings already exists and the persons last commit was two years ago :^)
20:23:55FromDiscord<jviega> 1.0 was 4 years ago, but I think it's been well over a decade since it went public
20:24:26FromDiscord<thattotallyrealmyth> In reply to @jviega "1.0 was 4 years": Ah I guess cuz I assumed 2.0 was only a few months ago
20:25:02FromDiscord<thattotallyrealmyth> But thats good time. Any reason why some parts have been underdeveloped/slow for adoption?
20:26:35FromDiscord<jviega> Hard for me to say, I've only been idling here a year myself.
20:28:30FromDiscord<jviega> I see the leadership such as it is would prefer to have a tiny standard library and doesn't spend a lot of time on it, and they're also not focused on community building, so something like that would have to self-assemble.
20:40:03FromDiscord<leetnewb> In reply to @thattotallyrealmyth "Yeah that’s fair. But": If you think of 1.0 as the springboard, it's possible. There are a lot of language options today though.
20:58:33PMunchsOkam, well it was more a question of why you would want a c2nim like experience
20:58:39PMunchBut to each their own I guess
20:58:40*PMunch quit (Quit: Leaving)
21:07:47FromDiscord<jviega> Agreed, what's the point of going C -> Nim which is going to go to C anyway, unless you own the code and want to port it to Nim, and even then, why bother?
21:10:29termermaintainability usually
21:37:35*advesperacit quit ()
21:52:53FromDiscord<Elegantbeef> One could argue type safety 😛↵(@jviega)
22:02:59FromDiscord<jviega> If it's a big enough code base that works well, then that's probably not worth the trade-off 🙂
22:04:33*Jjp137 quit (Quit: Leaving)
22:05:43*Jjp137 joined #nim
22:18:21FromDiscord<Chronos [She/Her]> In reply to @jviega "Agreed, what's the point": Rewriting of C libraries in Nim without having to worry about keeping C interop in mind↵↵It'd still be low-level for sure, but I'd imagine on a language level it'd be easier to interop with that code and to make it take advantage of Nim features 'natively' (such as memory management)
22:18:57FromDiscord<Elegantbeef> Eh thanks to Arc you can use C libraries indistinguishably from Nim code
22:19:11FromDiscord<Chronos [She/Her]> Depending on what the library does too, compiling it for use on the web without WASM may be a plus in some cases? Like compiling Lua to JS (I know that exists already with WASM but)
22:19:20FromDiscord<Chronos [She/Her]> In reply to @Elegantbeef "Eh thanks to Arc": That doesn't work with refc nor orc though
22:19:23FromDiscord<Chronos [She/Her]> Well, idk about orc
22:19:25FromDiscord<Chronos [She/Her]> But refc
22:19:30FromDiscord<Chronos [She/Her]> And the various other GCs
22:19:31FromDiscord<Elegantbeef> It obviously works with orc
22:19:38FromDiscord<Elegantbeef> Who cares about any other GC
22:19:55FromDiscord<Chronos [She/Her]> Ppl doing Go interop I'd imagine? 🤷‍♀️
22:20:09FromDiscord<Elegantbeef> No one even does that
22:20:30FromDiscord<Chronos [She/Her]> Maybe it'd be useful because you wouldn't have to mess with a build system
22:20:37FromDiscord<Chronos [She/Her]> Just throwing out uses here really
22:20:46FromDiscord<Chronos [She/Her]> Not that I'd have any :p
22:20:59FromDiscord<Chronos [She/Her]> Some build systems are utter pain I'd imagine
22:21:09FromDiscord<Chronos [She/Her]> Major con that'd happen tho: Build times would be inflated massively
22:21:25FromDiscord<Chronos [She/Her]> Also language translation will not be smooth in terms of syntax
22:21:29FromDiscord<jviega> Go interop basically requires you to carry around the entire go runtime.
22:21:47FromDiscord<Chronos [She/Her]> It'd still be unreadable C, just now formatted slightly differently for Nim
22:21:51FromDiscord<jviega> Yeah, it's a pipe dream to get it working for any significant piece of C code. It'd never be worth the effort
22:22:01FromDiscord<Chronos [She/Her]> Yeaah
22:22:13FromDiscord<Elegantbeef> RIIN
22:22:17FromDiscord<Chronos [She/Her]> In reply to @jviega "Go interop basically requires": I thought only the GC needed to be carried around
22:22:19FromDiscord<Chronos [She/Her]> RIIN?
22:22:54FromDiscord<jviega> Not if you're calling out to go for anything significant where it needs the runtime
22:23:04FromDiscord<Chronos [She/Her]> Fair
22:23:08FromDiscord<jviega> It doesn't use libc or anything
22:23:13FromDiscord<Chronos [She/Her]> Go makes massive binaries too f
22:28:34FromDiscord<Elegantbeef> Link everything including the linker!
22:43:31FromDiscord<sOkam! 🫐> @jviega @pmunch translating a 450sloc from a game engine slowly over time, in a one-way-trip way, in order to do a total conversion of the code into Nim forever↵I think that's more than worth the effort on automating the process somewhat, don't you think?↵The code is complex (and bug-prone) enough as it is, without introducing parsing errors. So it needs to be slowly translated, and a "well translate everything all at once with c2
22:44:34FromDiscord<jviega> 450k loc?? Too much to move to any language
22:44:42FromDiscord<sOkam! 🫐> and the "well just wrap it with futhark" has been proprosed way too many times to count, but its a +20y/o engine. It was not built to be general purpose, nor supportive of a modular system like libraries do nowadays. Its crazy monolithic
22:45:19FromDiscord<sOkam! 🫐> In reply to @jviega "450k loc?? Too much": That's why I said it needs to be slowly over time, as code is used, documented and reviewed
22:47:20*nyeaa4928423010 quit (Quit: Ping timeout (120 seconds))
22:47:38*nyeaa4928423010 joined #nim
22:50:47*azimut_ joined #nim
22:51:13*azimut quit (Ping timeout: 252 seconds)
22:53:48*disso-peach joined #nim
23:23:49*antranigv quit (Ping timeout: 245 seconds)
23:30:08*antranigv joined #nim
23:46:01FromDiscord<geekrelief> In Nim 2.0 if an enum field and type have a name collision, is there a way to get the compiler to disambiguate between them without qualification?
23:46:32FromDiscord<Elegantbeef> Not that I know
23:47:17FromDiscord<geekrelief> k, looks like I need a bunch of edits to update gdnim.