<< 10-09-2023 >>

00:04:47*jmdaemon joined #nim
00:17:07FromDiscord<saint._._.> sent a code paste, see https://play.nim-lang.org/#ix=4FSq
00:17:23FromDiscord<saint._._.> sent a code paste, see https://play.nim-lang.org/#ix=4FSr
00:17:39FromDiscord<saint._._.> I get `Error: cannot instantiate: 'T'`
00:17:56FromDiscord<Elegantbeef> You didnt specify the generic parameter
00:18:15FromDiscord<saint._._.> How do I do that @ElegantBeouf
00:18:23FromDiscord<saint._._.> Sorry for the bad questionss
00:18:44NimEventerNew thread by DMisener: Nimble newbie issue, see https://forum.nim-lang.org/t/10472
00:18:48FromDiscord<Elegantbeef> `get2[type]()`
00:18:53FromDiscord<saint._._.> I've been trying to follow https://scripter.co/binding-nim-to-c-plus-plus-std-list/#bindings-to-the-c-plus-plus-list-header
00:19:28FromDiscord<saint._._.> In reply to @Elegantbeef "`get2[type]()`": Oh but can't it be like inferred
00:19:50FromDiscord<Elegantbeef> How could it be inferred in the first place
00:20:04FromDiscord<Elegantbeef> `var cat` has no type
00:20:21FromDiscord<saint._._.> so get2 is returning a specific data type
00:20:26FromDiscord<saint._._.> It's returning a value of json
00:20:57FromDiscord<saint._._.> sent a code paste, see https://play.nim-lang.org/#ix=4FSs
00:21:11FromDiscord<saint._._.> get2 is mapped to this cpp test() function
00:21:13FromDiscord<Elegantbeef> It's a generic though you need to specify that generic parameter
00:21:37FromDiscord<saint._._.> How does cpp do it though, because you don't specify what type you want
00:21:50FromDiscord<saint._._.> You just enter the keys and it gives you the appropriate type back based on the parsed json
00:22:08FromDiscord<Elegantbeef> I don't know C++ so I do not know
00:22:54FromDiscord<saint._._.> Gotcha
01:02:59FromDiscord<demotomohiro> In reply to @saint._._. "You just enter the": iirc, you can do like `test<int>();`
01:04:41FromDiscord<saint._._.> In reply to @demotomohiro "iirc, you can do": simdjson_inline simdjson_result<value> operator[](const char key) noexcept;
01:04:53FromDiscord<saint._._.> This is from the .h file... how does it know to get <value>
01:05:03FromDiscord<saint._._.> This is a cpp question but idk how this owrks
01:05:16FromDiscord<saint._._.> simdjson_result is with <T>
01:06:15FromDiscord<demotomohiro> In reply to @saint._._. "This is from the": Is that a function inside class?
01:07:18FromDiscord<saint._._.> Yeah
01:07:35FromDiscord<demotomohiro> Isn't that `value` template parameter of that class?
01:08:20FromDiscord<saint._._.> Oh u might be right
01:09:00FromDiscord<demotomohiro> If so, `classname<int> foo; auto x = foo["key"];`
01:09:28FromDiscord<demotomohiro> So `value` become `int`.
01:11:10FromDiscord<raynei486> In reply to @saint._._. "How does cpp do": C++ templates are different from Nim generics↵Nim generics just mean "this can apply to whatever type the user specifies"↵C++ templates are that and can possibly infer the type↵Nim can also do type inference, just not with generics AFAIK
01:15:22FromDiscord<saint._._.> Hmm ok
01:15:38FromDiscord<raynei486> sent a code paste, see https://play.nim-lang.org/#ix=4FSz
01:15:50FromDiscord<raynei486> (edit) "https://play.nim-lang.org/#ix=4FSz" => "https://play.nim-lang.org/#ix=4FSA"
01:16:03FromDiscord<raynei486> (edit) "https://play.nim-lang.org/#ix=4FSA" => "https://play.nim-lang.org/#ix=4FSB"
01:16:37FromDiscord<raynei486> C++ is a beautiful mess, you should check it out sometimes :D
01:29:20FromDiscord<taperfade> In reply to @taperfade "how do i": Here
01:32:59FromDiscord<saint._._.> In reply to @raynei486 "and since C++17 there's": Ahh interesting thanks I'll look into this more
01:33:24FromDiscord<taperfade> Guys can yall pls help
01:33:28FromDiscord<taperfade> I cant find anything online
01:34:25FromDiscord<Elegantbeef> I did
01:39:03FromDiscord<saint._._.> @taperfade https://nim-by-example.github.io/files/
01:39:09FromDiscord<saint._._.> Does this help?
01:39:25FromDiscord<raynei486> In reply to @taperfade "Error: unhandled exception: cannot": if you used `writeFile` here I think it's because the program doesn't have permission to write to that directory
01:39:41FromDiscord<raynei486> also if you're too frustrated you should consider doing an easier project
01:39:53FromDiscord<raynei486> and also follow a tutorial first
01:40:05FromDiscord<raynei486> nothing wrong with that if you walk out with something done and learned
01:40:10FromDiscord<saint._._.> I think you have to open it with write permission too
01:40:24FromDiscord<saint._._.> let f = open("catactivities.txt", fmWrite)
01:40:26FromDiscord<saint._._.> Like this
01:41:50FromDiscord<sOkam! 🫐> is there an inverse of `astToStr`, or does that require a macro mandatory?
01:42:08FromDiscord<Elegantbeef> `parseExpr` and yes
01:42:56FromDiscord<sOkam! 🫐> its more for creating a single symbol
01:42:57FromDiscord<taperfade> In reply to @raynei486 "nothing wrong with that": Thx but i know how i learn effectively
01:43:07FromDiscord<taperfade> And thats by setting a goal
01:43:16FromDiscord<taperfade> Like as an example idk uhh
01:43:22FromDiscord<taperfade> Malware
01:43:29FromDiscord<taperfade> And i learn the things it does
01:43:34FromDiscord<taperfade> Like creating files
01:43:36FromDiscord<taperfade> Etc
01:43:41FromDiscord<taperfade> :kirukosmug:
01:44:14FromDiscord<taperfade> I want to fill my GitHub with cool stuff
01:44:19FromDiscord<raynei486> but you're still at the stage of learning to express yourself and fix your programs
01:44:33FromDiscord<raynei486> like the error messages are fine↵you just haven't learned to read them yet
01:44:36FromDiscord<taperfade> I combine what i learned
01:45:08FromDiscord<taperfade> I learned how to send data to a webhook and then how to capture user keystrokes , boom keylogger
01:45:16FromDiscord<taperfade> But true
01:45:23FromDiscord<taperfade> I cant read the error stuff
01:45:27FromDiscord<taperfade> 😔
01:45:38FromDiscord<raynei486> you just need to use nim more
01:46:10FromDiscord<raynei486> like domain specific knowledge is necessary but you're struggling more with the language
01:47:02FromDiscord<sOkam! 🫐> sent a long message, see http://ix.io/4FSG
01:47:12FromDiscord<taperfade> Dunning krueger effect hitting hard
01:47:44FromDiscord<sOkam! 🫐> i know it sucks to be sent to the manual, but the level of questions you need to answer right now are very easily answered by learning that manual navigation skill
01:47:53FromDiscord<taperfade> I use the manual
01:47:56FromDiscord<taperfade> Dw
01:48:05FromDiscord<sOkam! 🫐> yeah i know, but im talking about using it when you get frustrated
01:48:12FromDiscord<sOkam! 🫐> when you get stuck and you cannot find the answers
01:48:20FromDiscord<sOkam! 🫐> thats when that skill im mentioning matters
01:48:59FromDiscord<taperfade> I feel like im gonna be stuck being a beginner
01:49:15FromDiscord<taperfade> Since i was 8 i wanted to programm 😭
01:49:15FromDiscord<sOkam! 🫐> yeah, until you learn that skill proficiently
01:49:25FromDiscord<sOkam! 🫐> im telling you because i've been that person
01:49:40FromDiscord<sOkam! 🫐> ive been sent to the tutorials like tens of times here, ive been that same person
01:49:47FromDiscord<raynei486> on the topic of documentation↵↵I'm interested in knowing what beginners find difficult about reading and finding documentation
01:49:55FromDiscord<raynei486> I do think nim docs can be better
01:50:01FromDiscord<sOkam! 🫐> and i was only able to stop being stuck when I learned that very non-flashy skill
01:50:27FromDiscord<sOkam! 🫐> In reply to @raynei486 "I do think nim": the wording of things is what made me stuck sometimes, personally
01:50:35FromDiscord<raynei486> In reply to @raynei486 "I do think nim": well I came from C++ so I'm comparing it with something like cppreference
01:51:00FromDiscord<sOkam! 🫐> having no reference to what things are, when the person who wrote that clearly has the context to understand their words -very- easily... but as a newbie you don't have that... so you are like, huh?
01:51:02FromDiscord<taperfade> I came from python
01:51:15FromDiscord<taperfade> I made a keylogger and a calculator in python
01:51:21FromDiscord<taperfade> Then switched to nim
01:51:28FromDiscord<taperfade> Just a few days ago
01:54:16FromDiscord<raynei486> In reply to @heysokam "having no reference to": oh yeah certainly
01:54:20FromDiscord<taperfade> :kirukosmug:
01:54:42FromDiscord<raynei486> it's hard to strike balance between a reference for the experienced and a guide for newcomers though
01:55:48FromDiscord<raynei486> In reply to @taperfade "I made a keylogger": I don't talking about that stuff on discord directly because it's against the TOS lol
01:55:55FromDiscord<Elegantbeef> Just don't make docs and have both parties angry at you
01:56:00FromDiscord<raynei486> (edit) "In reply to @taperfade "I made a keylogger": I don't ... talking" added "recommend"
01:56:07FromDiscord<raynei486> based beef take
01:56:30FromDiscord<taperfade> In reply to @raynei486 "I don't recommend talking": No way
01:56:50FromDiscord<raynei486> making anything malicious is against the TOS
01:57:06FromDiscord<raynei486> most programming servers I'm in don't allow helping people make malware
01:57:22FromDiscord<taperfade> Dang
01:57:42FromDiscord<Elegantbeef> I mean making malware is for losers anyway
01:57:43FromDiscord<Elegantbeef> Fite me
01:57:44FromDiscord<raynei486> but nim server is pretty lax so
01:57:47FromDiscord<raynei486> ¯\_(ツ)_/¯
01:57:50FromDiscord<_gumbercules> Discord is basically malware
01:57:59FromDiscord<raynei486> true
01:58:05FromDiscord<raynei486> stealing my ram :(
01:58:13FromDiscord<sOkam! 🫐> In reply to @Elegantbeef "I mean making malware": i wont, i agree big time
01:58:14FromDiscord<taperfade> Opera is spyware
01:58:25FromDiscord<taperfade> Literally
01:58:43FromDiscord<taperfade> Thats why they have so much money to get sponsors
01:58:57FromDiscord<sOkam! 🫐> also stop making BS with nim, and making antivirus companies flag the entire language because of your shit↵we got enough of that, go use another lang
01:58:59FromDiscord<taperfade> (edit) "sponsors" => "ads"
01:59:12FromDiscord<taperfade> It already flagged mine
01:59:14FromDiscord<Elegantbeef> For anyone that writes malware I hope your socks are always wet, your microwaved meals always have ice in the centre, and you always get a hangnail
01:59:17FromDiscord<sOkam! 🫐> no wonder
01:59:23FromDiscord<taperfade> Norton flagged mine bcs i opened program files
01:59:24FromDiscord<taperfade> Lmao
01:59:29FromDiscord<_gumbercules> In reply to @Elegantbeef "For anyone that writes": Ruthless
02:00:16FromDiscord<taperfade> Lol
02:00:22FromDiscord<taperfade> Why u hate malware
02:00:46FromDiscord<sOkam! 🫐> In reply to @taperfade "Thats why they have": your mentality is kinda fucked, to be completely honest↵so im going to stop even giving a single comment of advice from now on. go use another lang, get out of nim
02:01:28FromDiscord<Elegantbeef> Why wouldnt I hate malware
02:01:28FromDiscord<Elegantbeef> It's software whose soul purpose is to do malicious things
02:01:34FromDiscord<Elegantbeef> That's like asking why do you dislike a knife that has handle which is also a knife
02:02:05FromDiscord<taperfade> In reply to @heysokam "your mentality is kinda": Huh 😭
02:02:12FromDiscord<raynei486> see what I mean
02:02:20FromDiscord<raynei486> talking about malware is not recommended
02:02:33FromDiscord<taperfade> It was abt opera
02:03:03FromDiscord<raynei486> also I feel like you're around my age
02:03:06FromDiscord<Elegantbeef> talking about it is fine, it's the creation and dispersal that is bad
02:03:23FromDiscord<Elegantbeef> They said they were 15 before I believe
02:03:23FromDiscord<taperfade> In reply to @raynei486 "also I feel like": Im 15
02:03:41FromDiscord<raynei486> messing with people is fun, but learning the low level knowledge to understand how what you're doing works independently is even cooler
02:04:00FromDiscord<_gumbercules> https://media.discordapp.net/attachments/371759389889003532/1150250286322024509/giphy_1.gif
02:04:02FromDiscord<taperfade> Guess what
02:04:11FromDiscord<Elegantbeef> Chicken butt
02:04:15FromDiscord<taperfade> In reply to @raynei486 "messing with people is": Thats what i wna do
02:04:24FromDiscord<taperfade> I wna be smart
02:04:39FromDiscord<raynei486> start learning how operating systems work
02:04:41FromDiscord<raynei486> or networking
02:04:44FromDiscord<raynei486> or stuff like that
02:05:08FromDiscord<Elegantbeef> Quite literally make any non malicious software
02:05:14FromDiscord<raynei486> yep
02:05:23FromDiscord<raynei486> you can transform wanting to mess with people into something productive
02:05:28FromDiscord<taperfade> I did networking
02:05:33FromDiscord<Elegantbeef> A majority of malware can be tweaked ever so slightly to do something else that's productive
02:05:35FromDiscord<raynei486> I started with grabbing people's discord key with friends too...
02:05:36FromDiscord<taperfade> I understand ips and shit
02:05:47FromDiscord<taperfade> In reply to @raynei486 "I started with grabbing": Thats what im doing rn
02:05:50FromDiscord<taperfade> Lol
02:05:55FromDiscord<Elegantbeef> Ransomeware for instance is just encryption + backup
02:06:02FromDiscord<taperfade> Im a professional skid 😁
02:06:08FromDiscord<sOkam! 🫐> in other words, stop writing illegal junk that fucks up the very ecosystem that you are using↵and instead go learn something actually useful
02:06:15FromDiscord<raynei486> In reply to @Elegantbeef "Ransomeware for instance is": remove the mandatory payment = archive program
02:06:21FromDiscord<Elegantbeef> Quit saying go sokam, else they might go use go
02:06:24FromDiscord<Elegantbeef> Wait I said go
02:06:36FromDiscord<sOkam! 🫐> 😄
02:06:39FromDiscord<taperfade> Whats go
02:06:51FromDiscord<Elegantbeef> Keep the mandatory payment in raynei, it's just winrar now
02:06:59FromDiscord<raynei486> In reply to @taperfade "Im a professional skid": yeah and now is a good time to become smarter by understanding those exploits lol
02:07:09FromDiscord<taperfade> Thats what i wna do
02:07:22FromDiscord<taperfade> The reason i finally started to learn programming is bcs
02:07:25FromDiscord<taperfade> I used a rat
02:07:26FromDiscord<taperfade> Yk
02:07:34FromDiscord<taperfade> And the only thing i thought abt is
02:07:50FromDiscord<taperfade> " this is so cool i wna make something like that myself "
02:07:58FromDiscord<raynei486> In reply to @Elegantbeef "Keep the mandatory payment": 🧠🧠
02:08:06FromDiscord<raynei486> In reply to @taperfade "" this is so": yeah that's a good mindset
02:08:14FromDiscord<taperfade> Als
02:08:14FromDiscord<raynei486> well the making things part
02:08:26FromDiscord<taperfade> U said u are around my age ?
02:08:33FromDiscord<taperfade> Ur rlly smart
02:08:35FromDiscord<taperfade> Wow
02:08:39FromDiscord<raynei486> In reply to @taperfade "U said u are": yeah
02:08:45FromDiscord<raynei486> I'm also a high school student
02:08:58FromDiscord<taperfade> Also cool website :3
02:09:11FromDiscord<raynei486> In reply to @taperfade "Ur rlly smart": no I just put a lot of time into learning computers lol
02:09:12FromDiscord<taperfade> In reply to @raynei486 "I'm also a high": Idk what high school is im european
02:09:18FromDiscord<raynei486> oh dang
02:09:34FromDiscord<raynei486> it's the school after intermediate
02:09:37FromDiscord<raynei486> if you guys have that
02:09:42FromDiscord<raynei486> I'm in burger land
02:09:43FromDiscord<taperfade> Uhm
02:09:47FromDiscord<taperfade> Idk
02:09:56FromDiscord<Elegantbeef> Highschool is secondary
02:10:03FromDiscord<Elegantbeef> Also known as college in the UK iirc
02:10:22FromDiscord<raynei486> In reply to @Elegantbeef "Also known as college": wtf?
02:10:33FromDiscord<taperfade> In germany we hav kindergarten , school , then school but divided into 3 types and then work or studying
02:10:56FromDiscord<raynei486> In reply to @taperfade "Also cool website :3": thx
02:11:11FromDiscord<raynei486> In reply to @taperfade "In germany we hav": I guess I'm in the last type of school
02:11:12FromDiscord<taperfade> In reply to @Elegantbeef "Also known as college": Internet internet relay chat
02:11:33FromDiscord<raynei486> I'm in the grade level with 2 digits
02:11:46FromDiscord<taperfade> Wow
02:11:54FromDiscord<taperfade> Il in ninth grade
02:12:00FromDiscord<Elegantbeef> lol
02:12:11FromDiscord<taperfade> What
02:12:17FromDiscord<taperfade> Uhh
02:12:23FromDiscord<Elegantbeef> raynei's "2 digits" comment
02:12:23FromDiscord<taperfade> Tenth ?
02:12:36FromDiscord<taperfade> 7is tenth grade right
02:12:41FromDiscord<taperfade> Tenth sounds wrong
02:12:42FromDiscord<raynei486> In reply to @Elegantbeef "raynei's "2 digits" comment": anything to not let people know which one of the three it is
02:13:10FromDiscord<taperfade> Im guessing last one
02:13:28FromDiscord<Elegantbeef> Ontario Canada had 13th grade so uhh could even make it 4
02:14:27FromDiscord<raynei486> I'm in the most populous city of burger land
02:14:59FromDiscord<Elegantbeef> Nome Alaska?!
02:15:26FromDiscord<raynei486> yeah I enjoy having snow burned into my vision
02:15:47FromDiscord<raynei486> In reply to @taperfade "Tenth sounds wrong": nah you're right
02:15:52FromDiscord<Elegantbeef> It's quite a life to live in
02:15:59FromDiscord<Elegantbeef> Snow and -50 is grand
02:17:10FromDiscord<taperfade> Grand
02:17:53FromDiscord<raynei486> In reply to @Elegantbeef "Snow and -50 is": after this New York heatwave I'm really craving some snow
02:40:59*ttkap quit (Server closed connection)
03:22:51FromDiscord<raynei486> sent a code paste, see https://play.nim-lang.org/#ix=4FSX
03:23:00FromDiscord<raynei486> Is it an iterator called `items`?
03:30:42FromDiscord<intellij_gamer> [yup](https://nim-lang.org/docs/manual.html#iterators-and-the-for-statement-implicit-itemsslashpairs-invocations)↵And `pairs` is implicitly called when there are two variables
03:37:19FromDiscord<raynei486> thanks
03:39:59FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4FT5
03:40:11FromDiscord<jviega> Why's there a space before the ?
03:40:19FromDiscord<jviega> Does that mess it up?
03:40:36FromDiscord<sOkam! 🫐> why would it?
03:40:38FromDiscord<sOkam! 🫐> (edit) "https://play.nim-lang.org/#ix=4FT5" => "https://play.nim-lang.org/#ix=4FT6"
03:41:00FromDiscord<jviega> Dunno, odd spacing, and it's occasionally consequential. But try putting the params in parens
03:41:17FromDiscord<sOkam! 🫐> it has worked before like this, but it was in nimscript
03:41:23FromDiscord<sOkam! 🫐> now its compiled and its not being recognied
03:41:25FromDiscord<sOkam! 🫐> (edit) "recognied" => "recognized"
03:41:58FromDiscord<jviega> I always use parens except for code blocks, but my understanding is the functional style omit-the-parens things only works w/ one param
03:42:05FromDiscord<jviega> Because there are ambiguities
03:42:09*hernan quit (Server closed connection)
03:42:23FromDiscord<jviega> So it's prob not interpreting the way you expect
03:42:25*hernan joined #nim
03:42:52FromDiscord<sOkam! 🫐> like mentioned, it has worked before. and no, parenthesis are not helping, just tested
03:43:07FromDiscord<jviega> Damn :/
03:43:34FromDiscord<sOkam! 🫐> its basically not sending the parameter as an untyped
03:43:43FromDiscord<jviega> How is hello defined?
03:43:54FromDiscord<sOkam! 🫐> its not? that's a blank key
03:44:03FromDiscord<sOkam! 🫐> thats the point, that thing defines it inside
03:44:30FromDiscord<jviega> Well when you use the template it evaluates it
03:44:49FromDiscord<sOkam! 🫐> maybe i need a macro because its not nimscript, so no vm? 🤔
03:44:49FromDiscord<jviega> It generates the code implied by the template and if there's no 'hello' defined...
03:45:39FromDiscord<jviega> You'd have the same problem if the macro is used and hello is not defined
03:46:32FromDiscord<sOkam! 🫐> but i've used it like this before
03:47:10FromDiscord<sOkam! 🫐> thse are defining the symbols inside the template↵https://github.com/heysokam/wgpu/blob/279e2145e9e1e38a96b4a93402b7ccc8bdeb5eb8/wgpu.nimble#L70-L88
03:47:13FromDiscord<jviega> Like how?? Nothing like that should work, it doesn't even make sense to instantiate a template with something that the compiler can't understand
03:47:26FromDiscord<sOkam! 🫐> how does that code work then?
03:47:48FromDiscord<jviega> Because of the astToStr call
03:47:56FromDiscord<_nenc> sent a code paste, see https://play.nim-lang.org/#ix=4FT8
03:48:35FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4FT9
03:48:43FromDiscord<sOkam! 🫐> probably helps little, which is why i didn't post it
03:48:45FromDiscord<jviega> Oh easy, don't redefine name
03:48:49FromDiscord<sOkam! 🫐> because it has a lot of stuff in it
03:49:10FromDiscord<sOkam! 🫐> In reply to @jviega "Oh easy, don't redefine": im not trying to redefine it, but use it. how do you do that?
03:49:27FromDiscord<sOkam! 🫐> i want to create a let that has that untyped symbol. like that's the point of the template
03:50:15FromDiscord<jviega> Well, I think there's a way to do it in a template, but I know in a macro how to to it 🙂
03:50:56FromDiscord<jviega> You basically can quote do: `name`
03:50:57FromDiscord<sOkam! 🫐> the problem with a macro is creating all of those contents inside manually with AST generation 😔
03:51:06FromDiscord<jviega> Put name in backticks
03:51:10FromDiscord<sOkam! 🫐> thats why ive been trying to avoid it
03:51:18FromDiscord<sOkam! 🫐> oh.. good catch, let me try
03:51:34FromDiscord<jviega> Eh, quote do tends to make your whole macro look more or less like a template
03:51:47FromDiscord<sOkam! 🫐> nah still fails the same way
03:52:08FromDiscord<jviega> Even if constructing lists of nodes, I tend to use mainly quote do just because people can't read tree construction easily
03:52:24FromDiscord<sOkam! 🫐> how would you use quote do here?
03:52:26FromDiscord<jviega> There might not be a way in a template
03:52:45FromDiscord<sOkam! 🫐> i found it really confusing to use the last time i tried it, but maybe i was just noob-ier back then
03:52:50FromDiscord<sOkam! 🫐> can you give an example?
03:53:30FromDiscord<jviega> Hang on, let me try to dig something up for you
03:54:19FromDiscord<jviega> Here's one of mine:
03:54:25FromDiscord<jviega> sent a code paste, see https://play.nim-lang.org/#ix=4FTa
03:54:48FromDiscord<jviega> Creates a proc with the name I pass in on the first parameter.
03:55:06FromDiscord<jviega> And calls the function in the second parameter
03:58:47FromDiscord<_nenc> maybe you can use `expandMacros` to check the generated code?
04:00:07FromDiscord<jviega> Helpful?
04:10:23*deadmarshal_ quit (Remote host closed the connection)
04:10:30FromDiscord<sOkam! 🫐> In reply to @jviega "Helpful?": will try it
04:11:44FromDiscord<_nenc> sent a code paste, see https://play.nim-lang.org/#ix=4FTk
04:13:02FromDiscord<jviega> Well, example() may be inferred to be runtime for some reason, if you want you could put it in a static block and see if that works
04:44:39*deadmarshal_ joined #nim
04:47:06NimEventerNew thread by aiac: Does seq have a method to get mutable ref element?, see https://forum.nim-lang.org/t/10473
04:49:39FromDiscord<sOkam! 🫐> good ideas, will try them ✍️
04:51:24FromDiscord<sOkam! 🫐> seems like removing the static is behaving better
04:51:33madpropshi nim
04:53:17FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4FTt
04:53:46FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4FTu
04:54:54FromDiscord<sOkam! 🫐> (edit) "https://play.nim-lang.org/#ix=4FTu" => "https://play.nim-lang.org/#ix=4FTv"
04:58:34FromDiscord<leorize> you have to either rename the `run` and `force` parameters of the template or don&#x27;t use `run = run` expressions in `build` function call
04:59:02FromDiscord<leorize> anything that refers to a template parameter is replaced by it
04:59:38FromDiscord<leorize> sent a code paste, see https://play.nim-lang.org/#ix=4FTw
05:10:35*_________ quit (Server closed connection)
05:10:58*_________ joined #nim
05:18:43FromDiscord<sOkam! 🫐> ohhh! true! didn't see that lol
05:19:01FromDiscord<sOkam! 🫐> classic sokam brain missing tiny but crucial details 🙈
05:19:36FromDiscord<jviega> That's what I was trying to explain to you with name getting clobbered, sorry I explained it poorly 😦
05:20:33FromDiscord<sOkam! 🫐> nah honestly my brain works in really obtuse ways sometimes. i blame it on myself
05:34:23*def- quit (Quit: -)
05:35:28*def- joined #nim
05:45:25FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4FTF
05:45:53FromDiscord<Phil> (edit) "https://play.nim-lang.org/#ix=4FTF" => "https://play.nim-lang.org/#ix=4FTG"
05:49:36FromDiscord<Phil> At the roots I want to figure out the fields on a variant that are always there (bla and kind).↵I can of course do that manually by walking my way through the nnkTypeDef node to the nnkRecList Node, iterate over that and take all the identDefs Node + extract the IdentDefs Node from RecCase
05:52:40FromDiscord<odexine> thatll be fun for when you have to find the non-discriminated fields on an object with more than 1 discriminator
05:53:40FromDiscord<odexine> sent a code paste, see https://play.nim-lang.org/#ix=4FTI
05:53:55FromDiscord<odexine> i wonder if this even works in nim, ive never tried
05:54:08FromDiscord<Elegantbeef> https://github.com/beef331/micros/blob/master/src/micros/definitions/objectdefs.nim#L174-L176 closest I've got↵(@Phil)
05:54:44FromDiscord<odexine> sounds like its good enough
05:56:11FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4FTJ
05:56:19FromDiscord<Phil> In reply to @Elegantbeef "https://github.com/beef331/micros/blob/master/src/m": Taking a look at it
05:57:01FromDiscord<Phil> I don't think I understand
05:57:53FromDiscord<Phil> Ohh you make fetching the recList super easy though, that's sweet
06:00:38*ntat joined #nim
06:09:53FromDiscord<Elegantbeef> I mean you shouldnt even really need the reclist
06:10:02FromDiscord<Elegantbeef> The fields iterator is there for you
06:17:58FromDiscord<Phil> Yeah but that hands me everything and I want to exclude the variant fields (from my example str and num)
06:19:03FromDiscord<Phil> Excluding the fields that I can't 100% know for sure are available at compiletime (because they're only available if the object has a specific kind value) is the goal
06:20:14FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4FTR
06:21:14FromDiscord<Phil> Ahhh that's how you're supposed to use fieldConditions for this one
06:21:18FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4FTS
06:21:23FromDiscord<Phil> Now what actually is happening in that line of code?
06:21:55FromDiscord<Elegantbeef> What?
06:22:17FromDiscord<Elegantbeef> `ObjectDef` has it's own `fields` iterator that yields all the identdefs of fields
06:22:28FromDiscord<Elegantbeef> https://github.com/beef331/micros/blob/master/src/micros/definitions/objectdefs.nim#L229
06:22:47FromDiscord<Phil> Oh, that is fine, more I don't get the fieldconditions line
06:23:06FromDiscord<Elegantbeef> fieldConditions returns the conditions required for a field to be accessible
06:23:21FromDiscord<Elegantbeef> you pass in the object definition and the `NimName or string`
06:23:42FromDiscord<Phil> Oh and that is only straight up true if it's not an object variant, because otherwise there is a condition that kind must have a certain value?
06:23:53FromDiscord<Phil> (edit) "variant," => "variant field in the case block,"
06:24:01FromDiscord<Elegantbeef> Right
06:24:02FromDiscord<Elegantbeef> if there is a condition it'd be like `true and x in y` iirc
06:24:11FromDiscord<Elegantbeef> It also might just be empty if it's true
06:24:15FromDiscord<Elegantbeef> I do not recall again
06:24:51FromDiscord<Elegantbeef> I believe it's supposed to always return true though so you can just embed the result in any ast
07:25:30*jtbx joined #nim
07:42:15*azimut quit (Ping timeout: 246 seconds)
08:20:18FromDiscord<xtrayambak> Are there any complete wlroots bindings in Nim? omentic's bindings are incomplete and not enough to write an entire compositor.
08:31:35FromDiscord<nnsee> no, but you can probably futhark it
08:51:08*jtbx quit (Remote host closed the connection)
09:15:16*krux02 joined #nim
09:52:28FromDiscord<taperfade> im so bored
09:52:34FromDiscord<taperfade> idk what my next project should be
09:52:35FromDiscord<taperfade> ngl
09:58:23FromDiscord<ezquerra> Maybe you could work on improving nim's VS code support? 🙂
10:00:11FromDiscord<taperfade> why
10:00:17FromDiscord<taperfade> nim works fine on vscode
10:04:08FromDiscord<odexine> it doesnt work as good as most people want it ot
10:04:10FromDiscord<odexine> (edit) "ot" => "to"
10:05:47FromDiscord<griffith1deadly> ye
10:05:51FromDiscord<_nenc> it can't complete standard library name ;-;
10:06:00FromDiscord<_nenc> well, i think this is the job of nimsuggest
10:08:44FromDiscord<griffith1deadly> i love nimsuggest 100 processes and 100% eating cpu
10:09:21FromDiscord<griffith1deadly> If you don't have this, you can't consider yourself a nim programmer.
10:10:16FromDiscord<ezquerra> It definitely does not work fine on VS Code, at least not compared to other languages (e.g. python or C++)
10:11:10FromDiscord<griffith1deadly> all right bad support for template and macro, but the rest kills me.
10:13:15FromDiscord<dlesnoff> In reply to @taperfade "idk what my next": I have another proposal of project, a small but important enhancement of std/maths
10:13:24FromDiscord<Phil> Hmm I wonder what the best syntax for flat-mapping a seq of seqs is
10:13:57FromDiscord<griffith1deadly> In reply to @griffith1deadly "all right bad support": but for the record, even with all that, i still love nim, and think he's the best one out there
10:15:12FromDiscord<odexine> In reply to @isofruit "Hmm I wonder what": wdym "best syntax"
10:15:39FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4FUV
10:15:50FromDiscord<Phil> I kinda don't like creating the var
10:15:52FromDiscord<pixel_nerd_linux> sent a long message, see http://ix.io/4FUW
10:16:28FromDiscord<dlesnoff> In reply to @taperfade "idk what my next": You could finish this small PR (add `^` exponent operator for floating-point types). Should be easy, I never got the time to finish it though. It just requires to write a function to test whether a float represent an integer.
10:16:29FromDiscord<odexine> you can probably use foldl
10:17:16FromDiscord<odexine> `a.foldl(a & b, newSeq[T]())`
10:17:32FromDiscord<odexine> i think
10:17:55FromDiscord<odexine> a at the start and a after the parens are distinct, i just used the name you used
10:18:03FromDiscord<odexine> foldl requires the names to be a and b
10:18:15FromDiscord<Phil> In reply to @pixel_nerd_linux "Hi everyone! I'm new": There is!↵What you're looking for is a compiler flag that auto-imports specific modules (aka .nim files) that you define by file-path:↵https://nim-lang.org/docs/nimc.html↵Do a CTRL+F search for `--import:PATH`
10:19:39FromDiscord<Phil> A non-compiler-flag way would be to use nimscript as hinted at in the description of that flag. ↵That is more flexible and powerful but requires you to learn/deal a bit with nimscript which is a subset of nim and is used to influence your compilation if you make use of it
10:20:39FromDiscord<pixel_nerd_linux> In reply to @isofruit "A non-compiler-flag way would": Thanks for the answer, I'll look into it!
10:21:00FromDiscord<Phil> In reply to @pixel_nerd_linux "Thanks for the answer,": I highly encourage you to utterly ignore everything you see about include btw. ↵I'm mostly mentioning it because that flag is listed right under the import flag
10:21:27FromDiscord<taperfade> u guys are literally telling a disabled person to drive a formel1 car
10:21:31FromDiscord<taperfade> i cant do that
10:21:36FromDiscord<taperfade> 😭
10:22:30FromDiscord<Phil> The choices are endless, but a project that seems interesting to you can ultimately only be come up with by you 😛
10:23:34FromDiscord<Phil> There's chances to do webdev, native GUI, you could write a Snake-clone for the terminal aka gamedev, all a learning experience
10:25:00FromDiscord<_nenc> as a beginner I have made 2048 and Conway Life with Nim 🙂
10:26:55FromDiscord<choltreppe> is there a tool to clean up imports in a nim project? something that deletes all unused imports in all sourcefiles
10:27:08FromDiscord<odexine> nope
10:29:21FromDiscord<choltreppe> ok thanks
10:29:43FromDiscord<odexine> actually you could probably fudge it
10:29:51FromDiscord<odexine> nim does warn about unused imports
10:30:09FromDiscord<odexine> just make a tool that then removes those lines or part of the import
10:33:26FromDiscord<Phil> In reply to @pixel_nerd_linux "Thanks for the answer,": Hmm I wanted to post you a useage example but I can't seem to get the absolute paths right.↵There's a fair few examples to get auto-imports of std libs to work but other than that even I am running into trouble for arbitrary modules within the project
10:34:00FromDiscord<Phil> Ah there we go, it works with full absolute paths, no `~`
10:35:50FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4FV1
10:36:30FromDiscord<Phil> the `.nim` is optional btw, you can also just use `/home/philipp/dev/playground/src/string2`
10:37:45FromDiscord<Phil> Note that I highly suggest writing yourself a nimble task for compiling because typing out all those flags by hand (or searching through your terminal for the command with all the flags) gets old fast
10:48:36FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4FVc
10:53:09FromDiscord<odexine> In reply to @odexine "`a.foldl(a & b, newSeq[T]())`": @Phil ?
10:53:51FromDiscord<Phil> Ah, got lost in the earlier thingy wanting to make sure I wasn't lying about the import flag bit, one sec
10:54:28FromDiscord<Phil> In reply to @_nenc "as a beginner I": That is actually sick! Conways game of life is suck a neat little thing
10:54:46FromDiscord<Phil> In reply to @odexine "`a.foldl(a & b, newSeq[T]())`": You can use & to concat seqs?
10:55:11FromDiscord<odexine> what do you think you were using when doing &=?
10:56:09FromDiscord<odexine> its going to be slower because of copying though compared to your var
10:56:12FromDiscord<Phil> Oh that was copy pasted from a 3 weeks old github issue discussing adding a flatMap proc to sequtils
10:56:44FromDiscord<Phil> I didn't think through that code at all 😄
10:56:58FromDiscord<odexine> xd
11:00:52FromDiscord<Phil> Awwww I get the AST of that operation instead of the result because I'm using it within a macro
11:32:24*azimut joined #nim
11:48:51FromDiscord<taperfade> Im thinking abt making something to remotely browse files
11:49:35FromDiscord<taperfade> Bcs i think just listing files etc is pretty easy
12:11:46FromDiscord<System64 ~ Flandre Scarlet> Hi, is there a reliable website that compares benchmarks between Nim, C, Java and Python please?
12:12:17FromDiscord<kingterrytheterrible12> In reply to @sys64 "Hi, is there a": No
12:12:32FromDiscord<kingterrytheterrible12> all the websites i saw used SIMD in C and didnt in nim
12:13:36*lumidify_ quit (Server closed connection)
12:13:52*lumidify joined #nim
12:13:55FromDiscord<System64 ~ Flandre Scarlet> In reply to @kingterrytheterrible12 "all the websites i": Oof, so I have to do the benchmarks myself?
12:15:18FromDiscord<kingterrytheterrible12> In reply to @sys64 "Oof, so I have": write nbody in C nim and python
12:15:21FromDiscord<kingterrytheterrible12> benchmark them all
12:15:30FromDiscord<System64 ~ Flandre Scarlet> nbody?
12:15:35FromDiscord<kingterrytheterrible12> the nbody problem
12:15:53FromDiscord<kingterrytheterrible12> nbody simulation
12:17:16FromDiscord<System64 ~ Flandre Scarlet> https://en.wikipedia.org/wiki/N-body_simulation↵That?
12:18:20FromDiscord<kingterrytheterrible12> yes
12:20:19FromDiscord<System64 ~ Flandre Scarlet> https://github.com/kostya/benchmarks↵And this?
12:24:37FromDiscord<kingterrytheterrible12> In reply to @sys64 "https://github.com/kostya/benchmarks And this?": idk
12:25:24FromDiscord<odexine> why do you want to see benchmark comparisons?
12:37:22FromDiscord<Phil> Ugh, mapster has grown enough to warrant a nimibook, which means yet more doc writing >_>
12:44:56FromDiscord<System64 ~ Flandre Scarlet> In reply to @odexine "why do you want": For my report↵I claim Nim is nearly as fast as C, Python is slower and so on↵So I need data to prove that
12:45:15FromDiscord<odexine> those claims are kind of nonsense i would argue
12:45:17FromDiscord<System64 ~ Flandre Scarlet> It's for my final school work
12:45:19FromDiscord<odexine> fast on what terms
12:46:15FromDiscord<odexine> speed is not a property of the language, max speed is but that's essentially useless when we're comparing nim to c to rust to <insert other runtimes here> since theyre so similar in ability already
12:46:44FromDiscord<odexine> and also how would one measure or reify max speed?
12:47:18FromDiscord<odexine> general speed is more dictated by the ability of the programmer
12:48:09FromDiscord<System64 ~ Flandre Scarlet> In reply to @odexine "general speed is more": so how can I prove compiled language is faster than JIT or interpreted, in a scientific way?
12:48:28FromDiscord<odexine> you dont because they arent xd
12:48:41FromDiscord<System64 ~ Flandre Scarlet> the school needs data :/
12:49:05FromDiscord<odexine> yes and you cant get data because the claim is either vague or wrong in the first place
12:49:06*ntat quit (Quit: leaving)
12:50:13FromDiscord<System64 ~ Flandre Scarlet> In reply to @odexine "yes and you cant": well, we should say comparing speed on the exact same algorithm
12:50:35FromDiscord<odexine> its not whether a runtime is compiled, jit, interpreted, etc that makes the speed either; there's too many factors
12:50:46FromDiscord<odexine> that's not the only factor that you need to freeze though
12:51:01FromDiscord<odexine> same algorithm? sure, with what coding style? same paradigm?
12:51:15FromDiscord<odexine> what happens if you cant have the same paradigm?
12:53:35NimEventerNew Nimble package! stdx - A collection of extra utilities for Nim., see https://github.com/jjv360/nim-stdx
12:54:31FromDiscord<xtrayambak> Can someone try to make choosenim work on NixOS? It's really frustrating since it isn't designed to work around an unconventional Unix file system. I would've done it myself but I'm pretty new to NixOS so I'm still learning that.
12:56:52FromDiscord<odexine> is there a reason you want to use choosenim on nixos?
13:11:50FromDiscord<System64 ~ Flandre Scarlet> In reply to @odexine "its not whether a": So what should I say? Should I avoid to claim Nim is nearly as fast as C?
13:12:13FromDiscord<odexine> if you're being scientifically rigorous, yes
13:13:00FromDiscord<odexine> well if you're being PR-ey then sure and give some examples, but that's not something to put for class like idk science or whatever
13:15:42FromDiscord<ieltan> In reply to @xtrayambak "Can someone try to": Use Nix to change the version of Nim used
13:16:24FromDiscord<ieltan> that's the point of using Nix, or else you've bought into some tech you don't actually want to use
13:16:45FromDiscord<ieltan> and i dont think it's Nim fault :p
13:17:29FromDiscord<odexine> only problem with nim's nix packages are that the only two versions you can choose are 1.6 latest and 2 latest
13:18:16FromDiscord<odexine> youd have to copy the nix file and change the versions & hashes then build it to get the other ones i think
13:20:37FromDiscord<ieltan> In reply to @odexine "yes and you cant": In my opinion, I kinda agree but when you're asked to provide "proof" then you do not have to care much about the "coding style, paradigm, etc" except for the algorithm.
13:21:18FromDiscord<odexine> i would say the paradigm has performance implications though
13:22:21*jmdaemon quit (Ping timeout: 258 seconds)
13:27:50FromDiscord<ieltan> sent a long message, see http://ix.io/4FW1
13:28:00FromDiscord<ieltan> (edit) "http://ix.io/4FW1" => "http://ix.io/4FW2"
13:28:39FromDiscord<odexine> it depends on the school i guess. i'd be absolutely roasted about this project had i proposed it in my highschool days
13:30:58*junaid_ joined #nim
13:33:50FromDiscord<ieltan> Maybe it would help to highlight how capable the language is ? The reason why comparing programming languages is ridiculous in the first place is because it has become a game of "look at how fast my language is !!!" when using SIMD or some other unholy asm inlining. "python can be as fast as C by using C extensions !" but that says nothing about how CAPABLE the language is on it's own to produce fast programs idiomatically
13:36:28FromDiscord<odexine> that would be better yes
13:38:08FromDiscord<ieltan> For example I would say "Nim compiles to native code, has an opt-out GC and has move semantic and RAII like C++ which can be used to optimize copies". IMO those are the main features i would highlight to show Nim can be really fast. But if you really need to provide numbers I don't know how you're gonna do it the proper way without spending hours at it, precious hours that can be better spent in other important part of the project
13:39:59FromDiscord<xtrayambak> In reply to @ieltan "Use Nix to change": Nix's packaging of Nim is v1.6
13:40:07FromDiscord<xtrayambak> Even unstable doesn't ship the latest version
13:40:27*adium_ quit (Server closed connection)
13:41:35FromDiscord<ieltan> the beauty of Nix is that you can make a derivation that does have the latest version
13:41:47*adium joined #nim
13:43:19FromDiscord<ieltan> I think of Nix derivations as "PKGBUILD" files, pretty easy to hack
13:43:22FromDiscord<xtrayambak> I'm still learning Nix and I haven't gotten used to it, but I definitely like the idea
13:44:33FromDiscord<odexine> In reply to @xtrayambak "Even unstable doesn't ship": it does
13:44:34FromDiscord<odexine> nim2
13:44:50FromDiscord<odexine> nixpkgs unstable has `nim2`
13:45:47FromDiscord<ieltan> why did they a seperate derivation for it though ?
13:45:59FromDiscord<ieltan> it's not python lol
13:47:43FromDiscord<odexine> dont ask me, i dont really know
13:47:57NimEventerNew post on r/nim by slavjuan: Nim shell.nix config?, see https://reddit.com/r/nim/comments/16f0pze/nim_shellnix_config/
13:47:59FromDiscord<odexine> prolly because its standard to do so, it's a major version change after all
13:48:17FromDiscord<odexine> why so many people using nix and nim suddenly
13:48:18FromDiscord<ieltan> lol
13:53:47FromDiscord<ieltan> i think atlas is a reallly good fit for Nim + Nix right now
13:58:24FromDiscord<odexine> nix has tools to integrate with nimble
15:11:36FromDiscord<taperfade> huh
15:11:47FromDiscord<taperfade> i thought nimble was part of yk nim
15:14:04krux02@ieltan: Compiling to native code isn't enough to sell tha tsomething is high performance. E.G. Javascript eventually compiles to something native as well through jit. The key difference here is control of memory layout, like C and C++. I can't stress enough how important that is to get high performance.
15:16:58FromDiscord<raynei486> In reply to @taperfade "i thought nimble was": it is
15:17:16krux02Regarding nix/nim usage. A wild guess here, but it might be that the nix packaging really aids to write stable nim packages. But it's just a wild guess, I don't use nix. Other than that I think the words nix and nim just sound related even though they are not
15:52:56*junaid_ quit (Remote host closed the connection)
16:09:30*ntat joined #nim
16:36:57FromDiscord<pixel_nerd_linux> sent a code paste, see https://paste.rs/Ha3SI
16:38:39FromDiscord<Phil> In reply to @pixel_nerd_linux "Thanks, that seems to": What exactly is the usecase, you are the end-application or is this a lib for others?
16:40:27FromDiscord<Phil> Mostly asking because I'm currently not seeing how a when block here does what you want ^^
16:40:27*ntat quit (Quit: leaving)
16:41:06FromDiscord<Chronos [She/Her]> In reply to @pixel_nerd_linux "Thanks, that seems to": People typically just add a dir for their private code, and if they use it, it's a case of "don't expect support"
16:41:25FromDiscord<Phil> Keep in mind that only one code-block within a when-else-statement exists at a time.↵You can't, during compilation, have a proc be private and public at the same time
16:41:56FromDiscord<Phil> (edit) "time.↵You" => "time. And "at a time" means "during one whole compilation"↵You"
16:46:35FromDiscord<pixel_nerd_linux> In reply to @isofruit "Keep in mind that": Ah, I see. So my idea wouldn't work then if it has only one visibility. It's for a library that others should be able to use.
16:47:14FromDiscord<Phil> Then my suggestion may actually not work well for you, as requiring your users to add an import flag is kinda clunky
16:47:48FromDiscord<pixel_nerd_linux> In reply to @chronos.vitaqua "People typically just add": That seems to be a practical solution. I could put my private code in a folder called "private" and use it inside my project.
16:48:07FromDiscord<Phil> In reply to @pixel_nerd_linux "That seems to be": That is in fact common practice
16:48:29FromDiscord<Phil> In the nim community I mean
16:50:07FromDiscord<pixel_nerd_linux> In reply to @isofruit "That is in fact": Perfect, thanks!↵The nim community is really nice and helpful 😉
16:50:59FromDiscord<Chronos [She/Her]> Does Postgres have a way to store custom data types oooor?
16:51:10FromDiscord<Chronos [She/Her]> If so, I'll prolly make an int128 data type tbh
16:51:24FromDiscord<Chronos [She/Her]> Also if Debby integrates well with that
16:51:32FromDiscord<Chronos [She/Her]> But tbf prolly doesn't so pain
16:51:47FromDiscord<Phil> In reply to @pixel_nerd_linux "Perfect, thanks! The nim": Happy to help 😉↵A nice way to give back can always be to document your question and answers you found in a Stack Overflow question so that others have an easier time finding an answer to said question if they run into it.↵It's what I typically do ^^
16:54:31FromDiscord<Phil> In reply to @chronos.vitaqua "Does Postgres have a": I mean, you can just store raw bytes in postgres and parse that to whatever int128 types you have
16:54:57FromDiscord<Phil> I assume debby has some way of supporting mapping of bytes to a custom nim type by defining some kind of hook proc
16:55:04FromDiscord<Chronos [She/Her]> Hm perhaps?
16:55:09FromDiscord<Chronos [She/Her]> Don't think so tho
16:57:20FromDiscord<Phil> In reply to @chronos.vitaqua "Don't think so tho": Ah nevermind, you'll have to use string columns to store the seq[byte] as a JSON string
16:57:25FromDiscord<Phil> This may not be terribly fast as a result
16:57:56FromDiscord<Phil> Debbies solution to dealing with any kind of non-standard type seems to be to just json-y-fy it
16:58:39FromDiscord<Phil> https://github.com/treeform/debby#json-fields↵So basically just make sure your thingy is a custom type and provide sql parse and dump hooks for it
16:58:44FromDiscord<Chronos [She/Her]> https://treeform.github.io/debby/debby/common.html#Bytes ooh
16:59:38FromDiscord<Phil> Hah, seems like treeform anticipated this usecase but still stores it as strings 😛
16:59:49FromDiscord<Phil> ` of "Bytes": "TEXT"`
17:00:01FromDiscord<Phil> Or rather stores it in a text column
17:00:24FromDiscord<Phil> No wait, that's for mysql, postgres gets to use a bytea column
17:00:31FromDiscord<Chronos [She/Her]> Hm
17:00:32FromDiscord<Phil> So may actually have tolerable speed
17:00:32FromDiscord<Chronos [She/Her]> Ooh
17:01:11FromDiscord<Phil> See, a solution for everything 😄
17:01:30FromDiscord<Chronos [She/Her]> Useful :D
17:02:50FromDiscord<Chronos [She/Her]> I wonder why it's just a distinct string tho and not a seq[byte] or even openArray[byte]
17:03:15FromDiscord<Chronos [She/Her]> Annnnd why it's not a 'BLOB' on sqlite3, that's just odd to me but maybe I don't get it
17:07:40FromDiscord<Phil> In the end, what is a string but a seq-byte with a specific interpretation
17:08:16FromDiscord<Phil> Likely easier to deal with in jsony
17:08:59FromDiscord<Chronos [She/Her]> Yeah fair enough lol
17:18:16FromDiscord<Chronos [She/Her]> Is there a reason I should use protobuf 3 instead of protobuf 2? Or 8any other format?
17:18:22FromDiscord<Chronos [She/Her]> (edit) "8any" => "any"
17:18:34FromDiscord<Chronos [She/Her]> Even rolling my own would be easy
17:19:05FromDiscord<odexine> well what reason would you have to roll your own instead of use protobuf
17:20:23FromDiscord<Phil> Go with what's easiest, protobuf is really dope for reducing the amount of bytes that need to be carried around but if/how much that benefits you should be weighed against how much effort using it is.↵If it's effortless, take the free performance bump. If it isn't, check whether the benefits actually matter in your case and make the effort worth it.
17:20:45FromDiscord<Chronos [She/Her]> In reply to @odexine "well what reason would": Guarantee that all the data will be there, since protobuf 3 has optional fields for every defined field
17:21:08FromDiscord<Chronos [She/Her]> Though PMunch's protobuf library handles that so eh
17:21:15FromDiscord<Chronos [She/Her]> No real reason to not use it
17:21:19FromDiscord<odexine> In reply to @chronos.vitaqua "Guarantee that all the": theres a reason protobuf 3 has optionals
17:21:39FromDiscord<odexine> its meant for on-wire stable ABI data formats
17:21:58FromDiscord<odexine> fields can be added to new versions of your data without breaking old versions
17:24:01*Guest65 joined #nim
17:27:06FromDiscord<Chronos [She/Her]> Oh interesting
17:27:22FromDiscord<Chronos [She/Her]> Hm
17:27:32FromDiscord<Chronos [She/Her]> How does that work tho? I'll prolly use it tho
17:30:46*Guest65 quit (Quit: Client closed)
17:32:33FromDiscord<odexine> Basically fields have an ID which dictates where it goes in the format
17:32:48FromDiscord<odexine> The library will ignore IDs that the schema doesn’t list
17:33:00FromDiscord<odexine> Once you add a field with a specific ID you mustn’t change it
17:33:24FromDiscord<odexine> If you want to change it the idea would be to change the field and use another ID I think
17:33:45FromDiscord<odexine> That would mean though that your new programs can’t speak to old programs so yeah it’s up to you I guess
17:33:51FromDiscord<Phil> I am somewhat surprised not even treeform got around a mandatory id field instead of enabling that to be customized in one way or another
17:36:21FromDiscord<Chronos [She/Her]> Hm
17:36:39FromDiscord<Chronos [She/Her]> May just roll my own then? Since if I break the API, I'll bump the major version anyway
17:36:59FromDiscord<Chronos [She/Her]> Though I am providing a JSON-based API at the start so
17:37:03FromDiscord<Chronos [She/Her]> That'll come later
17:39:38*azimut quit (Remote host closed the connection)
17:41:28FromDiscord<Chronos [She/Her]> Rn I'm tryna figure out how tokens would work with asymmetric encryption
17:41:55FromDiscord<Chronos [She/Her]> Sigh, pain
17:44:47*azimut joined #nim
17:45:58FromDiscord<kingterrytheterrible12> Is nim abi stable
17:46:08FromDiscord<kingterrytheterrible12> How do i even bind nim to other langs
17:48:53FromDiscord<raynei486> In reply to @kingterrytheterrible12 "Is nim abi stable": as stable as the C ABI
17:49:20FromDiscord<raynei486> actually idk
17:49:27FromDiscord<raynei486> In reply to @kingterrytheterrible12 "How do i even": through FFI
17:49:48FromDiscord<raynei486> just look for foreign function interface in the manual
17:50:42*ntat joined #nim
18:10:58*ntat quit (Quit: leaving)
18:28:07FromDiscord<Nelson> hello nerds!
18:28:38FromDiscord<Nelson> I am a zig+c99+lua user with a special focus on writing game engines, and recently I got to actually try nim
18:29:01FromDiscord<Nelson> what a disgusting language, i love everything about it, genuinely, i havent had this much fun with a language for so so long
18:30:56FromDiscord<Nelson> i was just going to ask something, how can i turn a constant string into a pointer? something like a zero-delimited char\, or a cstring
18:30:56FromDiscord<Nelson> i was just going to ask something, how can i turn a constant string into a pointer type? something like a zero-delimited char\, or a cstring
18:31:48FromDiscord<raynei486> constant string as in a string literal?
18:32:26FromDiscord<Nelson> I am reading a file through splurt↵(@raynei486)
18:32:45FromDiscord<Nelson> (by the way, i fucking love that name)
18:32:47FromDiscord<Nelson> it's a
18:33:12FromDiscord<Nelson> imagen.png https://media.discordapp.net/attachments/371759389889003532/1150499230545350766/imagen.png
18:35:36FromDiscord<demotomohiro> !eval echo cstring static staticRead currentSourcePath()
18:35:36NimBotCompile failed: <no output>
18:36:05FromDiscord<Nelson> it's such a funky name
18:36:09FromDiscord<Nelson> slurp
18:36:14FromDiscord<Nelson> genius design.
18:37:19FromDiscord<raynei486> what is `slurp` returning?
18:37:35FromDiscord<Nelson> regular ass string↵(@raynei486)
18:37:51FromDiscord<raynei486> but it looks like it's reading memory hmmmm
18:37:52FromDiscord<Nelson> just a string
18:37:52FromDiscord<Nelson> imagen.png https://media.discordapp.net/attachments/371759389889003532/1150500406171025558/imagen.png
18:38:00FromDiscord<Nelson> with, "no side effect."
18:38:14FromDiscord<demotomohiro> In reply to @Nelson "I am reading a": How about to `raw.cstring` instead of `unsafeAddr(raw)`
18:38:15FromDiscord<griffith1deadly> In reply to @Nelson "just a string": you can turn string to cstring
18:38:18FromDiscord<raynei486> oh it's in the system I've never heard of it
18:38:38FromDiscord<raynei486> but yeah you can just convert to cstring
18:38:40FromDiscord<Nelson> oh lmoa thanks↵(@griffith1deadly)
18:38:52FromDiscord<Nelson> boom! problem solved
18:38:52FromDiscord<Nelson> thanks everyone!
18:39:23FromDiscord<griffith1deadly> cstring it just ptr UncheckedArray[char] as i recall
18:39:32FromDiscord<Nelson> wait a second, let me guess
18:39:49FromDiscord<Nelson> whenever you have a function or method like...↵↵proc thing(sus\: string, ...)\: ...
18:39:53FromDiscord<Nelson> sent a long message, see http://ix.io/4FXE
18:39:58FromDiscord<Nelson> that's kind of cursed but also pretty cool
18:40:09FromDiscord<griffith1deadly> In reply to @Nelson "you can just... do": yes
18:40:34FromDiscord<raynei486> In reply to @Nelson "that's kind of cursed": it's basically equivalent to fake OOP in C with a nicer syntax
18:40:40FromDiscord<Phil> In reply to @Nelson "you can just... do": Uniform Function Call Syntax
18:40:47FromDiscord<demotomohiro> https://nim-lang.org/docs/manual.html#procedures-method-call-syntax
18:41:04FromDiscord<Phil> thing(x) is the same as x.thing() is the same as x.thing is the same as thing x
18:41:08FromDiscord<Nelson> if i had to simplify my experience with nim so far to three words, it would be "cursed but cool"
18:42:42FromDiscord<raynei486> It's C++ with a nicer syntax IMO
18:43:01FromDiscord<Nelson> i dont like thinking of it that way, not a fan of C++↵(@raynei486)
18:43:30FromDiscord<griffith1deadly> sent a long message, see http://ix.io/4FXF
18:43:49FromDiscord<Phil> Ah yes, case insensitivity and underscore insensitivity
18:44:15FromDiscord<Nelson> for me, it feels like if pascal did hardcore drugs.
18:44:16FromDiscord<Nelson> yeah i know that, it's also that kind of thing that disturbed me at first, but now i feel it's a quite nice feature↵(@griffith1deadly)
18:44:41FromDiscord<Nelson> hey btw, is there any lightweight wasm interpreter written in nim or usable through nim?↵i am working on a fantasy console and i wanted something sandboxable, probably wasm32 without the posix stuff
18:45:05FromDiscord<raynei486> In reply to @Nelson "i dont like thinking": C++ is still best when it comes to interfacing with C↵But I wouldn't start a new project with it
18:45:42FromDiscord<pmp_p> In reply to @Nelson "hey btw, is there": you have wasm3 and more active now toywasm, wasm3 already has some nim support
18:45:47FromDiscord<Nelson> i just dont like the average C++ code lol, not a fan of inheritance nor cryptic, unfun names myself↵(@raynei486)
18:46:03FromDiscord<Nelson> that's so cool!
18:46:04FromDiscord<Nelson> heyyyyyyyyyyyyyyyyyyy↵(@pmp_p)
18:46:19FromDiscord<pmp_p> (edit) "In reply to @Nelson "hey btw, is there": you have wasm3 and more active now toywasm, wasm3 already has some nim support ... " added "see https://github.com/beef331/wasm3"
18:46:47FromDiscord<Nelson> anyways that was it, im going to keep trying this language out
18:47:10FromDiscord<Phil> Huh, beef wrote it? Sweet! He tends to write pretty decent stuff, just needs to get around to documenting more 😛
18:48:27FromDiscord<Elegantbeef> If it doesnt have a doc comment it's not meant for public consumption
18:48:28FromDiscord<Elegantbeef> Get rekt
18:49:32FromDiscord<Phil> removes micros dependency from mapster
18:49:54FromDiscord<Nelson> you underestimate the stubborn power of a zig user!
18:49:54FromDiscord<Nelson> this is precisely what i want↵(@pmp_p)
18:50:01FromDiscord<raynei486> sent a code paste, see https://play.nim-lang.org/#ix=4FXL
18:50:20FromDiscord<Phil> I don't comprehend what even happens there
18:50:40FromDiscord<Nelson> it's horrible.↵(@raynei486)
18:51:15FromDiscord<Nelson> i mean, it's kind of like a math function with a lot of things going on, you need to read carefullybut even so, whenever i am coding, i want to work with real problems and solve actual issues instead of fight my tool \:P↵(@Phil)
18:51:29FromDiscord<raynei486> In reply to @isofruit "I don't comprehend what": A compile time function template that returns a vector of pairs of `char` and `int` which also potentially` throws a `std::logic_error`
18:51:36FromDiscord<Nelson> nim seems like the kind of thing that i would like for a game engine
18:51:37FromDiscord<raynei486> (edit) "potentially`" => "potentially"
18:51:50FromDiscord<Phil> In reply to @Nelson "i mean, it's kind": As a rule, if a line of code does many things, I start giving up
18:51:55FromDiscord<Phil> Or if I control the code, immediately refactor
18:51:59FromDiscord<raynei486> In reply to @Nelson "nim seems like the": yeah same
18:52:03FromDiscord<raynei486> making games with Nim is fun
18:52:24FromDiscord<Phil> In reply to @Nelson "nim seems like the": While I have no clue about gamedev, there are a couple ECS out there
18:52:53FromDiscord<Phil> Which AFAIK are useful (sometimes?) for gamedev (?)
18:53:04FromDiscord<Nelson> i love ecs
18:53:04FromDiscord<Nelson> ecs is my passion
18:53:46FromDiscord<Nelson> whenever i want to do that, i go on and use Zig or something
18:53:47FromDiscord<Nelson> i'm honestly a lua person, yes yes arrays start at one, blablabla, super fun↵but it's mostly because i DO NOT want to worry about memory layouts or any of that shit, i want to get STUFF DONE.↵(@raynei486)
18:54:22FromDiscord<Nelson> in lua, everything is just a game of tables and flow
18:55:51FromDiscord<raynei486> yeah Nim can go high level and low level
18:56:10FromDiscord<raynei486> You can turn off GC and tickle the memory
18:56:26FromDiscord<Phil> The thing I've appreciated the most is how it's all opt in
18:57:03FromDiscord<Nelson> i like how disturbing nim is, because it goes on and destroys everything we consider "normal" in other languages, to give us maximum liberty on however the fuck we write code↵(@Phil)
18:57:12FromDiscord<Nelson> like, case insensitivity
18:57:48FromDiscord<Phil> The only reason I learned about compilers, compiletime, metaprogramming, in-depth about generics, stack vs heap, value vs ref types, pointers, FFIs etc. is solely because nim allows me to care about these things if I want to
18:58:55FromDiscord<Phil> In reply to @Nelson "i like how disturbing": Yeah, I like it though also consider it somewhat of a potential footgun.↵On the other hand, there's a bunch of compilerflags that you have access to to narrow down that liberty again to things that suit you better
18:59:07FromDiscord<Nelson> yeah↵(@Phil)
19:00:20FromDiscord<Phil> Even if it weren't pretty fun to program in in general, I'd still love to stick with it simply because of the stuff you get out of it over time that can be transferred to most other languages with similar capabilities.
19:02:09FromDiscord<Phil> sent a long message, see http://ix.io/4FXP
19:02:22FromDiscord<Phil> On that note, why is basically every popular language under the sun almost entirely heap allocated?
19:10:43FromDiscord<vindaar> Wasn't there some option so that Nim prints the dynamic library paths it searches for when loading a shared lib?
19:35:41FromDiscord<leorize> if you're talking about VM languages, then it's actually a lot simpler to build heap-based objects \:P
19:39:22FromDiscord<Chronos [She/Her]> I have a very shitty event system too if anyone is interested in using it somehow for game dev? XD
19:56:50FromDiscord<Elegantbeef> Also known as "Why my Java vector library is so slow"
20:04:21FromDiscord<kingterrytheterrible12> In reply to @Elegantbeef "Also known as "Why": java is a lanugage for psychopaths
20:04:58FromDiscord<kingterrytheterrible12> sent a code paste, see https://play.nim-lang.org/#ix=4FY2
20:05:26FromDiscord<Chronos [She/Her]> Oooof
20:05:34FromDiscord<Chronos [She/Her]> Nim but with a JVM backend would be so epic tbh
20:05:36FromDiscord<kingterrytheterrible12> it always evaluated to true and my program kept exiting until i figured out somone thought it was a good idea to not be able to compare strings using `==`
20:06:32FromDiscord<kingterrytheterrible12> thank god for inteiliji debuggers
20:06:32FromDiscord<kingterrytheterrible12> (edit) "debuggers" => "debugger"
20:06:38FromDiscord<Chronos [She/Her]> Genuinely wonder if it's actually worth modifying the code for the JS backend to make a Java backend (because I'd imagine outputting JVM bytecode is harder)
20:06:56FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "Genuinely wonder if it's": you can convert C into java bytecode
20:07:22FromDiscord<Chronos [She/Her]> You don't get Java interop though, but also which way are you talking about?
20:07:34FromDiscord<Chronos [She/Her]> I know Sulong exists but that's GraalVM specific
20:07:35FromDiscord<kingterrytheterrible12> bro can we not hop from #offtopic to main XD
20:07:59*def- quit (Quit: -)
20:08:11FromDiscord<Chronos [She/Her]> Fair enough lmao, I'm just used to that :p
20:08:11*def-- joined #nim
20:08:15FromDiscord<kingterrytheterrible12> we hopping between channels like the javascript ecosystem hypetrain
20:08:32FromDiscord<Chronos [She/Her]> I constantly do this :p
20:08:35*def-- is now known as def-
20:10:13FromDiscord<kingterrytheterrible12> In reply to @kingterrytheterrible12 "you can convert C": https://github.com/davidar/lljvm
20:12:55FromDiscord<Chronos [She/Her]> Ah, yeah that's also outdated
20:13:05FromDiscord<kingterrytheterrible12> so
20:13:12FromDiscord<kingterrytheterrible12> dont think llvm ir has changed
20:13:20FromDiscord<Chronos [She/Her]> And has the same issue: No JVM interop
20:13:26FromDiscord<Chronos [She/Her]> Or at least in a complicated way
20:13:37FromDiscord<kingterrytheterrible12> i mean
20:13:38FromDiscord<kingterrytheterrible12> why
20:13:52FromDiscord<kingterrytheterrible12> C is more portable the stupid jvm
20:14:40FromDiscord<Chronos [She/Her]> Java libraries? Modding games? Like Minecraft
20:15:08FromDiscord<Chronos [She/Her]> Those are important to some (and to me tbh, and having a non-sucky JVM language)
20:15:11FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "Java libraries? Modding games?": it would be far far better and makes more sense to make a java bindgen
20:15:18FromDiscord<Chronos [She/Her]> I don't do modding but if Nim existed, I definitely would
20:15:19FromDiscord<kingterrytheterrible12> C java bindgen
20:15:32FromDiscord<Nelson> i mean, nim already exists↵(@Chronos [She/Her])
20:15:33FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "it would be far": And distribute MC mods with native code? Horrific
20:15:40FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "And distribute MC mods": yes?
20:15:43FromDiscord<Chronos [She/Her]> In reply to @Nelson "i mean, nim already": For the JVM aha
20:16:00FromDiscord<Nelson> better idea\:↵let's not make mods
20:16:01FromDiscord<kingterrytheterrible12> In reply to @Nelson "i mean, nim already": the trolls today are crazy
20:16:05FromDiscord<Nelson> let's just not make games even
20:16:12FromDiscord<kingterrytheterrible12> ppl felling a bit funny today
20:16:24FromDiscord<Nelson> let's never write any piece of software ever again
20:16:24FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "yes?": That's terrible and would mean I'd have to build it for each platform I know ppl use it for, which is just not great
20:16:35FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "That's terrible and would": windows macos linux
20:16:38FromDiscord<Chronos [She/Her]> In reply to @Nelson "let's never write any": Okay comedian
20:16:41FromDiscord<kingterrytheterrible12> fuck all the other plats
20:16:46FromDiscord<Nelson> plus, jvm can be sandboxed, no?↵(@Chronos [She/Her])
20:16:54FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "windows macos linux": Arm, x86, x64
20:17:00FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "Arm, x86, x64": so
20:17:03FromDiscord<kingterrytheterrible12> build it
20:17:05FromDiscord<Chronos [She/Her]> In reply to @Nelson "plus, jvm can be": Ehhh not easily afaik, it's a pain
20:17:13FromDiscord<Nelson> linux x86, linux x86\_64, linux arm, windows x86, windows x86\_64, macOS x86\_64, macOS arm, etc↵(@kingterrytheterrible12)
20:17:13FromDiscord<kingterrytheterrible12> you just setup CI script once
20:17:16FromDiscord<kingterrytheterrible12> it make everything
20:17:20FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "build it": The jar would be unnecessarily large and stupid lol
20:17:32FromDiscord<kingterrytheterrible12> bro CI script
20:17:47FromDiscord<Nelson> you are horribly, absolutely boring.↵(@Chronos [She/Her])
20:18:22FromDiscord<Nelson> (i am so too, but i'm trying not to be! 😭😭😭)
20:18:26FromDiscord<kingterrytheterrible12> @Chronos [She/Her] bro who even makes fat jars today
20:18:44FromDiscord<Chronos [She/Her]> Yeah, still large, unless I distribute a jar per platform, which then is just relying on the user to fuck up, bc a non-small amount aren't smart when it comes to knowing about their own PC
20:18:50FromDiscord<Chronos [She/Her]> In reply to @Nelson "you are horribly, absolutely": Thanks, I try <3
20:19:01FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "Yeah, still large, unless": a non small amount?
20:19:08FromDiscord<kingterrytheterrible12> bro my cousin doesnt even know how to run an installer
20:19:12FromDiscord<kingterrytheterrible12> and hes 18
20:19:17FromDiscord<Chronos [She/Her]> Lmao
20:19:19FromDiscord<Nelson> anyways i think that the future of embedded mods/plugins is probably going to be wasm
20:19:27FromDiscord<kingterrytheterrible12> i had to give that mf a 3 month course on how to use a computer
20:19:52FromDiscord<Chronos [She/Her]> Yeah so I'd rather just be able to integrate Nim with Java, esp if I wanna interact with other mods too
20:19:52FromDiscord<kingterrytheterrible12> In reply to @Nelson "anyways i think that": wasi yes
20:19:57FromDiscord<Nelson> think about it, a lot of things support wasm nowadays, it can be sandboxed, and it's not necessarily complicated to use
20:19:57FromDiscord<Nelson> think about it, a lot of things support wasm nowadays, it can be sandboxed, and it's not necessarily complicated to use from a developer standpoint
20:20:11FromDiscord<Nelson> you can also implement it anywhere, i am pretty sure you can write an interpreter in python or smth
20:20:12FromDiscord<kingterrytheterrible12> WASI isnt very mature
20:20:13FromDiscord<Chronos [She/Her]> In reply to @Nelson "anyways i think that": Honestly I believe so too, WASM is amazing
20:20:33FromDiscord<kingterrytheterrible12> wasm is just the jvm all over again
20:20:43FromDiscord<kingterrytheterrible12> you understand to run WASI you need a runtime
20:21:01FromDiscord<Chronos [She/Her]> Not really, because the JVM wasn't made with languages that aren't Java, in mind
20:21:13FromDiscord<Chronos [She/Her]> WASM was made for that exact purpose
20:21:16FromDiscord<kingterrytheterrible12> nothing is stopping you from compiling anything to java bytecode
20:21:20FromDiscord<Nelson> compare writing a jvm clone to just writing a simple interpreter↵(@kingterrytheterrible12)
20:21:34FromDiscord<Nelson> and also yeah good luck integrating jvm into your project
20:21:35FromDiscord<kingterrytheterrible12> In reply to @Nelson "compare writing a jvm": interpreting wasm is not a very good idea
20:21:36FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "you understand to run": The web and if you use it within your own applications
20:21:46FromDiscord<kingterrytheterrible12> it needs to be at least JIT compiled
20:21:54FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "interpreting wasm is not": Wasm3 exists :p but it's more complicated than just making an interpreter
20:22:07FromDiscord<kingterrytheterrible12> at this point
20:22:16FromDiscord<kingterrytheterrible12> if you gonna interpret wasm just make the whole thing in java
20:22:17FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "nothing is stopping you": The speed, byte buffers and stuff isn't super great for performance on the JVM which is the major bottleneck
20:22:21FromDiscord<Nelson> yeah and we have libraries for that, which are simple enough to use and light enough to embed↵(@kingterrytheterrible12)
20:22:45FromDiscord<Nelson> i cant even begin to express how flawed that statement is↵(@kingterrytheterrible12)
20:22:58FromDiscord<kingterrytheterrible12> In reply to @Nelson "i cant even begin": its not flawed
20:23:01FromDiscord<kingterrytheterrible12> you just dont think
20:23:10FromDiscord<kingterrytheterrible12> at least java has a JIT OR SOMETHING
20:23:21FromDiscord<kingterrytheterrible12> YOU WANT TO MAKE PYTHON ALL OVER AGAIN
20:23:34FromDiscord<Nelson> yeah that's a personal attack, not going to argue with you tbh
20:23:43FromDiscord<kingterrytheterrible12> bet
20:24:20FromDiscord<kingterrytheterrible12> i think the best thing to do with wasm is just compile the thing on user's machines
20:24:21FromDiscord<kingterrytheterrible12> lmao
20:24:23FromDiscord<Nelson> bet what
20:24:26FromDiscord<kingterrytheterrible12> bet
20:24:48FromDiscord<Nelson> bet what
20:25:01FromDiscord<kingterrytheterrible12> bet
20:25:19FromDiscord<Nelson> yeah bet 💸💸💸💸💸↵↵betting is cool 💸💸💸💸💸💸
20:25:33FromDiscord<Nelson> the word "bet" is fun
20:27:22FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "if you gonna interpret": Look at asmble and wasm2kotlin
20:27:41FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "at least java has": Wasmtime, wasmer, wasmedge, 3 runtimes with a JIT
20:27:51FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "Look at asmble and": wasm2getsomebitches
20:28:06FromDiscord<kingterrytheterrible12> yeah wasm is pointless beyond the web ngl
20:28:13FromDiscord<kingterrytheterrible12> native is the way to go
20:28:47FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "i think the best": I mean you could, but that would be risky because even with JITs, you always have a risk of an exploit for untrusted code to wreck havoc
20:29:39FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "yeah wasm is pointless": It's a universal format that can be used on all platforms independent of the architecture, that most major languages (C, anything that emits LLVM) and libraries can already run on
20:30:06FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "It's a universal format": you understand the browser IS WHAT RUNS WASM
20:30:10FromDiscord<Chronos [She/Her]> Obviously you'll have to implement WASI on the host, but you get to control what they can actually do, you could implement checks to only allow them to edit a certain directory for example
20:30:20FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "you understand the browser": Again, look at wasmtime
20:30:21FromDiscord<kingterrytheterrible12> so you must ship something that runs wasm on the user's machine
20:30:23FromDiscord<Chronos [She/Her]> Standalone runtime
20:30:30FromDiscord<kingterrytheterrible12> lemme see
20:30:36FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "so you must ship": Yes, but this makes it perfect for a plugin system
20:31:04FromDiscord<Chronos [She/Her]> Obviously you have to distribute a native binary, but plugin systems get to be independent of the native platform and from any language too
20:31:29FromDiscord<kingterrytheterrible12> yeah it looks like java all over again
20:31:43FromDiscord<kingterrytheterrible12> why dont you just target jvm then boom you have your own wasm
20:31:52FromDiscord<kingterrytheterrible12> plugin system is already reserved for lua
20:31:57FromDiscord<kingterrytheterrible12> modding is reserved for lua
20:32:13FromDiscord<kingterrytheterrible12> wasm cannot compete anywhere except in web
20:32:14FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "why dont you just": Because most things don't target Java, the JVM isn't meant for that
20:32:25FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "Because most things don't": why not
20:32:26FromDiscord<kingterrytheterrible12> kotlin did it
20:32:36FromDiscord<kingterrytheterrible12> haxe does it
20:32:55FromDiscord<griffith1deadly> go write jvm in pure nim
20:32:57FromDiscord<Chronos [She/Her]> Because they were made with that in mind
20:33:01FromDiscord<kingterrytheterrible12> In reply to @griffith1deadly "go write jvm in": IN
20:33:16FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "Because they were made": haxe compiles to js C++ java
20:33:24FromDiscord<kingterrytheterrible12> dont think they planned anything realy
20:33:26FromDiscord<Chronos [She/Her]> Haxe is made to target many targets
20:33:26FromDiscord<kingterrytheterrible12> (edit) "realy" => "really"
20:33:39FromDiscord<Chronos [She/Her]> That's like, the entire purpose behind the language
20:33:45FromDiscord<kingterrytheterrible12> soooo
20:33:49FromDiscord<kingterrytheterrible12> nim JVM LETS GOOOO
20:34:15FromDiscord<Chronos [She/Her]> Write it then 🤷‍♀️
20:34:16FromDiscord<kingterrytheterrible12> I WILL TOTALY LEAVE MY HIGH PERFORMANCE C FOR JVM
20:34:31FromDiscord<Chronos [She/Her]> I mean, many people still use the JVM everywhere
20:34:41FromDiscord<kingterrytheterrible12> https://github.com/daylinmorgan/forge
20:34:46FromDiscord<Chronos [She/Her]> You can't deny that even with all it's faults, it's popular
20:34:46FromDiscord<kingterrytheterrible12> also we now have this
20:35:10FromDiscord<griffith1deadly> In reply to @chronos.vitaqua "I mean, many people": can confirm
20:35:23FromDiscord<griffith1deadly> many companies use spring for web
20:35:29FromDiscord<griffith1deadly> because it simple
20:35:40FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "I mean, many people": so lets use their decades of ecosystem instead of making one from scratch
20:36:18FromDiscord<kingterrytheterrible12> too much work has went into the jvm
20:36:28FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "https://github.com/daylinmorgan/forge": If your binary is 10 mb alone, and you compile it for every major platform and arch, you have 60 mb at a minimum (arm64, x86_64)
20:36:31FromDiscord<kingterrytheterrible12> its like trying to compete with LLVM and GCC
20:36:41FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "If your binary is": bro what
20:36:44FromDiscord<kingterrytheterrible12> huh
20:36:45FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "so lets use their": The main issue with that is it's not safe
20:36:59FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "bro what": This is relating to just packing native deps in a jar
20:37:10FromDiscord<kingterrytheterrible12> dont ship fat jars then bruh
20:37:14FromDiscord<Chronos [She/Her]> In reply to @chronos.vitaqua "The main issue with": WASM is made to be sandboxed
20:37:19FromDiscord<kingterrytheterrible12> eh idk
20:37:24FromDiscord<kingterrytheterrible12> i like compiled languages
20:37:25FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "dont ship fat jars": Your cousin is one of the people who'd likely mess it up
20:37:37FromDiscord<kingterrytheterrible12> i only use compiled languages and python for scripting
20:37:37FromDiscord<kingterrytheterrible12> so
20:37:47FromDiscord<Chronos [She/Her]> You don't have to care, it's going somewhere already since every major browser has implemented it 🤷‍♀️
20:37:54FromDiscord<kingterrytheterrible12> anything you say about wasm and runtime i will automatically disagree
20:38:17FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "You don't have to": im all for browser wasm
20:38:21FromDiscord<kingterrytheterrible12> but not desktop wasm
20:38:24FromDiscord<Chronos [She/Her]> Ah yes let's do everything compile time including user input
20:38:37FromDiscord<kingterrytheterrible12> ong wtf are you saying
20:38:46FromDiscord<kingterrytheterrible12> i like compiled languages
20:38:49FromDiscord<kingterrytheterrible12> with no runtimes
20:39:18FromDiscord<kingterrytheterrible12> to the nerd whos gonna say "well actually C++ runtime is libstdc++ 🤓 " yeah suck it
20:39:30FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "but not desktop wasm": I'm not saying it'll take over desktop apps, just that there's major potential with it, because there's places that already have implemented WASM for their runners and stuff, but idk how that works like Cloudflare
20:39:51FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "I'm not saying it'll": ngl if wasm is gonna take over desktop apps
20:39:52FromDiscord<kingterrytheterrible12> im happy
20:40:01FromDiscord<kingterrytheterrible12> cuz the current state of desktop apps is FUCKED
20:40:05FromDiscord<Chronos [She/Her]> Really? I thought you were against it
20:40:12FromDiscord<kingterrytheterrible12> ITS BETTER THAN ELECTRON LMAO
20:40:47FromDiscord<griffith1deadly> i hate electron
20:40:50FromDiscord<kingterrytheterrible12> same
20:41:06FromDiscord<kingterrytheterrible12> the combined IQ of js frontend devs is like 2
20:41:23FromDiscord<griffith1deadly> In reply to @kingterrytheterrible12 "the combined IQ of": js fullstacks
20:41:30FromDiscord<kingterrytheterrible12> In reply to @griffith1deadly "js fullstacks*": js devs
20:41:31FromDiscord<Chronos [She/Her]> I mean WASM isn't any different than running a native app on your PC
20:41:37FromDiscord<kingterrytheterrible12> ong bro
20:41:39FromDiscord<kingterrytheterrible12> stop
20:41:41FromDiscord<kingterrytheterrible12> convincing me
20:41:46FromDiscord<kingterrytheterrible12> i am set to be unconvinced
20:41:50FromDiscord<Chronos [She/Her]> If you use WASM in a browser you still need something like electron :p
20:41:52FromDiscord<kingterrytheterrible12> anything you say just wont help
20:42:23FromDiscord<Chronos [She/Her]> In reply to @chronos.vitaqua "I mean WASM isn't": I'm saying that WASM won't change how development of apps happen on desktop unless you make new frameworks for that entirely :p
20:44:37FromDiscord<System64 ~ Flandre Scarlet> In reply to @griffith1deadly "i hate electron": Electron == cancer
20:47:39FromDiscord<kingterrytheterrible12> In reply to @chronos.vitaqua "I'm saying that WASM": listen
20:47:49FromDiscord<kingterrytheterrible12> fuck wasm lemme take you out on a date baby
20:48:05FromDiscord<Chronos [She/Her]> No thanks, only interested in other trans ppl :p
20:48:14FromDiscord<kingterrytheterrible12> damn
20:48:16FromDiscord<kingterrytheterrible12> alright
20:48:18FromDiscord<griffith1deadly> In reply to @sys64 "Electron == cancer": rust too
20:49:11FromDiscord<kingterrytheterrible12> In reply to @griffith1deadly "rust too": rust good
20:49:13FromDiscord<Chronos [She/Her]> Lol
20:49:14FromDiscord<kingterrytheterrible12> syntax ugly
21:06:24FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4FYg
21:07:54FromDiscord<sOkam! 🫐> (edit) "https://play.nim-lang.org/#ix=4FYg" => "https://paste.rs/I3b2y"
21:08:27FromDiscord<sOkam! 🫐> (edit) "https://play.nim-lang.org/#ix=4FYj" => "https://play.nim-lang.org/#ix=4FYi"
21:08:53*jmdaemon joined #nim
21:13:18FromDiscord<Nelson> @sOkam! 🫐)
21:17:32FromDiscord<Chronos [She/Her]> Isn't there already a lib that wraps Vulkan for Nim anyway?
21:17:41*ttkap joined #nim
21:20:46FromDiscord<sOkam! 🫐> This isn't a wrapper, its a code generator that creates VulkanHpp+vk-bootstrap like code
21:21:45FromDiscord<sOkam! 🫐> also, the question has nothing to do with vulkan 🤷‍♂️ its just string pattern matching
21:25:41FromDiscord<System64 ~ Flandre Scarlet> In reply to @kingterrytheterrible12 "rust good": Nim > Rust
21:33:38FromDiscord<kingterrytheterrible12> In reply to @sys64 "Nim > Rust": what avour me & you
21:33:45FromDiscord<kingterrytheterrible12> (edit) "avour" => "about"
21:34:32FromDiscord<turtlebasket> what about you and the LORD 😳
21:34:45FromDiscord<turtlebasket> also when we r getting nim VM/compiler feature parity
21:34:57FromDiscord<kingterrytheterrible12> In reply to @turtlebasket "what about you and": im tryna please him by getting a wife
21:35:15FromDiscord<kingterrytheterrible12> In reply to @turtlebasket "also when we r": soon
21:36:13FromDiscord<Nelson> question, does anyone here know a ECS library that does not use types as components, but instead, value pairs?
21:36:17FromDiscord<Nelson> imagen.png https://media.discordapp.net/attachments/371759389889003532/1150545303146078239/imagen.png
21:36:20FromDiscord<Nelson> this is an example of something I do not want
21:36:31FromDiscord<kingterrytheterrible12> what ecs short for
21:36:42FromDiscord<Nelson> because it'd mean that i could not use vector math types like the ones in vmath
21:37:19FromDiscord<Nelson> Entity Component System↵(@kingterrytheterrible12)
21:37:47FromDiscord<turtlebasket> can't you just convert these things into vectors 🤨
21:37:59FromDiscord<Nelson> too annoying to deal with
21:38:25FromDiscord<turtlebasket> or just represent them as vectors to begin with
21:38:50FromDiscord<Nelson> thing is, it basically uses the types' names to create the hash signatures
21:38:57FromDiscord<Nelson> anyways, found this\: https://github.com/PixeyeHQ/pixecs
21:39:16FromDiscord<turtlebasket> can't you just alias a n-length vector to a type name
21:39:30FromDiscord<Nelson> that wouldnt be exactly useful...
21:39:34FromDiscord<System64 ~ Flandre Scarlet> In reply to @kingterrytheterrible12 "what about me &": Wdym?
21:39:36FromDiscord<Nelson> anyways i already found what i wanted
21:39:52FromDiscord<kingterrytheterrible12> In reply to @sys64 "Wdym?": im tryna take you out
21:39:54FromDiscord<Nelson> are you replying to me? sorry, element glitched out
21:40:02FromDiscord<Nelson> oh you're not, nevermind lmao
21:40:04FromDiscord<kingterrytheterrible12> In reply to @Nelson "are you replying to": dont ruin the rizz
21:40:08FromDiscord<kingterrytheterrible12> BRO
21:40:18FromDiscord<System64 ~ Flandre Scarlet> In reply to @kingterrytheterrible12 "im tryna take you": Still didn't understood
21:40:26FromDiscord<kingterrytheterrible12> LETS GET MARRIED GODDAMMIT
21:40:59FromDiscord<System64 ~ Flandre Scarlet> Wait what??!
21:41:09FromDiscord<kingterrytheterrible12> In reply to @sys64 "Wait what??!": YES
21:41:11FromDiscord<kingterrytheterrible12> wya
21:41:25FromDiscord<kingterrytheterrible12> i swear to god if this is a minor
21:42:00FromDiscord<Nelson> i'm having fun \:)
21:42:03FromDiscord<Nelson> imagen.png https://media.discordapp.net/attachments/371759389889003532/1150546758024306800/imagen.png
21:42:16FromDiscord<Nelson> go on, make fun of it
21:42:18FromDiscord<Nelson> roast it
21:42:34FromDiscord<System64 ~ Flandre Scarlet> In reply to @kingterrytheterrible12 "YES": Look at my profile↵Do you actually want to get married with a vamp?
21:42:44FromDiscord<kingterrytheterrible12> In reply to @sys64 "Look at my profile": hell yeah
21:42:50FromDiscord<kingterrytheterrible12> you can suck me up any day of the week
21:43:00FromDiscord<kingterrytheterrible12> oh wait
21:43:02FromDiscord<kingterrytheterrible12> PAUSE
21:43:08FromDiscord<Nelson> nevermind pixecs doesnt do what i need \:/
21:44:46FromDiscord<Nelson> are there uhm... like, packed structs in Nim?
21:45:08FromDiscord<Nelson> for example, use a struct of 32 booleans (yes that is insane but bear with me) as a 32 bit integer?
21:45:15FromDiscord<Nelson> or do i need to do the bitshift stuff
21:45:26FromDiscord<System64 ~ Flandre Scarlet> In reply to @kingterrytheterrible12 "you can suck me": Actually↵I send you to the Scarlet Devil Mansion
21:45:42FromDiscord<kingterrytheterrible12> In reply to @sys64 "Actually I send you": wait how old are you
21:45:44FromDiscord<sOkam! 🫐> In reply to @Nelson "nevermind pixecs doesnt do": have you looked into polymorph?
21:46:22FromDiscord<sOkam! 🫐> also, can you guys keep offtopic to offtopic?
21:46:23FromDiscord<Nelson> i did not like how you need to define several copies of the same struct with different names to have different components of the same structure↵(@sOkam! 🫐)
21:46:41FromDiscord<that_dude.> In reply to @Nelson "are there uhm... like,": Is this close to what you want? https://nim-lang.org/docs/manual.html#foreign-function-interface-packed-pragma
21:46:42FromDiscord<Nelson> i think i'll go full Arrays On Struct for this one, manual and all
21:46:45FromDiscord<Nelson> doesnt seem hard, no?
21:46:54FromDiscord<Nelson> let me check↵(@that_dude.)
21:47:06FromDiscord<sOkam! 🫐> did you see that vmath has different ways of storing its values?
21:47:14FromDiscord<sOkam! 🫐> they are behind some compile-time defines
21:47:27FromDiscord<Nelson> huh
21:47:29FromDiscord<sOkam! 🫐> treeform mentioned the others are slower, but might do the trick for you if you need them
21:47:32FromDiscord<Nelson> oh yeah!
21:47:44FromDiscord<Nelson> yeah maybe i could do that
21:48:26FromDiscord<Nelson> okay alright i'll use this method
21:48:28FromDiscord<sOkam! 🫐> he mentioned that an array inside a struct was the fastest on benchmarks for an unknown reason, so he kept that version as default
21:48:40FromDiscord<sOkam! 🫐> but the others are still there
21:49:15FromDiscord<Nelson> there's something breaking cache then
21:49:15FromDiscord<Nelson> but meh who cares
21:49:29FromDiscord<Nelson> i'm still trying to save as much cycles as possible though, i'm targetting a 522mhz device with no gpu 😆
21:49:52FromDiscord<kingterrytheterrible12> In reply to @Nelson "i'm still trying to": you stupid?
21:50:04FromDiscord<kingterrytheterrible12> missed cache misses are HUGE in 522 mhz device
21:50:05FromDiscord<Nelson> ???↵(@kingterrytheterrible12)
21:50:16FromDiscord<kingterrytheterrible12> use valgrind to monitor cache hits
21:50:19FromDiscord<Nelson> yeah but it's not a problem until it's a problem \:P↵(@kingterrytheterrible12)
21:50:24FromDiscord<kingterrytheterrible12> In reply to @Nelson "yeah but it's not": dude
21:50:45FromDiscord<kingterrytheterrible12> fetching from main memory in a cold region has a clock cycles penalty near 200 ish cycles
21:50:54FromDiscord<kingterrytheterrible12> trust me you want the cache as much as possible
21:51:11FromDiscord<Nelson> yes
21:51:12FromDiscord<Nelson> but again, it is not a problem, until it is a problem.
21:51:13FromDiscord<Nelson> i have games to do, optimization comes later.
21:51:22FromDiscord<kingterrytheterrible12> your gonna regret this
21:51:44FromDiscord<Nelson> i write game engines daily, i dont think i'll regret it enough for me to not just rewrite the entire thing
21:52:03FromDiscord<kingterrytheterrible12> once your game starts to perform like garbage after you've written thousands of lines maybe tens of thousands then profiling becomes very time consuming
21:52:09FromDiscord<Nelson> the thing i'm written right now, has been rewritten about 5 times, 3 times zig, one in C, and this last one in Nim
21:52:17FromDiscord<kingterrytheterrible12> WHY
21:52:26FromDiscord<Nelson> because i have fun with it.
21:52:36FromDiscord<kingterrytheterrible12> so far whats the most enjoyable langauge
21:52:53FromDiscord<Nelson> I really enjoyed Zig but it was so so so so buggy it was just disgusting to use
21:53:10FromDiscord<kingterrytheterrible12> yea heard the compiler is waay too buggy
21:53:14FromDiscord<Nelson> C is.... C↵so yeah i'm not going to go on and write my super dynamic stuff on such a manual language
21:53:17FromDiscord<kingterrytheterrible12> that mf didnt even hit 1.0 yet
21:53:30FromDiscord<Nelson> Nim is WEIRDLY the most fun i've had with it yet!
21:53:36FromDiscord<Nelson> I am having a lot of fun with Nim, it's great
21:53:41FromDiscord<kingterrytheterrible12> yes
21:53:43FromDiscord<kingterrytheterrible12> thats why we all here
21:53:44FromDiscord<Nelson> i havent went into the issues yet, maybe
21:53:46FromDiscord<kingterrytheterrible12> nim is great
21:54:10FromDiscord<Nelson> yeah i feel like Zig worries too much about specific things that dont exactly make productivity better, I might go back to it once it's all done and stable
21:54:15FromDiscord<raynei486> Zig also has terrible docs
21:54:25FromDiscord<raynei486> Wanna know something about the stdlib? Just read the source code
21:54:31FromDiscord<Nelson> i legit learned Zig by having to read the fucking std.↵(@raynei486)
21:54:36FromDiscord<kingterrytheterrible12> XD
21:54:49FromDiscord<Nelson> honestly the STD isnt hard to read, i actually found it quite fun↵but yeah it shouldnt be that way
21:54:54FromDiscord<kingterrytheterrible12> the price you pay for using a lang pre 1.0
21:55:51FromDiscord<raynei486> Somehow documentation generation isn't a top priority for a language that tries to be "robust, optimal and reusable"
21:56:32FromDiscord<kingterrytheterrible12> and easy
21:56:42FromDiscord<kingterrytheterrible12> (edit) "easy" => "simple"
21:57:52FromDiscord<raynei486> Hopefully they change that soon
21:58:19FromDiscord<raynei486> I like the idea of Zig for libraries
21:58:29FromDiscord<Nelson> yeah
21:58:29FromDiscord<kingterrytheterrible12> zig solves no problem ngl
21:58:40FromDiscord<Nelson> it solves all the problems i had with C
21:58:45FromDiscord<Nelson> ......... and created new ones.
21:59:00FromDiscord<kingterrytheterrible12> idk why use zig when you can just use C
21:59:13FromDiscord<kingterrytheterrible12> and have the advantage of every platform having a C compiler
21:59:36FromDiscord<Nelson> namespacing, memory safety, proper error handling, better types, in-language comptime macros, etc
21:59:41FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "idk why use zig": Probably just bc Zig is a bit more stricter with memory
21:59:47FromDiscord<Nelson> it also has a better syntax imo
21:59:54FromDiscord<raynei486> In reply to @Nelson "it also has a": 👀
21:59:57FromDiscord<kingterrytheterrible12> In reply to @Nelson "namespacing, memory safety, proper": MEMORY SAFETY LMAOOOO
22:00:01FromDiscord<Chronos [She/Her]> In reply to @Nelson "it also has a": Haven't used Zig myself to say anything about that
22:00:06FromDiscord<kingterrytheterrible12> zig fucking segfaults bro
22:00:27FromDiscord<Chronos [She/Her]> Tho I wonder if there's any Zig libraries that Nim bindings to would be useful for hm
22:00:28FromDiscord<kingterrytheterrible12> zig wants to be a safer C but not as safe as rust
22:00:30FromDiscord<Nelson> yeah, but what it aims to fix is not the way the user writes code, but to create code that is predictable↵(@kingterrytheterrible12)
22:00:40FromDiscord<Chronos [She/Her]> That'd require another compiler tho 💀
22:00:41FromDiscord<Nelson> you can predict that your program will segfault
22:00:47FromDiscord<kingterrytheterrible12> 💀
22:00:58FromDiscord<Chronos [She/Her]> In reply to @kingterrytheterrible12 "zig wants to be": Rust's syntax just ain't for me tbh
22:00:58FromDiscord<Nelson> instead of just randomly segfaulting
22:01:03FromDiscord<kingterrytheterrible12> i would rather not segfault at all
22:01:07FromDiscord<kingterrytheterrible12> and i also like C++
22:01:07FromDiscord<Nelson> also i like that Zig implements the idea of fat pointers
22:01:11FromDiscord<kingterrytheterrible12> i actually love C++
22:01:23FromDiscord<Chronos [She/Her]> Fat pointers?
22:01:26FromDiscord<raynei486> In reply to @chronos.vitaqua "Tho I wonder if": I just experimented a few days ago exporting a zig library to Nim↵Not a fun experience, the linker couldn't find the shared object, either because I'm dumb & rusty with C or Zig toolchain isn't complete
22:01:27FromDiscord<kingterrytheterrible12> yeeep
22:01:37FromDiscord<kingterrytheterrible12> i like everything fat
22:01:41FromDiscord<Nelson> so go use rust↵(@kingterrytheterrible12)
22:01:42FromDiscord<Chronos [She/Her]> In reply to @raynei486 "I just experimented a": Rip
22:01:43FromDiscord<kingterrytheterrible12> fat burgers fat ass fat pointers
22:01:46FromDiscord<Nelson> Pointer + length parameter↵(@Chronos [She/Her])
22:01:49FromDiscord<kingterrytheterrible12> In reply to @Nelson "so go use rust": C++
22:02:07FromDiscord<Nelson> it's the standard in Zig, for everything
22:02:17FromDiscord<Nelson> we dont use pointers as arrays in zig
22:02:24FromDiscord<raynei486> same as nim
22:02:30FromDiscord<raynei486> pointers point to one thing
22:02:31FromDiscord<Nelson> yup
22:02:34FromDiscord<raynei486> they don't point to a block of things
22:02:54FromDiscord<Nelson> yeah the idea of a pointer pointing to a thing of unknown size is bad design imo
22:02:54FromDiscord<kingterrytheterrible12> In reply to @Nelson "we dont use pointers": isnt that the only way to implement an array
22:03:21FromDiscord<Nelson> there's a difference between arrays being ONLY pointers, vs a pointer with a length↵(@kingterrytheterrible12)
22:03:34FromDiscord<Chronos [She/Her]> In reply to @Nelson "Pointer + length parameter": Ah
22:03:43FromDiscord<kingterrytheterrible12> idk zig sucks
22:03:47FromDiscord<kingterrytheterrible12> long live C++
22:03:57FromDiscord<Nelson> i honestly feel like you're just saying things to say them↵(@kingterrytheterrible12)
22:03:57FromDiscord<kingterrytheterrible12> yeah the build system is atrocious but i like it
22:04:05FromDiscord<kingterrytheterrible12> until rust++
22:04:07FromDiscord<Nelson> i hate the zig build system.↵(@kingterrytheterrible12)
22:04:14FromDiscord<kingterrytheterrible12> In reply to @Nelson "i honestly feel like": i actually tried zig it fr sucks
22:04:16FromDiscord<Nelson> it's the part that i dislike the most about zig rn
22:04:21FromDiscord<kingterrytheterrible12> due to docs
22:04:30FromDiscord<System64 ~ Flandre Scarlet> Zig doesn't have operator overloading
22:04:30FromDiscord<Nelson> grow up
22:04:34FromDiscord<kingterrytheterrible12> no
22:04:45FromDiscord<Nelson> yes, and i quite like that honestly↵(@System64 ~ Flandre Scarlet)
22:04:47FromDiscord<raynei486> In reply to @kingterrytheterrible12 "idk zig sucks": it might start seeing some adaption since [bun](https://github.com/oven-sh/bun] just hit 1.0
22:04:55FromDiscord<raynei486> (edit) "[bun](https://github.com/oven-sh/bun]" => "[bun](https://github.com/oven-sh/bu)"
22:04:57FromDiscord<kingterrytheterrible12> In reply to @raynei486 "it might start seeing": bun is a lie
22:05:01FromDiscord<Nelson> operator overloads can go insane
22:05:20FromDiscord<kingterrytheterrible12> In reply to @kingterrytheterrible12 "and also bun is": 😉
22:06:05FromDiscord<Nelson> like why the fuck does C++ have a magic operator overload for streams
22:06:11FromDiscord<Nelson> the bitshifting part makes no sense
22:06:19FromDiscord<raynei486> In reply to @kingterrytheterrible12 "bun is a lie": It's got more stars than the zig compiler tho lmao
22:06:24FromDiscord<Nelson> i just dislike when languages try to make themselves look like magic
22:06:28FromDiscord<Nelson> based.↵(@raynei486)
22:06:41FromDiscord<kingterrytheterrible12> In reply to @raynei486 "It's got more stars": because of fireship, primegen, and other retard js devs who jump on every hypetrain
22:06:58FromDiscord<kingterrytheterrible12> fireship jumped on zig react svelete next typescript hypetrains
22:07:02FromDiscord<kingterrytheterrible12> flutter too
22:07:20FromDiscord<Nelson> typescript is part of the hypetrain?
22:07:24FromDiscord<kingterrytheterrible12> yup
22:07:28FromDiscord<kingterrytheterrible12> its just dying out now
22:07:40FromDiscord<kingterrytheterrible12> they want to ditch TS now lol
22:07:40FromDiscord<Nelson> i mean, i'm not a fan of js or anything like it, but i honestly feel like ts was necessary
22:07:54FromDiscord<raynei486> In reply to @kingterrytheterrible12 "because of fireship, primegen,": is it gonna have a fate like the dino
22:07:58FromDiscord<raynei486> idk anything about js
22:08:00FromDiscord<kingterrytheterrible12> In reply to @raynei486 "is it gonna have": i hope so
22:08:05FromDiscord<kingterrytheterrible12> death to all of javascript
22:08:10FromDiscord<Nelson> dino sucked tho lmao
22:08:23FromDiscord<kingterrytheterrible12> i havent even ever tried deno
22:08:28FromDiscord<kingterrytheterrible12> idk what problems it solves
22:08:47FromDiscord<Nelson> me neither tbh, it's supposedly more secure because it's written in Rust↵(@kingterrytheterrible12)
22:08:55FromDiscord<Nelson> but afaik it lags behind in the benchmarks
22:09:03FromDiscord<kingterrytheterrible12> lmao
22:09:18FromDiscord<kingterrytheterrible12> thats proof you cant speed up js
22:09:43FromDiscord<Nelson> https://dev.to/builderio/a-first-look-at-bun-is-it-really-3x-faster-than-nodejs-and-deno-45od
22:09:43FromDiscord<Nelson> yes you can↵(@kingterrytheterrible12)
22:09:58FromDiscord<Nelson> note, bun is NOT 3x faster than NodeJS, but it IS faster than NodeJS by a good margin
22:10:03FromDiscord<kingterrytheterrible12> In reply to @Nelson "https://dev.to/builderio/a-first-look-at-bun-is-it-": so you continue to be stupid
22:10:13FromDiscord<Chronos [She/Her]> In reply to @Nelson "i mean, i'm not": They're using docs now
22:10:18FromDiscord<Chronos [She/Her]> Doc comments
22:10:22FromDiscord<Chronos [She/Her]> For typing and stuff
22:10:38FromDiscord<Nelson> stupid? this implements the scientific method, and you can confirm the data yourself↵(@kingterrytheterrible12)
22:10:43FromDiscord<System64 ~ Flandre Scarlet> In reply to @Nelson "yes, and i quite": This feature is NECESSARY!!!↵Go lacks this AAAH
22:10:48FromDiscord<Nelson> i'm using data, tangible data, to prove my point.
22:10:59FromDiscord<Nelson> i honestly feel like it can grow out of control mega fast↵(@System64 ~ Flandre Scarlet)
22:12:17FromDiscord<Nelson> oh my god, am i the only one using Matrix here?
22:12:35FromDiscord<Nelson> that makes sense lol
22:12:38FromDiscord<Chronos [She/Her]> In the current convo yes lol
22:13:13FromDiscord<System64 ~ Flandre Scarlet> In reply to @Nelson "oh my god, am": https://tenor.com/bb5uF.gif
22:13:25FromDiscord<Nelson> i've noticed something about programming groups, and that is that a lot of the time, most of the people there are absolutely amazing and answer every once in a while
22:13:50FromDiscord<Nelson> but there's like, 1-3 people just getting angry about whatever and it's really funny
22:14:12FromDiscord<Nelson> i'm so sad i cant preview that 😭😭😭😭↵(@System64 ~ Flandre Scarlet)
22:14:42FromDiscord<Nelson> i dislike discord a lot because of the philosophy around it, but honestly, the UX in discord is just much better than element's, element is just straight up doodoo
22:14:52FromDiscord<raynei486> In reply to @Nelson "but there's like, 1-3": well you are in #main after all
22:14:56FromDiscord<kingterrytheterrible12> In reply to @Nelson "i dislike discord a": fax
22:15:16FromDiscord<kingterrytheterrible12> In reply to @Nelson "but there's like, 1-3": i aint angry i just correcting
22:15:29FromDiscord<Nelson> i am more of a telegram user myself, but I am honestly looking into joining decentralized communities
22:15:31FromDiscord<kingterrytheterrible12> what im angry about is my classmate being retarded rn
22:15:39FromDiscord<Nelson> without any tangible data, and calling me stupid, yes.↵(@kingterrytheterrible12)
22:15:50FromDiscord<Nelson> oh really? hm↵(@raynei486)
22:15:57FromDiscord<Nelson> Hello everyone over there in Discord!
22:16:26FromDiscord<double_spiral> Are there any good nim 2d game engines? im hoping for something similar to pygame (but for nim obviously)
22:16:50FromDiscord<raynei486> In reply to @Nelson "oh really? hm (<@733059160924749855>)": I mean there's #offtopic which might actually be even more chaotic
22:16:53FromDiscord<darltrash> In reply to @Nelson "Hello everyone over there": Hello, myself°
22:16:55FromDiscord<darltrash> (edit) "myself°" => "myself!"
22:17:18FromDiscord<darltrash> Cool that discord actually shows up my profile picture over here
22:17:32FromDiscord<kingterrytheterrible12> In reply to @double_spiral "Are there any good": when i hear anything about python and games https://media.discordapp.net/attachments/371759389889003532/1150555687533940817/yt1s.com_-_Patrick_Bateman_Staring_into_your_soul.mp4
22:17:59FromDiscord<darltrash> In reply to @kingterrytheterrible12 "when i hear anything": i mean, why not? i am not a fan of python but it seems like it can be fun
22:18:11FromDiscord<darltrash> it's good to know that you have options
22:18:26FromDiscord<raynei486> In reply to @double_spiral "Are there any good": I don't think there's any one that's well maintained right now, you're better off with a library like SDL or raylib
22:18:28FromDiscord<darltrash> god i wish we could just use micropython in desktop apps
22:18:32FromDiscord<kingterrytheterrible12> anything beyond 1k LOC in python that isnt AI is unacceptable
22:18:47FromDiscord<double_spiral> In reply to @raynei486 "I don't think there's": Thats unfortunate
22:18:49FromDiscord<darltrash> In reply to @raynei486 "I don't think there's": that's what i've been doing so far
22:19:00FromDiscord<double_spiral> I might use mojo and pygame then
22:19:03FromDiscord<darltrash> In reply to @double_spiral "Thats unfortunate": honestly, you can use this as an opportunity to learn SDL!
22:19:08FromDiscord<darltrash> It's a very valuable skill
22:19:09FromDiscord<kingterrytheterrible12> mojo 🗿
22:19:33FromDiscord<darltrash> and also isnt pygame just an SDL binding...?
22:19:35FromDiscord<double_spiral> In reply to @darltrash "honestly, you can use": (( me looking for a game engine is me avoiding learning sdl ))
22:19:46FromDiscord<darltrash> In reply to @double_spiral "(( me looking for": why are you avoiding it
22:19:47FromDiscord<System64 ~ Flandre Scarlet> In reply to @Nelson "i dislike discord a": Discord : Everything is under Nitro
22:19:55FromDiscord<kingterrytheterrible12> In reply to @sys64 "Discord : Everything is": they gotta make money somehow
22:19:56FromDiscord<double_spiral> In reply to @kingterrytheterrible12 "mojo 🗿": ik bro, but i want something compiled, and something simple
22:20:02FromDiscord<kingterrytheterrible12> In reply to @double_spiral "ik bro, but i": C
22:20:06FromDiscord<kingterrytheterrible12> C is compiled and simple
22:20:09FromDiscord<double_spiral> nah
22:20:13FromDiscord<darltrash> shut up
22:20:13FromDiscord<double_spiral> nah bruh
22:20:19FromDiscord<raynei486> @double_spiral there's this https://github.com/Vladar4/nimgame2 which is probably following something similar to pygame
22:20:21FromDiscord<kingterrytheterrible12> it is simple though
22:20:25FromDiscord<raynei486> but last commit in 2021
22:20:26FromDiscord<raynei486> ¯\_(ツ)_/¯
22:20:27FromDiscord<darltrash> i'm going to be honest, SDL also looked very scary to me but I ended up learning it in like... 4 days
22:20:28FromDiscord<kingterrytheterrible12> C stdlib is like 400k LOC i think
22:20:30FromDiscord<darltrash> of just having fun with it
22:20:34FromDiscord<double_spiral> In reply to @kingterrytheterrible12 "it is simple though": its simple but its not what im looking for
22:20:41FromDiscord<darltrash> In reply to @kingterrytheterrible12 "it is simple though": it's simple, but not convenient
22:20:46FromDiscord<kingterrytheterrible12> In reply to @double_spiral "its simple but its": use python
22:20:53FromDiscord<double_spiral> no i want something compiled
22:20:57FromDiscord<darltrash> why?
22:20:59FromDiscord<kingterrytheterrible12> you cant have both
22:21:00FromDiscord<darltrash> why something compiled?
22:21:04FromDiscord<double_spiral> or something that can genorate an executable
22:21:09FromDiscord<kingterrytheterrible12> compiled fast simple easy to use and good tooling
22:21:10FromDiscord<darltrash> In reply to @kingterrytheterrible12 "you cant have both": yes you can? nim
22:21:11FromDiscord<raynei486> SDL, SFML, raylib are all quite convenient imo
22:21:13FromDiscord<darltrash> also Go
22:21:15FromDiscord<raynei486> just pick one
22:21:18FromDiscord<kingterrytheterrible12> ok use go
22:21:22FromDiscord<double_spiral> In reply to @kingterrytheterrible12 "you cant have both": i can if i use nim or mojo 💀
22:21:22FromDiscord<darltrash> In reply to @raynei486 "SDL, SFML, raylib are": Yeah! SDL is great!
22:21:29FromDiscord<raynei486> (edit) "SDL, SFML, raylib are all quite convenient ... imo" added "and easy"
22:21:29FromDiscord<kingterrytheterrible12> In reply to @double_spiral "i can if i": mojo
22:21:32FromDiscord<raynei486> especially raylib
22:21:33FromDiscord<darltrash> mojo is... weird, idk why i never liked it
22:21:38FromDiscord<kingterrytheterrible12> the python noobs have unvaded
22:21:40FromDiscord<darltrash> In reply to @raynei486 "especially raylib": raylib is literally all cooked and ready to uise
22:21:44FromDiscord<kingterrytheterrible12> (edit) "unvaded" => "invaded"
22:21:49FromDiscord<darltrash> In reply to @kingterrytheterrible12 "the python noobs have": SHUT UP
22:21:54FromDiscord<darltrash> some people just like using python!
22:21:58FromDiscord<darltrash> it doesnt make them mediocre!
22:22:04FromDiscord<double_spiral> is swearing alowed on this server
22:22:05FromDiscord<darltrash> stop insulting others!
22:22:14FromDiscord<raynei486> In reply to @darltrash "raylib is literally all": I love raylib so much
22:22:22FromDiscord<raynei486> I'm not really into gamedev but it makes it so easy
22:22:25FromDiscord<darltrash> In reply to @raynei486 "I love raylib so": it was great the last time I used it! 🙂
22:22:46FromDiscord<kingterrytheterrible12> In reply to @darltrash "some people just like": i dont know why but i am being serious here, why has every python dev i have encountered his age is either no more than 16 or is a scientist of some sort
22:22:57FromDiscord<darltrash> In reply to @kingterrytheterrible12 "i dont know why": that is true
22:23:13FromDiscord<double_spiral> i am older than 16 and i am not a scientist
22:23:17FromDiscord<darltrash> it's weird, they're both newbies or absolute nerds who just want to have an overpowered calculator
22:23:19FromDiscord<double_spiral> i just know python the best
22:23:25FromDiscord<kingterrytheterrible12> and also python devs want to make everything in python
22:23:31FromDiscord<darltrash> In reply to @double_spiral "i just know python": uh, i dont think python is the best, honestly
22:23:34FromDiscord<kingterrytheterrible12> like rust devs
22:23:38FromDiscord<darltrash> it's good at what it was designed for
22:23:44FromDiscord<sOkam! 🫐> its not the best lol
22:23:44FromDiscord<kingterrytheterrible12> python sucks bad
22:23:50FromDiscord<double_spiral> In reply to @darltrash "uh, i dont think": not is the best, i just know it the best
22:23:51FromDiscord<kingterrytheterrible12> like python IS REALLY BAS
22:23:52FromDiscord<kingterrytheterrible12> (edit) "BAS" => "BAD"
22:23:54FromDiscord<double_spiral> of all the languages ive used
22:23:56FromDiscord<darltrash> but it's not good for anything that needs to be quick, compact and easy to get working quick
22:23:57FromDiscord<sOkam! 🫐> where is nim in that curve if python is the best 🙈
22:24:09FromDiscord<kingterrytheterrible12> In reply to @double_spiral "of all the languages": used languages: python
22:24:23FromDiscord<darltrash> In reply to @heysokam "where is nim in": i think that the comparison between nim and python is a bit dumb, because i dont even think of nim as a second python
22:24:28FromDiscord<darltrash> i think of it as a pascal on drugs
22:24:37FromDiscord<double_spiral> In reply to @kingterrytheterrible12 "used languages: python": seriously, is swearing allowed in this server
22:24:40FromDiscord<kingterrytheterrible12> yes
22:24:46FromDiscord<darltrash> yeah but dont go ham on it
22:24:52FromDiscord<double_spiral> In reply to @kingterrytheterrible12 "yes": fuck you
22:24:57FromDiscord<darltrash> LMAO WHY
22:24:58FromDiscord<kingterrytheterrible12> no sir fuck you
22:25:02FromDiscord<darltrash> love eachother
22:25:06FromDiscord<kingterrytheterrible12> im not gat
22:25:07FromDiscord<kingterrytheterrible12> (edit) "gat" => "gay"
22:25:16FromDiscord<double_spiral> In reply to @darltrash "LMAO WHY": he is being a dickhead for no good reason
22:25:23FromDiscord<kingterrytheterrible12> In reply to @double_spiral "he is being a": use C#
22:25:25FromDiscord<darltrash> yeah i agree but that's so extreme lol
22:25:26FromDiscord<kingterrytheterrible12> C# can be compiled
22:25:28FromDiscord<kingterrytheterrible12> can
22:25:30FromDiscord<sOkam! 🫐> i have engaged in this lang discussion, so im faulty of this too↵but we are turning into offtopic quite hard
22:25:33FromDiscord<darltrash> In reply to @kingterrytheterrible12 "use C#": ........... not a bad idea
22:25:34FromDiscord<sOkam! 🫐> and its happening a lot lately
22:25:38FromDiscord<sOkam! 🫐> please nim
22:25:47FromDiscord<darltrash> yeah so, nim has been an amazing language for me so far!
22:26:07FromDiscord<kingterrytheterrible12> i hope python devs dont invade nim for the love of god
22:26:23FromDiscord<darltrash> gatekeeper
22:26:26FromDiscord<double_spiral> FR
22:26:29FromDiscord<kingterrytheterrible12> no
22:26:35FromDiscord<darltrash> let's move to offtopic
22:27:30FromDiscord<System64 ~ Flandre Scarlet> In reply to @kingterrytheterrible12 "like python IS REALLY": Python is↵# 🐌 🐌 🐌 🐌
22:27:40FromDiscord<kingterrytheterrible12> In reply to @sys64 "Python is # 🐌": so ya willing to marry me
22:38:47FromDiscord<darltrash> In reply to @sys64 "Python is # 🐌": 100%
23:03:22*Amun-Ra quit (Server closed connection)
23:03:44*Amun-Ra joined #nim
23:24:02FromDiscord<Nelson> imagen.png https://media.discordapp.net/attachments/371759389889003532/1150572421921906748/imagen.png
23:24:04FromDiscord<Nelson> (sorry for the terrible code lol)
23:24:16FromDiscord<Nelson> but can someone tell me why is this happening?
23:24:31FromDiscord<Nelson> it's just a couple of lines that are like this, but i dont see any errors on the syntax or smth
23:27:07FromDiscord<konsumlamm> `char` doesn't support unicode ig
23:27:59FromDiscord<Nelson> that kind of sucks, i expected the '' stuff to get translated to an integer literal instead of just a char↵(@konsumlamm)
23:28:18FromDiscord<konsumlamm> it's a weird error message for that though
23:28:27FromDiscord<Elegantbeef> make a rune proc so then it's just `rune"..."`
23:28:35FromDiscord<Elegantbeef> I mean the compilation error is probably more useful
23:28:58FromDiscord<konsumlamm> if you want integers, then why not use integers?
23:29:32FromDiscord<Nelson> exact same message...............
23:29:35FromDiscord<Elegantbeef> Unicode is made up of gyphs or runes
23:29:37FromDiscord<Elegantbeef> rather can be more
23:29:38FromDiscord<Elegantbeef> Thes glyph/runes are more than a single byte
23:29:38FromDiscord<Nelson> idk what a rune is but okay \:)
23:29:40FromDiscord<Elegantbeef> In Nim a char is always a single byte
23:29:52FromDiscord<Elegantbeef> They want a nice syntax for their table and to know the character at a glance
23:30:16FromDiscord<Nelson> 'no i dont think you understand, for example, in zig i could literally go like '❤️‍🩹
23:30:17FromDiscord<Nelson> no i dont think you understand, for example, in zig i could literally go like '❤️‍🩹'
23:30:20FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4FYK
23:30:21FromDiscord<Elegantbeef> Yes Nim is not Zih
23:30:22FromDiscord<Nelson> yeah but i'm fine with it
23:30:22FromDiscord<Elegantbeef> Zig even
23:30:23FromDiscord<Nelson> epic
23:30:49FromDiscord<Elegantbeef> `import std/unicode` aswell
23:31:07FromDiscord<Elegantbeef> Nim treats chars as single byte characters and strings as encodeless binary streams
23:31:41FromDiscord<Elegantbeef> This means `myString[ind]` is a `O(1)` operation unlike Rust for instance
23:32:24FromDiscord<Nelson> Should I use Runes to abstract characters?
23:32:32FromDiscord<Nelson> as in, use a Rune instead of an int?
23:32:39FromDiscord<Elegantbeef> If you want to use unicode characters you have to use `Rune`
23:32:55FromDiscord<Nelson> okay, thanks for the answer! mega useful \:)
23:32:56FromDiscord<Elegantbeef> Of course use a Rune instead of an int
23:33:06FromDiscord<Nelson> idk ¯\_(ツ)\_/¯
23:33:08FromDiscord<Elegantbeef> This is a strongly typed language, what's the point of types otherwise!
23:33:49FromDiscord<Nelson> i mean, zig uses unsigned integers for characters lmao
23:33:49FromDiscord<Elegantbeef> Right that's not strongly typed 😛
23:33:49FromDiscord<Nelson> and i mean, it does make sense, it has never been a problem for me
23:34:07FromDiscord<Elegantbeef> not all integers are runes and not all runes are integers
23:34:07FromDiscord<Nelson> but yeah it's better to have a type for it
23:39:39FromDiscord<Nelson> how do you copy a value in nim?
23:39:55FromDiscord<Elegantbeef> Just assign it to a new variable
23:40:08FromDiscord<Nelson> lmao i thought it did referencing
23:40:16FromDiscord<Nelson> maybe i read the thing wrong
23:46:15FromDiscord<user2m> sent a code paste, see https://play.nim-lang.org/#ix=4FYO
23:48:34FromDiscord<jviega> Oh jeez. Is there any way to suppress the evaluation of backticks in .emit'd code?
23:48:52FromDiscord<Elegantbeef> emit goes int the body, exportc goes on the proc
23:49:11FromDiscord<Elegantbeef> `..: SomeNumber {.exportc.} = {.emit: ...}`
23:49:52FromDiscord<Elegantbeef> Also worth noting you have a generic and you're returning a generic parameter
23:49:56FromDiscord<Elegantbeef> But you do not specify the generic
23:51:04FromDiscord<jviega> Beef, can I suppress backtick evaluation an an emit block, or am I SOL? Escaping them doesn't seem to be getting the job done
23:51:15FromDiscord<Elegantbeef> No clue I do not use emit
23:52:47FromDiscord<user2m> In reply to @Elegantbeef "No clue I do": yup that seemed to do it!
23:53:02FromDiscord<user2m> In reply to @Elegantbeef "Also worth noting you": also this is not my code it's from an example from https://github.com/nim-lang/Nim/wiki/Nim-for-TypeScript-Programmers#interoperability-template