<< 30-04-2022 >>

00:10:02PMunch@ambient, I have written a macro in Nim which reads BMP files and used them for sprites and levels on the Arduboy (Arduino Leonardo based)
00:10:37PMunchSo reading files in at compile-time and generating the required arrays is indeed a good solution for micro-controller programming
00:11:21PMunchrockcavera, well there has been a bigger focus on stability and fixing stuff instead of introducing too many new features
00:11:37PMunchI don't think development has slowed down, but it has changed to a less visible focus
00:13:10rockcaverai don't see that many fixes.
00:18:20FromDiscord<xflywind> Yeah, the number of commit is lower than last.
00:18:34FromDiscord<xflywind> (edit) "last." => "that of last year."
00:18:38FromDiscord<xflywind> https://media.discordapp.net/attachments/371759389889003532/969754617804095549/unknown.png
00:21:57FromDiscord<xflywind> I think Nim needs more helper from the community. Imo the main reason why the number of commits descreased is that timothercour has been inactive since 1.6.0 is released.
00:27:01PMunchWell not everything you do with programming leads to a great amount of commits or lines
00:33:29nrds<Prestige99> My friend is writing code on windows and when --app:gui is defined, there's no output to the terminal where the application was launched. Is there a way to have both?
00:35:56PMunchDon't define that switch?
00:36:06PMunchIsn't that switch only to hide the terminal output on Windows?
00:37:26nrds<Prestige99> Well it opens like a second terminal window. but if you're running code with `nim r` from a terminal, there's other output but no output from "echo"
00:39:04PMunchOther output?
00:39:15nrds<Prestige99> yeah like from the compiler
00:39:22PMunchOh right
00:39:44PMunchTo be honest I'm the wrong person to ask about this, haven't used a Windows machine in about 10 years
00:40:49nrds<Prestige99> Yeah I'm in the same boat
00:41:18rockcaverathe answer has already been given, if you want to continue with the stdout output just don't compile with --app:gui
00:41:52rockcaveraI use nim 99% of the time on Windows
00:42:14nrds<Prestige99> Then the other terminal window shows up, which I don't want
00:43:26FromDiscord<Rika> Then don’t open another terminal window? Where is the other one coming from even
00:43:34nrds<Prestige99> From nim I guess
00:43:38rockcaveraas far as i can remember stdout is still in the same window it used "nim r"
00:43:48nrds<Prestige99> Only happens on windows
00:44:16nrds<Prestige99> No echo statements print if you use --app:gui
00:44:22rockcaverawould you have an example code?
00:44:50rockcaveraif you compile with --app:gui, echo won't print anything
00:45:02nrds<Prestige99> Yes that's the problem I'm having
00:45:48rockcaveraso don't compile with --app:gui, as this is the expected behavior of echo
00:46:29rockcaveraif you are compiling for debugging, don't use --app:gui
00:46:49nrds<Prestige99> But then how do I prevent another terminal from spawning?
00:47:21rockcaveranow if you want to debug with --app:gui the operation of your program, create a log, send messages by msgbox from windows...
00:47:48nrds<Prestige99> don't know why nim is opening a terminal
00:48:04rockcaveradepends on the code you are using
00:48:29nrds<Prestige99> is it not just a compiler flag?
00:49:18rockcaveraare you saying that your program when compiled with --app:gui is opening a terminal in Windows that doesn't print anything with echo?
00:49:46nrds<Prestige99> no
00:50:25nrds<Prestige99> without --app:gui there's an external terminal launched, which I don't want. However, I get the output from `echo` in the terminal from which I started the code
00:50:33nrds<Prestige99> I just don't want that terminal nim is spawning
00:51:31rockcaveracould you show the code?
00:52:06*PMunch quit (Quit: leaving)
01:37:55*Zectbumo quit (Remote host closed the connection)
01:50:24*vicecea quit (Remote host closed the connection)
01:50:52*vicecea joined #nim
02:23:41*noeontheend joined #nim
02:25:21*Zectbumo joined #nim
02:27:38FromDiscord<Phil> I just did a quick search but wanted to ask anyway on the off chance:↵Do we have a lib for stripping html tags out of text?
02:28:04FromDiscord<Elegantbeef> Parse it then get inner text
02:28:18*noeontheend quit (Ping timeout: 276 seconds)
02:28:20FromDiscord<Elegantbeef> https://nim-lang.org/docs/htmlparser.html#parseHtml%2Cstring 😄
02:40:49FromDiscord<Phil> Ohhhh that worked really nicely!
02:41:24*duuude quit (Ping timeout: 240 seconds)
02:41:41FromDiscord<Elegantbeef> Weird how that works 😄
03:01:51*arkurious quit (Quit: Leaving)
03:03:53FromDiscord<!Patitotective> In reply to @Isofruit "I just did a": i-i just removed everything inside `<>`... 💀
03:05:43FromDiscord<Phil> In reply to @Patitotective "i-i just removed everything": I would like my users to not want to murder me simply because they chose to put something in between brackets
03:05:52FromDiscord<Phil> 😛
03:06:11FromDiscord<!Patitotective> i guess, me too hehe
03:06:23FromDiscord<Elegantbeef> I dont think it's reasonable to do it without parsing but you may disagree
03:25:48*Zectbumo quit (Remote host closed the connection)
03:34:09FromDiscord<Phil> My lord it feels so good to be able to start getting to the point where I can test my frontend with my new backend
03:34:21FromDiscord<Phil> It's like formula 1
03:35:20FromDiscord<Phil> Pages load so fast I locally manage to hit single digits in ms when compiled with d-release and lto flag. ↵Really looking forward to how that'll look once deployed
03:51:07FromDiscord<Elegantbeef> What GC?
05:12:24*slowButPresent quit (Quit: leaving)
05:59:59*rockcavera quit (Remote host closed the connection)
06:13:06*duuude joined #nim
06:33:08FromDiscord<SirElephant> how do i find if a string contains a particular character?
06:33:50nrds<Prestige99> maybe https://nim-lang.org/docs/strutils.html#contains%2Cstring%2Cset%5Bchar%5D
06:34:04nrds<Prestige99> just needs import strutils
06:34:09FromDiscord<huantian> or just `in` I think if you do that
06:34:27FromDiscord<Elegantbeef> That's for a set prestige
06:34:51FromDiscord<Elegantbeef> You dont need strutils for just a single character
06:35:03nrds<Prestige99> well nvm then :P
06:40:34FromDiscord<SirElephant> ok i got it
06:40:37FromDiscord<SirElephant> working
06:41:13FromDiscord<SirElephant> but now how do i replace the particular character(for eg. "a") with some other character
06:41:21FromDiscord<SirElephant> using a for loop?
06:41:26FromDiscord<Elegantbeef> replace
06:41:30FromDiscord<Elegantbeef> might need strutils
06:41:36FromDiscord<SirElephant> i have it
06:42:00FromDiscord<SirElephant> but i just want to replace the single char from a large string
06:42:25FromDiscord<SirElephant> for eg. "my name is idk" -> "my neme is idk"
06:42:35FromDiscord<SirElephant> notice i changed the a to e
06:42:46FromDiscord<SirElephant> i want to do that using nim
06:42:57FromDiscord<Elegantbeef> `myStre.replace('a', 'e')`
06:45:01FromDiscord<Elegantbeef> if you only want to change the first i'd be `myStr[myStr.find('a')] = 'e'`
06:45:18FromDiscord<SirElephant> lol didn't think it would be that easy
06:47:31FromDiscord<SirElephant> what does this error mean `cannot evaluate at compile time`?
06:51:37FromDiscord<SirElephant> sent a code paste, see https://paste.rs/PlQ
06:52:28FromDiscord<Yardanico> In reply to @SirElephant "this is the code": `case` only switches on constant values
06:52:41FromDiscord<SirElephant> so should i make input const?
06:52:43FromDiscord<Yardanico> your `of` branch has `input.contains("a")` which is a runtime value
06:53:11FromDiscord<Yardanico> In reply to @SirElephant "so should i make": no, `const` means a compile-time variable, so `readLine` then will also be executed at compile time (well in reality it wouldn't, because readLine doesn't work at compile time in Nim)
06:53:17FromDiscord<Yardanico> you should instead use `if`
06:53:18FromDiscord<SirElephant> yup
06:53:46FromDiscord<Yardanico> sent a code paste, see https://paste.rs/zo6
06:54:31FromDiscord<Elegantbeef> you want `if` not `case of`
06:54:34FromDiscord<Elegantbeef> you also dont need the contains check
06:56:51FromDiscord<Yardanico> true
07:08:54FromDiscord<Is> In reply to @MorganAlyssa "and iirc 14 (in": you sounding like a schizzo not gonna lie
07:09:06FromDiscord<Is> you went to this kids profile and got him banned from some server
07:09:39FromDiscord<Is> literally no evidence that he is a nazi
07:09:55FromDiscord<morgan> you literally just joined to say that
07:10:00FromDiscord<Is> In reply to @MorganAlyssa "https://www.splcenter.org/hatewatch/2017/08/12/flag": there are articles online stating the OK hand sign is white supremacy
07:10:15FromDiscord<morgan> yeah it's a dogwhistle
07:10:24FromDiscord<Is> you mentioned it on the other server so i looked it up yes
07:11:12FromDiscord<Is> In reply to @MorganAlyssa "the point is that": you can say this about anybody though
07:13:34FromDiscord<kaletaa> In reply to @MorganAlyssa "https://www.splcenter.org/hatewatch/2017/08/12/flag": the problem with these sites is that they interpret complete jokes as reality and truth
07:14:03FromDiscord<kaletaa> In reply to @MorganAlyssa "and iirc 14 (in": take your meds
07:28:01FromDiscord<Is> In reply to @MorganAlyssa "> I was at": that entire story is a strawman
07:28:10FromDiscord<Is> are you trolling or serious
07:28:18FromDiscord<Solitude> guys, get the fuck out to offtopic
07:28:26FromDiscord<Solitude> this chat is for bullying newbs
07:28:36FromDiscord<Is> lol idc
07:28:43FromDiscord<Is> i dont evne know what nim is
07:29:07FromDiscord<Is> i would get banned for talking about it in the other server
07:30:11FromDiscord<Solitude> we really need a bot that ask for fizzbuzz in nim before allowing to write in main
07:30:23FromDiscord<Is> yup
07:31:15FromDiscord<morgan> In reply to @Is "i would get banned": yeah you would and that's why you came here to continue harassing me
07:31:58FromDiscord<Is> In reply to @MorganAlyssa "yeah you would and": u got some guy who seems to be well respected in this server to be banned in the other server for no real reason
07:32:01FromDiscord<Phil> In reply to @Elegantbeef "What GC?": Default so far
07:32:11FromDiscord<Is> you claim im harassing but you got someone banned for you political agenda
07:32:30FromDiscord<Elegantbeef> I wish we could go back to when the internet was pointless
07:32:49FromDiscord<Is> In reply to @Elegantbeef "I wish we could": never was
07:33:06FromDiscord<Is> it was invented by scientists to share reports or something
07:33:10FromDiscord<Elegantbeef> Well this conversation is, now please kindly sod off to offtopic
07:33:28FromDiscord<Is> https://tenor.com/view/trying-not-to-say-the-nword-spongebob-n-word-trying-memes-gif-23544688
07:34:53FromDiscord<morgan> ~~maybe sod off to not saying anything~~
07:35:13FromDiscord<Elegantbeef> ... ok
07:36:39FromDiscord<Is> In reply to @MorganAlyssa "~~maybe sod off to": that advice is more relevant to you than me
07:36:48FromDiscord<Elegantbeef> Phill will be nice to see if you get faster with arc/orc
07:37:20FromDiscord<Elegantbeef> The next person that doesnt talk about nim deserves atleast half their brain turned into mulch
07:38:13FromDiscord<Phil> <@&371760044473319454> We have people demonstratively refusing to move an offtopic debate to offtopic to the great annoyance of anyone in main chat that wants to actually talk about the language
07:38:44FromDiscord<Elegantbeef> Uh oh phill say buh bye to half your brain
07:38:59FromDiscord<Solitude> nim
07:39:18FromDiscord<Yardanico> @Is @morgan if you want to continue this discussion, go to #offtopic or better just get over it, I thought it was a done topic but apparently not
07:39:30FromDiscord<Phil> I barely got up from my second nap in a row, it was already mulch before you stated.↵Aaaaaaaanyway, I just tried with orc and deepcopy on flags
07:39:35FromDiscord<Yardanico> aaaaaaaaaaanyway
07:39:37FromDiscord<Is> i was already gone though
07:40:04FromDiscord<morgan> i've been ignoring this and interacting as little as possible
07:40:18FromDiscord<Yardanico> ok, so just move to #offtopic , you didn't have to respond to my previous message to start this discussion yet againb
07:40:19FromDiscord<Is> anyone want to tell me what nim is now
07:40:19FromDiscord<Yardanico> (edit) "againb" => "again"
07:40:22FromDiscord<Yardanico> In reply to @Is "anyone want to tell": a language
07:40:24FromDiscord<Yardanico> programming
07:40:27FromDiscord<Yardanico> clicky clicky keyboard
07:40:35FromDiscord<Yardanico> In reply to @Isofruit "I barely got up": so what was the result
07:40:46FromDiscord<Phil> I don't think it made things faster. That was on prologue 5.8 that xflywind earlier made explicitly for orc compilation
07:41:03FromDiscord<Phil> In reply to @Yardanico "so what was the": A young man is no high-speed train! My brain is barely awake!
07:41:06FromDiscord<Is> how is nim better than python
07:41:14FromDiscord<Solitude> In reply to @Is "how is nim better": its not shit
07:41:18FromDiscord<Yardanico> In reply to @Is "how is nim better": merely by the fact that it's compiled into native binaries
07:41:22FromDiscord<Yardanico> not interpreted
07:41:34FromDiscord<JSONBash> a good type system
07:41:39FromDiscord<Yardanico> while still being easy to write
07:41:49FromDiscord<Yardanico> basically performance/effort ratio is one of the highest out of all existing languages
07:41:49FromDiscord<Is> isnt python already easy to write
07:42:01FromDiscord<JSONBash> it is, but isnt fast
07:42:04FromDiscord<Yardanico> In reply to @Is "isnt python already easy": but it's slow and you can't make portable native binaries with it (so they won't bundle the whole interpreter)
07:42:21FromDiscord<Is> can nim do all python can do
07:42:25FromDiscord<Yardanico> yes, and more
07:42:28FromDiscord<Phil> In reply to @Is "isnt python already easy": You have never written a large python project where the non-enforcable duck-typing kicks your ass so hard you want to cry
07:42:48FromDiscord<Yardanico> In reply to @Is "can nim do all": python can't do kernel, driver, etc development
07:42:50FromDiscord<kaletaa> In reply to @Is "it was invented by": porn. it was invented for porn
07:42:52FromDiscord<Phil> The amount of errors that python forces you to experience at runtime and that you can't avoid is insane
07:43:18*Zectbumo joined #nim
07:43:20FromDiscord<Is> can nim be used to bot in runescape
07:43:21FromDiscord<Elegantbeef> Runtime errors are the best errors↵(@Phil)
07:43:25FromDiscord<kaletaa> In reply to @Is "can nim be used": probably
07:43:35FromDiscord<Elegantbeef> Imagine knowing ahead of time if there would be type errors, that's too easy
07:43:49FromDiscord<kaletaa> there's xdolib for x11, you can use that to emulate mouse movement and key presses
07:43:58FromDiscord<Phil> It's a contrast you only really notice when you write in a language with a more defensive compiler such as nim
07:44:01FromDiscord<Is> can it recognize images and stuff
07:44:06FromDiscord<JSONBash> beef uses python becuase he programs in hard mode
07:44:08FromDiscord<Yardanico> In reply to @Is "can it recognize images": you can use existing libraries like opencv
07:44:10FromDiscord<Is> lets say i want to click a certain item
07:44:13FromDiscord<Yardanico> In reply to @Is "lets say i want": yes
07:44:21FromDiscord<Is> damn damn
07:44:22FromDiscord<kaletaa> In reply to @Is "lets say i want": anything you can do in C and C++ you can do here
07:44:23FromDiscord<Elegantbeef> Lol like i'd ever write python↵(@JSONBash)
07:44:26FromDiscord<kaletaa> since it compiles to c/c++
07:44:32FromDiscord<kaletaa> and some other useless languages like js
07:44:35FromDiscord<kaletaa> and objective c
07:44:56FromDiscord<Elegantbeef> Well the JS compilation isnt useless if you want to do webdev like a sadomasochist
07:45:25FromDiscord<JSONBash> @ElegantBeef I am sure at some point the nim code you have written was valid python code
07:46:01FromDiscord<Phil> Anyway, overall in terms of time, with limited testing, both orc and default gave me backends that respond generally in ~20-40 ms depending on the API endpoint.↵The one endpoint with endlesss scrolling that I hit repeatedly via frontend on default GC felt like it ran more often near the 10 ms mark and below, while the orc version more often ran near the 20ms mark
07:46:12FromDiscord<Solitude> In reply to @JSONBash "<@145405730571288577> I am sure": with yardanicos forbidden library, it for sure could
07:46:34FromDiscord<Phil> That is, locally on a machine with a pretty fast CPU; I expect that to slow down by a factor 3-4 or so once deployed.
07:46:35FromDiscord<Yardanico> In reply to @JSONBash "<@145405730571288577> I am sure": is this enough?
07:46:36FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/969867349274542131/unknown.png
07:46:49FromDiscord<kaletaa> the best languages are those that unironically just slam you into the wall for the slightest error
07:46:53FromDiscord<kaletaa> at compile time
07:46:54FromDiscord<kaletaa> i love haskell
07:46:58FromDiscord<Yardanico> or maybe this? https://media.discordapp.net/attachments/371759389889003532/969867440878129182/unknown.png
07:47:02FromDiscord<Elegantbeef> Fuck off yard you even support stupid doc comments
07:47:04FromDiscord<Elegantbeef> I fucking hate you
07:47:07FromDiscord<Yardanico> lol
07:47:13FromDiscord<Yardanico> hey, it was really easy to support them
07:47:13FromDiscord<kaletaa> In reply to @Yardanico "or maybe this?": what the fuck
07:47:17FromDiscord<Yardanico> just triple quotes to nim doc comment
07:47:17FromDiscord<JSONBash> @Yardanico plz stop you're hurting me
07:47:24FromDiscord<Is> can nim be used on react
07:47:34FromDiscord<Yardanico> ReactOS?
07:47:36FromDiscord<kaletaa> In reply to @Is "can nim be used": if you compile to js
07:47:37FromDiscord<Phil> In reply to @Yardanico "just triple quotes to": Heresy! I need those for my raw SQL Statements!
07:47:43FromDiscord<Yardanico> https://github.com/Yardanico/nimpylib if you want to see man-made horrors beyond comprehension
07:47:56FromDiscord<Is> react is the front end thing
07:48:05FromDiscord<kaletaa> but i wouldn't recommend front end development with nim though
07:48:05FromDiscord<Elegantbeef> !ban @Yardanico for crimes against humanity
07:48:07FromDiscord<Is> In reply to @kaletaa "if you compile to": what does this mean
07:48:09FromDiscord<kaletaa> i wouldn't recommend front end in general
07:48:13FromDiscord<kaletaa> front end is painful
07:48:18FromDiscord<kaletaa> i'd rather shoot myself in the head
07:48:26FromDiscord<Is> i thought it was opposite
07:48:28FromDiscord<Elegantbeef> Eh tjere is karax for a VDOM library
07:48:29FromDiscord<Yardanico> i need to add this `def` macro to the nimpylib properly though
07:48:30FromDiscord<kaletaa> In reply to @Is "what does this mean": nim code turn into javascript code yes
07:48:36FromDiscord<Solitude> In reply to @kaletaa "i'd rather shoot myself": thats not a fair comparison
07:48:52FromDiscord<Phil> In reply to @Is "react is the front": React is a frontend, You don't write frontends such as Vue/Angular/React within nim. You can still achieve something similar, but you'd be using the nim-framework karax.
07:48:52FromDiscord<kaletaa> In reply to @Solitude "thats not a fair": yeah, shooting yourself in the head is a preferable alternative
07:48:52FromDiscord<Is> In reply to @kaletaa "nim code turn into": but then theres no point of using nim?
07:48:59FromDiscord<kaletaa> In reply to @Is "but then theres no": why not
07:49:06FromDiscord<Yardanico> In reply to @Is "but then theres no": you get to write Nim in the end though, not JS
07:49:09FromDiscord<Elegantbeef> C turns into asm there's still reason to use C
07:49:10FromDiscord<Is> why use nim just to turn it into javascript
07:49:14FromDiscord<JSONBash> JS === bad
07:49:18FromDiscord<Yardanico> In reply to @Is "why use nim just": why use Python just to turn it into bytecode
07:49:19FromDiscord<kaletaa> In reply to @Is "why use nim just": because it's less shit
07:49:21FromDiscord<Elegantbeef> Why use C to just turn it into asm
07:49:34FromDiscord<Solitude> In reply to @Is "why use nim just": why use food...
07:49:38FromDiscord<Yardanico> lol
07:49:41FromDiscord<kaletaa> eat shit theory
07:49:49FromDiscord<Phil> In reply to @Is "why use nim just": Js is slow, Js does not have a type system, and even if you use typescript it does not catch errors at compile time as effectively.
07:49:55FromDiscord<Phil> Also ya'll should just write assembly
07:50:03FromDiscord<JSONBash> why use asm when we have magic lightning rocks?
07:50:05FromDiscord<kaletaa> In reply to @Isofruit "Js is slow, Js": the slow argument doesn't really apply when you're compilling to js
07:50:07FromDiscord<Yardanico> In reply to @Isofruit "Js is slow, Js": he's about using Nim for the frontend
07:50:09FromDiscord<Phil> I've only been humouring you this entire time, assembly was the only sensible option!
07:50:09FromDiscord<Yardanico> when it compiles to JS
07:50:29FromDiscord<Phil> Check, the same reason people got it into their heads to use JS in the backend
07:50:35FromDiscord<Phil> Convenience of using a single language everywhere
07:51:28FromDiscord<Phil> (edit) "Check, the same reason people ... got" added "who"
07:51:31FromDiscord<Yardanico> ~~at least you can't compile to PHP with Nim anymore ~~
07:51:52FromDiscord<kaletaa> at least the compiler isn't pascal anymore
07:52:04FromDiscord<Elegantbeef> Eh jsgen is only a few thousand lines of code how hard could phpgen be 😄
07:52:16FromDiscord<JSONBash> at least Nim doesn't refer to https://en.wikipedia.org/wiki/Nim_Chimpsky anymore
07:52:17FromDiscord<Yardanico> In reply to @Elegantbeef "Eh jsgen is only": well it was in jsgen as well :D
07:52:21FromDiscord<Elegantbeef> Nim is a pascal dialecct
07:52:23FromDiscord<Yardanico> yes
07:52:24FromDiscord<kaletaa> invoke kernel panic when user tries to compile to php
07:52:29FromDiscord<Yardanico> Nim was supposed to be called Pascal++
07:52:37FromDiscord<Phil> Generally working within the JS ecosystem is going to give you a better experience imo because you have access to more tools.
07:52:52FromDiscord<Phil> (edit) "Generally working within the JS ecosystem is going to give you a better experience imo ... because" added "for frontend"
07:52:58FromDiscord<kaletaa> the JS ecosystem only provides a better experience because it has everything already
07:53:12FromDiscord<Elegantbeef> Except for pad left
07:53:16FromDiscord<kaletaa> it's great for mass-produced webdevs because you don't have to thing
07:53:17FromDiscord<kaletaa> (edit) "thing" => "think"
07:53:34FromDiscord<Phil> You're also not buying into the inherent possibly issues of problems arising during the nim --> JS translation step
07:53:36FromDiscord<Elegantbeef> Now now put the superiority complex up your ass
07:53:50FromDiscord<kaletaa> sorry that's like 1/3 of my personality
07:53:52FromDiscord<Phil> (edit) "possibly issues" => "possibility"
07:54:19FromDiscord<kaletaa> but the web development industry is generally filled with people who are only there for the money
07:54:25FromDiscord<kaletaa> and programming is a secondary to them
07:54:27FromDiscord<kaletaa> it's a shame really
07:54:45FromDiscord<Is> In reply to @kaletaa "but the web development": https://tenor.com/view/pedro-monkey-puppet-meme-awkward-gif-15268759
07:54:47FromDiscord<JSONBash> i think its more 'it's a job really'
07:55:11FromDiscord<Phil> Anyway, ignoring that inane off-shoot
07:55:20FromDiscord<kaletaa> "mald"
07:55:41FromDiscord<Is> can nim be used to mine bitcoin
07:55:47FromDiscord<Yardanico> yes
07:55:48FromDiscord<kaletaa> yes
07:56:01FromDiscord<kaletaa> but you probably shouldn't roll your own mining software
07:56:13FromDiscord<Yardanico> all of you "can nim " question will be answerred with "true" as long as C/C++/or any other compiled language can do it
07:56:16FromDiscord<Is> can i make my own crypto with nym
07:56:18FromDiscord<Yardanico> yes
07:56:21FromDiscord<kaletaa> stop asking
07:56:23FromDiscord<kaletaa> dumb questions
07:56:24FromDiscord<Is> damn damn
07:56:24FromDiscord<Yardanico> yes
07:56:31FromDiscord<Yardanico> In reply to @kaletaa "dumb questions": hey don't be rude
07:56:40FromDiscord<kaletaa> that's like another 1/3 of my personality
07:56:54FromDiscord<Elegantbeef> Soon your personality is going be be 5/3
07:57:01FromDiscord<kaletaa> maybe
07:57:08nrds<Prestige99> I hear they have great deals for personalities at Walmart
07:57:13FromDiscord<Is> 1/3 of his personality is being bad at math
07:57:25FromDiscord<kaletaa> no that's 3/2th of my personality
07:57:33FromDiscord<Yardanico> https://answers.launchpad.net/nimrod/+question/69317
07:57:36FromDiscord<Yardanico> "No and I am undetermined what a good mascot would be. Maybe a crown (for obvious reasons)?"
07:57:46FromDiscord<Yardanico> 🤔
07:57:50FromDiscord<Solitude> Lore
07:57:52FromDiscord<Phil> Alright, move the flaming to off-topic once more please, thanks.
07:58:18FromDiscord<Is> who made nim tho
07:58:21FromDiscord<kaletaa> i did
07:58:27FromDiscord<Is> cope
07:58:38FromDiscord<Is> it was made by a very humble man as i dont see credits anywhere
07:58:51FromDiscord<Yardanico> Alright, move to #offtopic
07:59:09FromDiscord<Phil> Araq aka Andreas Rumpf, there'a host of contributors as well, many of which are in this discord, you can check them out on github
07:59:09FromDiscord<kaletaa> In reply to @Is "it was made by": https://github.com/nim-lang/Nim/graphs/contributors
07:59:15FromDiscord<Yardanico> Having a little bit of spam once in a while is nice, but not enough
07:59:18FromDiscord<Phil> (edit) "Araq aka Andreas Rumpf, there'a host of ... contributors" added "other"
07:59:44FromDiscord<Elegantbeef> "but not enough" Oh you want more spam?
07:59:52FromDiscord<kaletaa>
08:00:00FromDiscord<JSONBash> https://tenor.com/view/spam-spamalert-gif-20933994
08:00:23FromDiscord<Elegantbeef> Ok i have to appreciate this person lurking on matrix right now, their name is unseenspy
08:00:33FromDiscord<Elegantbeef> That's a prestine lurker name
08:00:41FromDiscord<JSONBash> https://media.discordapp.net/attachments/371759389889003532/969870895852158976/spam.webp
08:01:41FromDiscord<Yardanico> More lore - https://www.mail-archive.com/[email protected]/msg244793.html
08:01:43FromDiscord<JSONBash> he's also a liar he's now seen
08:02:12FromDiscord<JSONBash> (edit) "he's also a liar he's now seen ... " added "(to beef's comment)"
08:10:04FromDiscord<Phil> Man, once my serialization layer actually works fully correctly and I don't randomly have my frontend explode because was lowercase where it should've been uppercase or somesuch, I'll really need to look into how to generalize that stuff
08:11:06FromDiscord<Phil> The amount of code written to press my model-objects into objects with the field-names feels slightly ridiculous and highlighted a bit that for serialization purposes, duck-typed languages are pretty strongly favored
08:11:26FromDiscord<Phil> (edit) "The amount of code written to press my model-objects into objects with the field-names ... feels" added "I actually need"
08:11:49FromDiscord<Elegantbeef> Generics go brr
08:12:10FromDiscord<Phil> Sadly not in this case, because there's enough one-off differences that I can't generically solve them all
08:12:23FromDiscord<Elegantbeef> I mean use generic interfaces
08:12:31FromDiscord<Elegantbeef> Concepts + Generics interfaces
08:13:03FromDiscord<Is> what OS u using
08:13:13FromDiscord<Phil> I don't think I've ever heard the term "Generic interface" in the context of nim, when you mentioned that I though you meant concepts only
08:13:46FromDiscord<Phil> Or did you mean generic concepts?
08:13:56FromDiscord<Elegantbeef> I mean generic interfaces
08:14:07FromDiscord<Elegantbeef> Use polymorphism to make interfaces for your types
08:14:45nrds<Prestige99> MI when?
08:14:51FromDiscord<Phil> Ohhhh like, have them all inherent from the same base, then write generic procs that take variations of that base class?
08:14:55FromDiscord<Elegantbeef> No
08:14:57FromDiscord<Elegantbeef> Jesus
08:15:01FromDiscord<Elegantbeef> Inheritance is dead
08:16:02FromDiscord<Phil> I believe I likely should focus on breakfast to get the brain actually going, I currently can't get a mental image of what you've described
08:16:20FromDiscord<Phil> Or if I have seen it before, I'm currently not associating it with the name "generic interface"
08:17:38FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3WD9
08:17:38FromDiscord<Elegantbeef> There is a generic interface
08:18:01FromDiscord<Elegantbeef> You overload `saveToString` for your given type else it uses the built in
08:19:33FromDiscord<Phil> Ohhh auto
08:19:38FromDiscord<Phil> Man I have not touched that one yet
08:19:40FromDiscord<Elegantbeef> Not auto
08:19:46FromDiscord<Yardanico> In reply to @Isofruit "Man I have *not*": auto is no different than a generic proc
08:19:55FromDiscord<Yardanico> it's literally same as `proc doSomething[T](arg: T)`
08:19:57FromDiscord<Elegantbeef> it's the same as `saveToString[T](a: T`
08:19:58FromDiscord<Yardanico> just shorter syntax
08:20:04FromDiscord<Phil> Ah, check
08:20:07FromDiscord<Yardanico> the main thing here is `mixin`
08:20:17FromDiscord<Phil> Wait, I do that in my generic repository
08:20:44FromDiscord<Elegantbeef> Well this is how you make generic interfaces and with this simple logic you can make entire serialization libraries
08:20:56FromDiscord<Elegantbeef> Jsony uses this pattern for instance
08:21:06FromDiscord<Yardanico> flatty as well
08:21:13FromDiscord<Yardanico> https://github.com/treeform/flatty/blob/master/src/flatty.nim @Phil
08:21:20FromDiscord<Elegantbeef> It gives full user control with sane defaults
08:21:29FromDiscord<Elegantbeef> I mean most do sense it's a fucking awesome setup
08:21:35FromDiscord<Elegantbeef> since\
08:22:10FromDiscord<Phil> Hmm once I'm in the refactoring stage I'll likely meditate over this type of solution
08:22:59FromDiscord<Elegantbeef> It's the best solution
08:23:04FromDiscord<Elegantbeef> It's basically rust traits but dumb
08:23:46FromDiscord<Phil> If I wanted to provide custom compile-time-error-messages, I'd check for the existance of the procs in a concept and throw that there, correct?
08:23:53FromDiscord<Elegantbeef> No
08:23:55FromDiscord<Phil> (edit) "If I wanted to provide custom compile-time-error-messages, I'd check for the existance of the procs ... in" added "I mixin"
08:24:00FromDiscord<Elegantbeef> You just use a concept
08:24:07FromDiscord<Elegantbeef> There is no need for error messages
08:24:21FromDiscord<Elegantbeef> If a type doesnt match the concept it's not implemented
08:25:11FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3WDa
08:25:22FromDiscord<Elegantbeef> You now have a static error message that `X is not Serializable` on attempted dispatch
08:26:10*vicecea quit (Remote host closed the connection)
08:26:38*vicecea joined #nim
08:26:47FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3WDb
08:26:48FromDiscord<Elegantbeef> Compile this and see what `{.explain.}` gives you
08:26:59FromDiscord<Elegantbeef> Oh actually it's not needed
08:27:04FromDiscord<Elegantbeef> It already explains the reason it fails
08:27:45FromDiscord<Elegantbeef> Might not with more `saveToString` procedures
08:28:33FromDiscord<Phil> Why the s after the key-word "concept"?
08:28:58FromDiscord<Yardanico> because saveToString takes some type
08:29:03FromDiscord<Yardanico> and you're describing that type in the concept
08:29:15FromDiscord<Yardanico> i mean it takes an object of some type
08:29:25FromDiscord<Phil> Ohhh and after concept you assign the symbol you'll use within the concept
08:29:33FromDiscord<Phil> (edit) "Ohhh and after concept you assign the symbol you'll use within the concept ... " added "as placeholder for the type"
08:32:37FromDiscord<Phil> In reply to @Elegantbeef "It already explains the": Yeh, basically goes "type no match, is no string". ↵For the most part, that basically only says "This fails the concept"; though not where in the concept it fails. So for the most part, you're recommended to use small-ish concepts so that you don't have to troubleshoot which of the n checks just failed.
08:32:51FromDiscord<Phil> (edit) "In reply to @Elegantbeef "It already explains the": Yeh, basically goes "type no match, is no string". ↵For the most part, that basically only says "This fails the concept"; though not where in the concept it fails. So for the most part, you're ... recommended" added "seemingly"
08:34:15FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=3WDg
08:34:37FromDiscord<Phil> (edit) "https://play.nim-lang.org/#ix=3WDg" => "https://play.nim-lang.org/#ix=3WDh"
08:35:15FromDiscord<Elegantbeef> In old concepts thats how you bind a variable to that type
08:35:15FromDiscord<Elegantbeef> so it's a variable `s` that is the type you're checking
08:35:22FromDiscord<Elegantbeef> I did mess up the new concepts
08:35:35FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3WDj
08:36:14FromDiscord<Elegantbeef> I mean it states the error is at line 2
08:36:44FromDiscord<Elegantbeef> Hmm would be nice if it explicitly stated the reason for failure
08:37:07FromDiscord<Elegantbeef> But i doubt a PR would be accepted for that due to concepts 2.0 being on the horizon
08:37:47FromDiscord<mratsim> {.explain.} kind of help but the output ressembles C++ or Java type errors, reeeeaaaallllllyyyyy a brain dump
08:38:25FromDiscord<Elegantbeef> Yea i mean it should just iterate through the concept entries that it's attempting to match and print out the statement verbatim and the result
08:38:49FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3WDk
08:39:37FromDiscord<Elegantbeef> Or some other message than `false` of course
08:40:34FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3WDl
08:40:37FromDiscord<Phil> I mean, false is sort of implied, imo just the statement itself would already be nice
08:40:56FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=3WDm
08:41:04FromDiscord<Elegantbeef> I have 0 clue if a PR would be accepted for old concepts
08:41:13*Gustavo6046 quit (Quit: Goodbye! Leave messages at my XMPP @ [email protected] or my Discord Gustavo6046#9009 or possibly my Mastodon [email protected] – I don't check my email often since it's full of crap, but in any case, [email protected])
08:41:38FromDiscord<Phil> If they have a limited lifespan I'm not sure it'd be worth the time assuming that the next concept-iteration will drop within months or sth
08:41:51FromDiscord<Elegantbeef> Lol
08:41:58FromDiscord<Elegantbeef> The new concepts are already here
08:42:05FromDiscord<Elegantbeef> They just are limited
08:42:09FromDiscord<Phil> Ohhh check
08:42:10FromDiscord<Yardanico> unfinished :)
08:42:12FromDiscord<Elegantbeef> And some say poorly implemented
08:43:26FromDiscord<Phil> wow, my eyes scanned over the "new concept" thing and didn't even notice that the "new concept" thingy has a proc in its declaration
08:43:45FromDiscord<Elegantbeef> Yea they're basically rust traits
08:43:55FromDiscord<Elegantbeef> Only need to add field support to make me happy
08:44:00FromDiscord<Yardanico> if you want runtime interfaces, there's also https://github.com/yglukhov/iface with almost the same syntax
08:44:04FromDiscord<Phil> sent a code paste, see https://paste.rs/9Cj
08:44:06FromDiscord<Yardanico> yes
08:44:07FromDiscord<Phil> and outputs string?
08:44:09FromDiscord<Yardanico> and that it returns a string
08:44:12FromDiscord<Phil> Check
08:44:18FromDiscord<Elegantbeef> How dare you yard not talk about traitors 😛
08:44:22FromDiscord<Yardanico> whaaat
08:44:28FromDiscord<Elegantbeef> https://github.com/beef331/traitor
08:44:34FromDiscord<Yardanico> never seen it
08:44:38FromDiscord<Elegantbeef> Traitor is my silly runtime trait system
08:44:44FromDiscord<Elegantbeef> And compile time i guess
08:44:54FromDiscord<Yardanico> how fast is it compared to iface? :P
08:45:02FromDiscord<Elegantbeef> Probably slow as dog shit
08:45:08FromDiscord<Elegantbeef> I wrote it for fun after talking to prestige
08:45:17FromDiscord<Elegantbeef> I do have a vtable
08:45:21FromDiscord<Yardanico> oh so you don't require them to be `ref`s ?
08:45:23FromDiscord<Yardanico> the objects themselves
08:45:26FromDiscord<Elegantbeef> Nope
08:45:27FromDiscord<Yardanico> but you have byref
08:45:33FromDiscord<sheerluck> In reply to @Elegantbeef "Probably slow as dog": but elegant
08:45:39FromDiscord<Yardanico> oh okay, iface requires that objects need `ref`
08:45:44FromDiscord<Elegantbeef> Yes cause I havent made an procedure to alias it
08:46:02FromDiscord<Elegantbeef> I should emit a procedure that takes a `ptr T`
08:46:11FromDiscord<Elegantbeef> The code is a mess though, was mostly for fun
08:46:59FromDiscord<Elegantbeef> It should properly support `ref` objects and keep them alive for the lifetime but heavily untested 😄
09:11:57*Zectbumo quit (Remote host closed the connection)
09:14:14FromDiscord<Phil> Errr... url encoding isn't really a proper encoding in the sense that it is covered by std/encodings right?↵Basically I'm trying to parse a URL string and replace the URL-encoded characters (such as spaces that are in there as %20).↵I couldn't find anything in std/encodings and std/httpclient, is there something in the std?
09:14:31FromDiscord<Elegantbeef> `import std/uri`
09:14:54FromDiscord<Phil> My ctrl+F game is so effing weak
09:15:10FromDiscord<Phil> Thanks beef, I'm dumb
09:19:37*neceve joined #nim
09:21:30FromDiscord<Elegantbeef> Yea there are a bunch of modules in the stdlib that are a surprise to see
09:38:49FromDiscord<Phil> What kills me is I ctr+F'd `url` and didn't find it, didn't even think about uri
09:39:41FromDiscord<dom96> That’s my bad sorry
09:40:00FromDiscord<dom96> We’ll really it’s whoever write the URI RFCs fault :)
09:40:07FromDiscord<dom96> (edit) "write" => "wrote"
09:40:17FromDiscord<dom96> (edit) "We’ll" => "Well"
09:52:03FromDiscord<System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=3WDz
09:54:01FromDiscord<Yardanico> sent a code paste, see https://paste.rs/v1r
09:54:01FromDiscord<Yardanico> --passC:"-m32" --passL:"-m32"
09:57:39*jmdaemon quit (Ping timeout: 272 seconds)
10:04:38FromDiscord<System64 ~ Flandre Scarlet> ah alright
10:04:51FromDiscord<System64 ~ Flandre Scarlet> but why ---passL? isn't it for libs?
10:16:09FromDiscord<Solitude> passl is for linker
10:17:00FromDiscord<System64 ~ Flandre Scarlet> ah alright
10:18:49FromDiscord<System64 ~ Flandre Scarlet> In reply to @Solitude "passl is for linker": Even worse! https://media.discordapp.net/attachments/371759389889003532/969905658860285962/message.txt
10:22:54FromDiscord<Yardanico> In reply to @System64 "Even worse!": are you sure your mingw supports 32-bit compilation?
10:28:07FromDiscord<System64 ~ Flandre Scarlet> In reply to @Yardanico "are you sure your": it should
10:28:17FromDiscord<System64 ~ Flandre Scarlet> is it the mingw included with Nim?
10:31:57FromDiscord<System64 ~ Flandre Scarlet> I have mingw64 in my Nim folder
10:40:22*xet7 joined #nim
10:44:20FromDiscord<FireLite> How can I pointer scan the signature in the process?
10:45:24*firq quit (Ping timeout: 240 seconds)
10:46:49FromDiscord<d4rckh> what do i need to compile for linux on windows?
10:49:28FromDiscord<Recruit_main707> `--os:linux`
10:50:19FromDiscord<Recruit_main707> https://nim-lang.org/docs/nimc.html#crossminuscompilation
10:56:02FromDiscord<System64 ~ Flandre Scarlet> Do I absolutely need a 32-bits version of Nim to compile for 32-bits?
10:56:17FromDiscord<Yardanico> no, you need 32-bit C compiler
10:56:26FromDiscord<Yardanico> 64-bit nim will compile 32-bit programs without issue
10:57:12FromDiscord<ambient> how do I know if function call copies a value or it's moved by reference? is there a trap that I can accidentally copy instead of just pointer or ref?
10:57:21FromDiscord<System64 ~ Flandre Scarlet> In reply to @Yardanico "no, you need 32-bit": I have that in my dist https://media.discordapp.net/attachments/371759389889003532/969915351607439410/unknown.png
10:57:25FromDiscord<Yardanico> In reply to @ambient "how do I know": is there a reason you want to know that?
10:57:41FromDiscord<Yardanico> Nim will pass by reference for objects too large, and copy for small objects
10:57:54FromDiscord<System64 ~ Flandre Scarlet> and there is mingw32 here https://media.discordapp.net/attachments/371759389889003532/969915493026775050/unknown.png
10:58:02FromDiscord<ambient> In reply to @Yardanico "is there a reason": I never want to copy unless it's done explicitly (like .clone)
10:58:21FromDiscord<Yardanico> In reply to @ambient "I never want to": then you want to use destructors semantics and override =copy for your type
10:58:27FromDiscord<Recruit_main707> i think it passes by reference if the size is `size(float64) 3` or larger
10:58:40FromDiscord<ambient> In reply to @Yardanico "then you want to": ty
10:58:43FromDiscord<Recruit_main707> or the `{.bycopy.}` pragma no?
10:58:44FromDiscord<Yardanico> In reply to @Recruit_main707 "i think it passes": yes, but that's an internal detail
10:58:52FromDiscord<Yardanico> In reply to @Recruit_main707 "or the `{.bycopy.}` pragma": that will always pass by copy, yes, it's for C FFI
10:59:05FromDiscord<Recruit_main707> thats what he wants doesnt he?
10:59:16FromDiscord<Rika> He said he wanted to disallow copies
10:59:35FromDiscord<Rika> Well, implicit ones
11:00:01FromDiscord<Yardanico> yes, the only real reason to do that is to override =copy so that it errors
11:00:08FromDiscord<Yardanico> so copies are prevented at compile time
11:00:56FromDiscord<Recruit_main707> ah, sorry
11:03:15FromDiscord<System64 ~ Flandre Scarlet> In reply to @System64 "and there is mingw32": @Yardanico does this setup allows me to compile in 32-bits?
11:04:33FromDiscord<Yardanico> not sure really
11:07:09FromDiscord<System64 ~ Flandre Scarlet> And how can I switch to 32-bits setup?
11:17:44FromDiscord<demotomohiro> Set Path environment variable so that gcc for 32bit is executed and try nim c --cpu:i386 mycode.nim.
11:19:14FromDiscord<demotomohiro> https://nim-lang.org/docs/nimc.html#crossminuscompilation
11:20:15FromDiscord<System64 ~ Flandre Scarlet> In reply to @demotomohiro "Set Path environment variable": This is the Path to Nim https://media.discordapp.net/attachments/371759389889003532/969921119593332766/unknown.png
11:24:30FromDiscord<demotomohiro> If you already can call nim from command line, you dont need to add a path to that directory in PATH.
11:45:35FromDiscord<d4rckh> hmm, how can i hook the esc key in my terminal app? similarly how you can hook the ctrl+c combo
11:45:39FromDiscord<d4rckh> (edit) removed "hmm,"
11:48:15FromDiscord<Solitude> You can try illwill.
11:48:29FromDiscord<d4rckh> cant i do it with the terminal library?
11:53:20FromDiscord<System64 ~ Flandre Scarlet> Finally! I compiled!
11:54:25FromDiscord<enthus1ast> @d4rckh\: this depends how you get your keys
11:54:41FromDiscord<enthus1ast> if you just do stdin.readline or similar i think you cannot hook esc
11:55:03FromDiscord<2F42BBA1> I want to add Windows autostartup for my thing on Nim. Software first asks if user wants so and if he says yes then it will go and add itself to the Windows startup. How do I implement that?
11:55:34FromDiscord<enthus1ast> @2F42BBA1\: create a registry key?
11:55:35FromDiscord<2F42BBA1> As for now I think either copying a file to a directory related to autostartup, or use registry stuff via winim.
11:55:51FromDiscord<2F42BBA1> In reply to @enthus1ast "<@790153860130799616>\: create a registry": That's what I thought so
11:56:51FromDiscord<2F42BBA1> not sure how it should look like via winim, so examples would be appriciated
12:00:21FromDiscord<Rika> In reply to @enthus1ast "if you just do": You can with effort and losing windows support I believe
12:00:41FromDiscord<Rika> Or without losing windows support but a good bit more code
12:00:57FromDiscord<2F42BBA1> https://nim-lang.org/docs/registry.html↵hm...
12:01:05FromDiscord<enthus1ast> i would just use illwill
12:01:12FromDiscord<enthus1ast> or copy out the solution
12:01:30*duuude quit (Read error: Connection reset by peer)
12:01:56FromDiscord<deadmeme77> In reply to @2F42BBA1 "I want to add": just copy a shortcut to this folder no? https://media.discordapp.net/attachments/371759389889003532/969931608532615188/unknown.png
12:01:57FromDiscord<enthus1ast> @2F42BBA1\: i found old code that does this, but its using nim\_win\_registry
12:02:20FromDiscord<deadmeme77> (edit) "no?" => "no?↵↵Might need admin access AND UAC confirmation"
12:02:23*duuude joined #nim
12:02:24FromDiscord<2F42BBA1> In reply to @enthus1ast "<@790153860130799616>\: i found old": anything will help
12:02:48FromDiscord<enthus1ast> i mean, calling some winapi functions should not be that hard as well
12:02:56FromDiscord<enthus1ast> but sure will paste it, sec
12:03:26FromDiscord<2F42BBA1> In reply to @deadmeme77 "just copy a shortcut": I might give a try but I must figure out how to copy the executable over this directory↵Prob, gotta use this https://nim-lang.org/docs/os.html#copyFile%2Cstring%2Cstring
12:03:30FromDiscord<deadmeme77> (does the irc bot send images btw)
12:03:57FromDiscord<deadmeme77> In reply to @2F42BBA1 "I might give a": oh, shortcuts are symlinks I guess, that might work
12:06:43FromDiscord<enthus1ast> https://play.nim-lang.org/#ix=3WEh
12:06:54FromDiscord<enthus1ast> but its very old and might not work any more
12:22:41*kayabaNerve quit (Ping timeout: 272 seconds)
12:30:59FromDiscord<2F42BBA1> enthus1ast: thanks for your thing it helped me
12:31:50FromDiscord<enthus1ast> np
12:32:12FromDiscord<hmmm> broborskis! how do I pass parameters to an already running program
12:32:23FromDiscord<hmmm> 🤔
12:32:33FromDiscord<enthus1ast> i think you can't
12:32:43FromDiscord<hmmm> oh noes why I can't 🧐
12:32:52FromDiscord<exelotl> use the network
12:33:04FromDiscord<enthus1ast> yeah prolly the best
12:34:01FromDiscord<enthus1ast> what are you trying to do?
12:36:08FromDiscord<hmmm> hmm I don't know yet lol. I see python dudes have some popen thingy
12:36:17FromDiscord<demotomohiro> You can also use pipes or signals for inter process communications
12:36:30FromDiscord<enthus1ast> you could also send stuff to the stdin
12:36:45FromDiscord<hmmm> send me examples you cuties
12:37:14FromDiscord<Rika> Would you like a silver or a gold spoon
12:37:32FromDiscord<enthus1ast> https://nim-lang.org/docs/osproc.html#inputStream%2CProcess
12:37:33FromDiscord<hmmm> haha I got caught 😄
12:37:41FromDiscord<hmmm> ty enthy ❤️
12:38:19FromDiscord<enthus1ast> but i also would go for network, i think async networking is easier with nim
12:38:58FromDiscord<enthus1ast> depends on what you wanna do i think
12:45:47FromDiscord<Knedlik> sent a code paste, see https://play.nim-lang.org/#ix=3WEo
12:46:21FromDiscord<Knedlik> The dev is on the `Nim` branch, this is the engine: https://github.com/Periapsis-Studios/Periapsis-Engine
12:57:34FromDiscord<Knedlik> I think I found the prob and I don't know how to solve it https://github.com/nim-lang/Nim/issues/11592
12:58:44FromDiscord<2F42BBA1> sent a code paste, see https://play.nim-lang.org/#ix=3WEq
13:00:16FromDiscord<2F42BBA1> docs on registry are here https://nim-lang.org/docs/registry.html
13:03:30FromDiscord<eyecon> I'm trying to solve Cryptopals and need to have an AES implementation. I won't be changing advanced options or implement anything special. What options do we have for plain AES? I found nimcrypto and nimAES. nimAES looks specialized for AES and looks easy to use. Did I miss any other package that you know of?
13:04:23FromDiscord<2F42BBA1> In reply to @eyecon "I'm trying to solve": AFAIK a lot of people use nimcrypto, so better to use that one.
13:06:14FromDiscord<eyecon> In reply to @2F42BBA1 "AFAIK a lot of": Was it endorsed officially or something? nimcrypto has more stars in Github but both have not enough to make a direct popularity comparison.
13:06:44FromDiscord<Yardanico> In reply to @eyecon "Was it endorsed officially": nimcrypto is used by Status who do ethereum stuff :P
13:06:57FromDiscord<Solitude> In reply to @eyecon "Was it endorsed officially": Its more used and tested
13:06:59FromDiscord<eyecon> In reply to @Yardanico "nimcrypto is used by": Ah, well, that's a good endorsement
13:07:10FromDiscord<eyecon> Thank you all!
13:07:19*duuude quit (Quit: Konversation terminated!)
13:07:34*duuude joined #nim
13:09:04FromDiscord<2F42BBA1> sent a code paste, see https://paste.rs/XS1
13:13:26FromDiscord<Yardanico> Just to give it more exposure - https://github.com/nim-lang/RFCs/issues/456 - RFC about getting rid of style insensitivity for Nim v2. Feel free to leave your opinion through votes and comments, we need more feedback on this from both "sides"
13:20:34FromDiscord<Phil> You can use isOk and is_ok interchangeably?
13:20:40FromDiscord<Phil> Huh
13:21:06FromDiscord<eyecon> In reply to @Isofruit "You can use isOk": Yeah, all underscores get ignored and only the case for the first character is considered important
13:22:02FromDiscord<Phil> I'm looking at this with mostly neutrality and a very slight leaning towards removing style ambivalence
13:22:49FromDiscord<Phil> Like, nice but very close to the bottom of what I would consider relevant
13:23:35FromDiscord<eyecon> I like it a lot but if it would make the life easier for the core developers and the tool developers then I would be also OK, on the other hand I don't see how it would change things that much
13:24:13FromDiscord<eyecon> (edit) "it" => "style-insensitivity/"
13:24:27FromDiscord<Phil> Yard, from your perspective, would it make the lives of core devs easier?
13:25:01NimEventerNew thread by Dom96: Nim v2: what would you change?, see https://forum.nim-lang.org/t/9132
13:25:09FromDiscord<dom96> Also ^ :)
13:28:12FromDiscord<Alea> In reply to @NimEventer "New thread by Dom96:": hmmm
13:28:29FromDiscord<Alea> Case sensitivity would be an interesting change
13:28:37FromDiscord<hmmm> ye I'm with dom with this one, it should also be a boost for people to finally try it when v2 comes
13:28:51FromDiscord<hmmm> v2 comes only one time peoples! 🧐
13:29:04FromDiscord<Alea> I see both sides of the argument, I definitely like using it with C wrappers
13:29:25FromDiscord<enthus1ast> the tooling must be much better imho
13:29:42FromDiscord<eyecon> Are there really so many people that say "Oh, how I would like to try out Nim, only if it didn't have this style insensitivity"?
13:29:51FromDiscord<Yardanico> In reply to @eyecon "Are there really so": do, just a couple of random HN folks
13:29:53FromDiscord<enthus1ast> eg nimsuggest is quite unusable currently
13:29:59FromDiscord<Yardanico> that's one of the top arguments against Nim on HN
13:30:01FromDiscord<Yardanico> and HN, you know, is HN
13:30:24FromDiscord<eyecon> I mean, many people bash Python because of significant whitespace, we could get rid of that too
13:30:24FromDiscord<Yardanico> the other top 3 are GC (with ARC it's not really valid) and whitespace indentation
13:30:25FromDiscord<Phil> I never used c libs so I didn't consider c interop.↵If that becomes easier with removing style ambivalence then I'd support it.
13:30:35FromDiscord<Yardanico> In reply to @enthus1ast "the tooling must be": yes, but I also don't see how case sensitivity would magically
13:30:38FromDiscord<Yardanico> fix that
13:30:38FromDiscord<Phil> Though still mostly uncaring
13:30:43FromDiscord<Yardanico> nimsuggest requires tons of changing to become reliable
13:31:11*arkurious joined #nim
13:31:27FromDiscord<dom96> In reply to @eyecon "Are there really so": there are, and not just on HN
13:31:47FromDiscord<dom96> I think a lot of people see it as a very strange thing to have for a language
13:31:59FromDiscord<dom96> I've met folks in the real world that think so too :)
13:32:21FromDiscord<0ffh> Yeah, but I also see the point that style insensitivity can be troublesome when you try to import from a foreign language library that has distinct symbols that cannot be distinguished without style sensitivity.
13:32:23FromDiscord<enthus1ast> strange reason to not try a lang imho \:)
13:32:40FromDiscord<Yardanico> In reply to @dom96 "I think a lot": people did that for python as well because of indentation
13:32:44FromDiscord<Yardanico> but look at where were are today
13:32:53FromDiscord<Yardanico> it only took it what? 15-20 years to get popular?
13:33:06duuudestyle insensitivity is nice. holy style wars fit my taste.
13:33:06FromDiscord<Yardanico> (python was first released in 1991)
13:33:47FromDiscord<dom96> I don't have strong feelings one way or the other tbh
13:33:54FromDiscord<Phil> Yeh but allowing as seamless interop as possible for a smooth experience is king imo
13:34:15FromDiscord<dom96> I just think Nim is very unique with this feature
13:34:25FromDiscord<dom96> indentation-based blocks are much more common
13:34:49FromDiscord<Phil> And if your c lib has gc_bla and gcbla then style sensitivity is better imo because smoother integration
13:34:49FromDiscord<dom96> As for ffi/interop see my comment in the GH issue
13:35:08FromDiscord<dom96> just have Nim generate both aliases :D
13:35:13FromDiscord<eyecon> In reply to @dom96 "As for ffi/interop see": That's certainly a strong argument and made me retract my thumbs-down
13:35:23FromDiscord<dom96> and then you'll get gc_bla and gcBla (correctly uppercased)
13:35:28FromDiscord<Yardanico> In reply to @dom96 "As for ffi/interop see": yes, but this argument goes both ways
13:36:24FromDiscord<eyecon> An alternative way (not necessarily good IMHO) would be to have optional style-sensitivity but it looks like the worst of both worlds
13:38:08FromDiscord<hmmm> hmm nim has enough going for it to get rid of the quirkiness. This will be the shiny on v2 release
13:38:43FromDiscord<Phil> I'm not sure it would be all that shiny, I would mostly stare at that gc change
13:38:59FromDiscord<eyecon> If the style insensitivity goes away, then a big chunk of existing Nim code must be revised. Any plans for the transition? Let's not pull a Python3 here
13:39:12FromDiscord<Yardanico> In reply to @eyecon "If the style insensitivity": styleCheck has existed for quite a while, but yes, a lot of code will break
13:39:17FromDiscord<Yardanico> that's already expected for v2
13:40:01FromDiscord<dom96> In reply to @eyecon "If the style insensitivity": we shouldn't ever be in as much trouble as the py2 -> 3 transition since Nim isn't a runtime dependency, folks can always compile their code using the older compiler
13:40:20FromDiscord<dom96> and if we really want we can also still offer a --ignoreStyle flag or something for v2
13:40:28FromDiscord<exelotl> yeah, the worst that'll happen is your program doesn't compile, you won't have to _run_ the program to find out what's broken
13:40:33FromDiscord<Yardanico> In reply to @dom96 "and if we really": please no
13:40:44FromDiscord<Yardanico> instead i hope we remove ALL backwards-compat flags for v2
13:40:51FromDiscord<Yardanico> otherwise it doesn't make sense to keep the hundreds of switches we have
13:40:52FromDiscord<dom96> fair
13:40:59FromDiscord<Yardanico> do you know what is -d:nimWorkaround1447 ?
13:41:01FromDiscord<Yardanico> (edit) "-d:nimWorkaround1447" => "-d:nimWorkaround14447 is"
13:41:02FromDiscord<dom96> that would be a breath of fresh air :)
13:41:29*slowButPresent joined #nim
13:41:30FromDiscord<Phil> In reply to @exelotl "yeah, the worst that'll": The compiler being my friend that gives understandable advice is one of the best things period
13:43:08FromDiscord<dom96> hey planetis, I'm moving your comment to the GH issue
13:43:17FromDiscord<dom96> want to avoid splitting the discussion
13:43:37FromDiscord<Phil> Planetis? Where?
13:43:58FromDiscord<dom96> they posted in the forum
13:44:04FromDiscord<Phil> Ah, check
13:44:17FromDiscord<dom96> (I think/hope they are on IRC)
13:44:32*rockcavera joined #nim
13:44:32*rockcavera quit (Changing host)
13:44:32*rockcavera joined #nim
13:44:49FromDiscord<eyecon> In reply to @dom96 "(I think/hope they are": @planetis in Discord maybe?
13:45:10FromDiscord<planetis> wasup?
13:45:14FromDiscord<0ffh> Getting rid of style insensitivity does not create a real incompatibility problem.↵Just present the community with a command line tool that eats insensitive code and produces code in a chosen style.
13:45:42FromDiscord<0ffh> An easily automatable problem is really no problem.
13:45:44FromDiscord<Yardanico> In reply to @0ffh "Getting rid of style": this has always been a problem with Nim :) we don't even have a general formatting tool, and I doubt removing case insensitivity will help much with all the features Nim syntax has
13:45:52FromDiscord<Yardanico> i mean a working formatting tool
13:46:49FromDiscord<dom96> In reply to @0ffh "Getting rid of style": True, this can be solved with better tooling/IDE support for all languages really
13:46:52FromDiscord<0ffh> In reply to @Yardanico "this has always been": Yeah but switiching out inconsistent symbols is much easier than formatting. Formatting has 10 trillion edge cases that need their own parameters.
13:46:53FromDiscord<Phil> Can we throw money at nim suggest to tackle the issue?
13:48:24FromDiscord<Phil> I'll take that as a no. Hmmm yeah no idea
13:48:42FromDiscord<Yardanico> In reply to @Isofruit "Can we throw money": you also need developers who are willing to do this, even for money
13:48:52FromDiscord<demotomohiro> Nim allows import functions from C with different name like `proc makeFoo(): Foo {.import: "createBar".}` isnt it? So if there are 2 funcs like foo_bar and fooBar in c lib, Nim can import them as `fooBar1`, `fooBar2`.
13:49:02FromDiscord<Yardanico> did you know that Nim paid a professional programmer to add first-class hot-code reloading support to Nim? Have you EVER seen anyone reference it or use it?
13:49:11FromDiscord<Yardanico> No, because it was broken from almost the very start
13:49:23FromDiscord<eyecon> That... sounds extremely hard
13:49:23FromDiscord<Phil> Ouch
13:49:33FromDiscord<Yardanico> https://nim-lang.org/docs/hcr.html
13:49:56FromDiscord<0ffh> In reply to @Yardanico "did you know that": I knew it existst, but barely.
13:50:01*noeontheend joined #nim
13:50:06FromDiscord<0ffh> (edit) "existst," => "exists,"
13:50:20FromDiscord<Yardanico> If you want to see the "bad" side of Nim compiler hacks, you can always ask disruptek/saem/haxscramper, but they left for Nimskull already, and almost never show up there (and disruptek is banned)
13:50:38FromDiscord<Yardanico> although his ban wasn't related to nimskull if you're wondering
13:50:43FromDiscord<Phil> He is? Oof
13:51:04FromDiscord<haxscramper> Saem also left this chat
13:51:14FromDiscord<haxscramper> After cabbose was banned
13:51:35FromDiscord<dom96> In reply to @Yardanico "did you know that": was it paid by Nim? AFAIK Status sponsored it
13:51:47FromDiscord<Yardanico> was it sponsored by status? why would they need HCR 🤔
13:52:03FromDiscord<dom96> dunno, but I don't think our donations went towards this
13:52:34FromDiscord<Yardanico> the original issue is https://github.com/nim-lang/Nim/issues/8927, and it's still not solved
13:52:45FromDiscord<dom96> In reply to @Yardanico "If you want to": The Nim compiler gets a bad rep. It was written originally in Object Pascal and then translated, of course it's showing its age
13:52:48FromDiscord<dom96> (edit) "its" => "it's"
13:52:53FromDiscord<dom96> (edit) "it's" => "its"
13:52:55FromDiscord<Yardanico> yeah @dom96 maybe you're right that it was Status, I agree, but it still shows that if a feature is left without maintenance, it will just rot away
13:53:15FromDiscord<dom96> yep
13:53:41FromDiscord<Yardanico> In reply to @dom96 "The Nim compiler gets": exactly, I'm not saying someone's at fault for Nim compiler becoming older with each year
13:53:56FromDiscord<Yardanico> it's just that it's age is showing everywhere, you don't have to dig much, just read comments in the compiler source
13:54:01FromDiscord<Yardanico> or issues/PRs
13:56:25FromDiscord<haxscramper> Amount of code that I encountered, that pretty much dates back to 0.8.5 is insane actually
13:56:31FromDiscord<haxscramper> I knew it is there somewhere
13:56:37FromDiscord<Yardanico> I admit I'm not good at compiler development myself, but there are people who know it well
13:56:37FromDiscord<dom96> every code base is like this
13:56:40FromDiscord<haxscramper> I thought it was in small quantities
13:57:17FromDiscord<haxscramper> But if you dig enough with git blame, it is actually a lot more. There are couple commits that change styling/formatting
13:57:17FromDiscord<dom96> and rewriting from scratch is infamous for being very tough to pull off
13:58:21FromDiscord<haxscramper> Well, rewriting for the sake of rewriting - sure, but rewriting for the sake of getting rid of 'handle failed `static[]` check by bouncing exception through two compiler subsystems' - not so much
13:58:52FromDiscord<dom96> hah fun
13:59:18FromDiscord<haxscramper> Spent three whole days unwinding this, because I forgot to add exception in the error reporting hook
13:59:36FromDiscord<haxscramper> because guess what `globalError()` actualy means 'raise exception, maybe someone else will catch it'
13:59:50FromDiscord<haxscramper> and maybe this is an error, or maybe this is a `Option[Result]`
13:59:54FromDiscord<0ffh> True that at some point not rewriting from scratch causes more pain than actually doing it.
13:59:57FromDiscord<haxscramper> but no, someone hates `Result`/`Option`
13:59:58FromDiscord<Yardanico> From my point of view v2 is the breaking point for Nim more-or-less, if it's handled improperly, Nim will forever remain a relatively unpopular language
14:00:07FromDiscord<haxscramper> so have 80+ places which raise exceptions in compiler
14:00:09FromDiscord<haxscramper> for control flow
14:00:18FromDiscord<Yardanico> In reply to @0ffh "True that at some": yes, that's what is the case with the nim compiler in a lot of people's opinion (out of those who worked on the compiler)
14:00:29FromDiscord<haxscramper> In reply to @Yardanico "From my point of": well, you can say nimskull is v2-done-hard-way
14:00:32FromDiscord<haxscramper> see how it ges
14:00:33FromDiscord<Yardanico> In reply to @haxscramper "well, you can say": true
14:00:35FromDiscord<haxscramper> (edit) "ges" => "gooes"
14:00:38FromDiscord<Yardanico> In reply to @haxscramper "see how it gooes": yes, I'm watching that as well
14:00:39FromDiscord<haxscramper> learn from our mistakes if any
14:00:40FromDiscord<dom96> To me Nim is very much near perfect with some small bits that could be improved.
14:00:50FromDiscord<haxscramper> sure there will be some questionable decisions along the way
14:00:51FromDiscord<dom96> And a few things that could be removed.
14:01:05FromDiscord<haxscramper> although style insensetivity I don't really understand the hate
14:01:16FromDiscord<Phil> From a user's perspective it is mostly nice
14:01:16FromDiscord<Recruit_main707> Me neither
14:01:17FromDiscord<haxscramper> I got bit by it maybe two times, here and there
14:01:33FromDiscord<haxscramper> but like compared to amount of time I crashed the compiler this is basically nothing
14:01:44FromDiscord<haxscramper> I managed to crash g++ today
14:01:47FromDiscord<haxscramper> with nim code
14:01:57FromDiscord<haxscramper> C++ code generated by nim
14:02:16*kayabaNerve joined #nim
14:02:27FromDiscord<Phil> G++being some secret compiler?
14:02:42FromDiscord<0ffh> The gnu c++ compiler.
14:02:52FromDiscord<Yardanico> In reply to @Isofruit "G++being some secret compiler?": GCC's C++ frontend is called G++
14:02:59FromDiscord<Phil> That has an extra name? Huh
14:03:00FromDiscord<Recruit_main707> There's gcc and g++ right?
14:03:04FromDiscord<Yardanico> In reply to @Recruit_main707 "There's gcc and g++": there's one GCC
14:03:06FromDiscord<haxscramper> `g++` is a binary name
14:03:10FromDiscord<Yardanico> it just supports multiple languages
14:04:20FromDiscord<haxscramper> and as for the language for v2 - I think the important part aside from more or less abstract 'refactoring' (takes huge amount of time to figure out what is wrong and come up with a proper conclusion)
14:04:27FromDiscord<haxscramper> there are more direct targets, like @Yardanico mentioned
14:04:33FromDiscord<haxscramper> "remove all backward compat hacks"
14:04:44FromDiscord<haxscramper> pretty directed, probably wont' raise too many objections
14:06:10FromDiscord<dom96> yeah, I think that will already improve the code base quality
14:07:19FromDiscord<haxscramper> There wont' be any dramatic changes from that, but this is certainly a step in the right direction
14:07:26FromDiscord<0ffh> Probably the best first step.↵Get rid of all unneccessary cruft before trying to refactor.
14:07:42FromDiscord<haxscramper> There are more fundamental considersations, like DOD AST that Araq apparently writes a book about
14:07:47FromDiscord<haxscramper> At least he mentioned this
14:08:05FromDiscord<haxscramper> That might bring some improvements in the overall architecture structure
14:08:22FromDiscord<Yardanico> wait he said it'd be around DOD AST?
14:08:28FromDiscord<Yardanico> i didn't know that
14:08:35FromDiscord<Yardanico> i did see him mention the book
14:09:07FromDiscord<haxscramper> well, this was a DM discussion, but the quote is ↵> "data oriented design for compilers" or something, not sure
14:10:03FromDiscord<haxscramper> So that's not exactly confirmed or anything, the plans might've changed since then
14:10:47FromDiscord<haxscramper> But data-oriented approach is what we are doing as well, but this raises a lot of other concerns that also need to be adresses
14:10:52FromDiscord<ambient> is openarray something i can use to create views into arrays?
14:11:02FromDiscord<Yardanico> yes, with experimental:views
14:11:04FromDiscord<ambient> like i just want to qsort a part of an array
14:12:23*vicfred joined #nim
14:14:02FromDiscord<Phil> In reply to @haxscramper "There wont' be any": I mean, I'd assume the maintenance workload would significantly drop, which I'm strongly in favour off (which is mostly because I don't care about the backwards compat as a new user, egoisitic I know) as it frees up resources for other areas
14:15:44FromDiscord<haxscramper> Not significantly
14:15:56FromDiscord<Phil> Dang
14:16:25FromDiscord<haxscramper> There is no breakdown on where most of the work goes, but I feel it is mostly spent on fixing new features
14:16:37FromDiscord<haxscramper> Codegen errors, other bugs
14:16:40FromDiscord<dom96> only significant improvement you'll get is from rewriting fully (or at least major components)
14:17:39FromDiscord<haxscramper> Backward compat hacks make the code more brittle, since you need to balance multiple targets at once
14:19:28*noeontheend_ joined #nim
14:19:45FromDiscord<Yardanico> and I think there were multiple cases when some general improvement was reverted because it regressed for some backwards-compat cases
14:19:51FromDiscord<Yardanico> not a whole lot, but still
14:21:21*noeontheend quit (Ping timeout: 276 seconds)
14:30:04*noeontheend_ quit (Remote host closed the connection)
14:45:07*neceve quit (Ping timeout: 240 seconds)
14:48:17FromDiscord<Rika> Regards case insensitivity, I think it’s fine, perhaps, if it’s removed, since we’re telling people “by the way use camel case otherwise 😡😡😡😡” anyway
14:48:42FromDiscord<Rika> I’m not explicitly for removing it though
14:59:36FromDiscord<Solitude> In reply to @Rika "Regards case insensitivity, I": we tell them, but they are free to stay wrong and use their stuff tho, and we arent stuck with their mistakes.
15:04:26*rockcavera quit (Remote host closed the connection)
15:07:56FromDiscord<ShalokShalom> sent a long message, see http://ix.io/3WFb
15:08:25FromDiscord<Yardanico> sorry, I read your message, but I still don't get how that relates to my message
15:08:31FromDiscord<Rika> Me neither
15:09:34FromDiscord<ShalokShalom> I am looking at alternative programming languages since couple of years, and literally everyone is trying to convince people, who a) dont have a choice in the first place and b) have their brains (and hearts) already convinced that its not worth learning another language. ↵↵I have yet to see a language that sees, how new programmers are optimal for a NEW language. Quite surprising, I guess.
15:10:21FromDiscord<ShalokShalom> So Nim will, to come to your point, forever be comparatively small, until it realizes that. Its a niche language, since the target audience is niche.
15:11:03FromDiscord<Solitude> realises what
15:11:08FromDiscord<Solitude> what are you suggesting
15:11:23FromDiscord<ShalokShalom> Proof my point
15:11:49FromDiscord<Solitude> what
15:14:35FromDiscord<eyecon> I think he's saying that getting popular is impossible by getting established users of other languages to switch, but rather by attracting people new to programming
15:14:43FromDiscord<eyecon> But I don't know why he says that either
15:18:14FromDiscord<Alea> Which is nonsense because attracting established users is how you get your language cemented as an actively used tool worth learning
15:18:35FromDiscord<Alea> If you only attract new users it'll just be a learning / hobby tool forever
15:22:55FromDiscord<deadmeme77> In reply to @ShalokShalom "I am looking at": You have Scheme/Racket for that
15:22:59FromDiscord<konsumlamm> Rust didn't get popular by attracting people new to programming, quite the opposite
15:24:11FromDiscord<Alea> Nim would certainly benefit from doing both though
15:35:45*neceve joined #nim
15:44:09*vicfred quit (Quit: Leaving)
15:52:57*duuude quit (Ping timeout: 272 seconds)
15:59:03*tk quit (Ping timeout: 260 seconds)
16:03:24*duuude joined #nim
16:11:35FromDiscord<Knedlik> sent a code paste, see https://play.nim-lang.org/#ix=3WFo
16:12:12FromDiscord<Knedlik> Also entities is `seq[ref Entity]`, so I would assume it does that automatically
16:12:46FromDiscord<Knedlik> (edit) "Also" => "~~Also" | "automatically" => "automatically~~Scratch that it isn't"
16:18:54FromDiscord<demotomohiro> If sceneIn[].entities is seq of object, changing it to a seq of ref object makes entity a ref.
16:19:55FromDiscord<demotomohiro> Why do you want to make `entity` to a ref?
16:20:41FromDiscord<Knedlik> Inheritance
16:20:54FromDiscord<demotomohiro> You can also create new `ref Entity` and copy `entity` to it.
16:20:59FromDiscord<Knedlik> It's part of a bigger problem tbh
16:22:12FromDiscord<Knedlik> In my engine, a `ref object of Entity` does get "added" into the `entities` seq of `registry.nim`, but when calling `isRegistered` on it, it returns false
16:22:14FromDiscord<Knedlik> https://github.com/Periapsis-Studios/Periapsis-Engine
16:24:40FromDiscord<demotomohiro> `Entity = ref object of RootObj` and Scene = object of RootObj↵ entities: seq[Entity]
16:25:25FromDiscord<demotomohiro> sent a code paste, see https://play.nim-lang.org/#ix=3WFq
16:26:14FromDiscord<Knedlik> That means I need to fucking dereference it to render it :facepalm:
16:26:23FromDiscord<demotomohiro> sent a code paste, see https://play.nim-lang.org/#ix=3WFr
16:26:28FromDiscord<Knedlik> (edit) "That means I need to ... fucking" added "logically"
16:28:52*duuude quit (Ping timeout: 250 seconds)
16:33:00FromDiscord<Knedlik> Why tf doesn't it want to render
16:33:11FromDiscord<Knedlik> Or more specifically, at the correct location
16:34:38FromDiscord<Knedlik> Oh nvm I'm dum dum
16:38:01*duuude joined #nim
16:38:17FromDiscord<Knedlik> Why tf does `update()` of `iconEntity.nim` not run? https://github.com/Periapsis-Studios/Beyond-the-Sphere
16:38:58FromDiscord<Knedlik> I'm starting to evaluate the possibilities of rewriting this thing in the classes lib
16:48:53FromDiscord<spoon> do i have to any configuration to make nimlsp work with vscode?
16:50:19FromDiscord<Yardanico> you have to install a nim lsp client
16:50:36FromDiscord<Yardanico> vscode, being created by Microsoft who also created LSP, doesn't support LSP the "generic way"
16:50:43FromDiscord<Yardanico> you _must_ have an extension that supports that specific LSP server
16:51:00FromDiscord<Yardanico> but all other editors supporting LSP support them without the need to create specific language extensions
16:51:23FromDiscord<spoon> ah, so i would need a whole extension and not just a config file
16:51:31FromDiscord<Yardanico> there is already one
16:51:36FromDiscord<Yardanico> but it wasn't updated in a long time
16:51:43FromDiscord<Yardanico> https://marketplace.visualstudio.com/items?itemName=bung87.vscode-nim-lsp
16:51:49FromDiscord<Yardanico> ah actually 4 months ago, not that bad
16:52:23FromDiscord<spoon> doesn't work with generic ones?
16:53:04FromDiscord<Yardanico> In reply to @spoon "doesn't work with generic": no, as I said, vscode is the only editor that's so "special" about LSP
16:53:13FromDiscord<Yardanico> microsoft is still microsoft even today I guess
16:53:38FromDiscord<d4rckh> is there any flag to make a socket client attempt to auto connect?
16:53:43FromDiscord<d4rckh> (edit) "connect?" => "connect if the server goes down?"
16:53:46FromDiscord<Yardanico> don't think so
16:53:57FromDiscord<Yardanico> the implementation is rather simple, you'll probably have to implement that yourself
16:54:03FromDiscord<Yardanico> i mean the sockets impl in nim
16:54:05FromDiscord<d4rckh> i probably will
16:54:06FromDiscord<Yardanico> it's not really abstracted much
16:54:34FromDiscord<d4rckh> i cant think of any other way that doesnt use recursion, or it wouldnt be a problem if i do
16:54:47FromDiscord<Yardanico> iterative way maybe?
16:54:58FromDiscord<d4rckh> hmm, yeah
16:55:33FromDiscord<d4rckh> if i find a way to break a while loop from another while loop
16:55:40FromDiscord<Yardanico> there's `block` for that
16:55:43FromDiscord<d4rckh> nvm
16:55:50FromDiscord<d4rckh> (edit) "nvm" => "nvm, i think i can do something"
16:55:59FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=3WFA
16:56:08FromDiscord<Yardanico> lightweight goto ;)
16:56:14FromDiscord<Yardanico> https://nim-lang.org/docs/manual.html#statements-and-expressions-block-statement
16:56:39FromDiscord<Yardanico> (edit) "https://play.nim-lang.org/#ix=3WFA" => "https://play.nim-lang.org/#ix=3WFB"
16:56:46FromDiscord<d4rckh> sent a code paste, see https://play.nim-lang.org/#ix=3WFC
16:56:46FromDiscord<Yardanico> well, or this
16:57:00FromDiscord<eyecon> sent a code paste, see https://paste.rs/t2p
16:57:01FromDiscord<d4rckh> (edit) "https://play.nim-lang.org/#ix=3WFC" => "https://play.nim-lang.org/#ix=3WFD"
16:57:22FromDiscord<Yardanico> In reply to @eyecon "A question regarding AES": you can copy into it, but only if you preallocated the size before and, specifically for ARC, made sure to call `prepareMutation` because strings with ARC are CoW by default
16:58:31FromDiscord<Yardanico> sent a code paste, see https://paste.rs/qAr
16:58:37FromDiscord<Yardanico> new[5] is because we start from the 6th char here, to not overwrite the first "hello"
16:59:04FromDiscord<eyecon> I did preallocate, but didn't know about them being CoW, nor about `prepareMutation`. Thanks, let me check the documentation
16:59:19FromDiscord<Yardanico> without prepareMutation in case of an error you'll usually get a SIGSEGV or a SIGBUS
16:59:27FromDiscord<Yardanico> just call it on `new` before the `copyMem`
16:59:39FromDiscord<Yardanico> sent a code paste, see https://paste.rs/8mL
16:59:50FromDiscord<eyecon> OK, makes sense, thanks a lot - let me try it
17:00:16FromDiscord<eyecon> Just do make doubly sure: `newString` allocates, right?
17:00:27FromDiscord<eyecon> (edit) "do" => "to"
17:00:29FromDiscord<Yardanico> yes
17:02:10FromDiscord<d4rckh> should i catch it?
17:02:19FromDiscord<d4rckh> sent a code paste, see https://play.nim-lang.org/#ix=3WFH
17:02:45FromDiscord<Yardanico> probably, honestly I only used raw sockets a few times and not extensively, so I'm not that good at working with them
17:03:08FromDiscord<d4rckh> actually, it shouldnt error at all and just connect
17:09:01FromDiscord<eyecon> sent a code paste, see https://play.nim-lang.org/#ix=3WFJ
17:09:07FromDiscord<eyecon> I suspect I'm making a dumb mistake somewhere
17:10:28FromDiscord<eyecon> No problems with the decryption, the middle echo reports fine, the decrypted excerpt gets printed
17:10:35FromDiscord<eyecon> It's just the copying that fails
17:11:12FromDiscord<Yardanico> can i replace ciphertext with something to test it myself?
17:11:27FromDiscord<eyecon> Yes, sure, I can prepare something for you even, gimme a minute
17:11:54FromDiscord<eyecon> Or you can take: https://cryptopals.com/static/challenge-data/7.txt
17:12:09FromDiscord<eyecon> Which I renamed to `challenge7.txt`
17:12:29FromDiscord<eyecon> That's easier I guess
17:13:00FromDiscord<Yardanico> ah but of course @eyecon
17:13:18FromDiscord<Yardanico> it's a common mistake, `addr decryptedBlock` takes the address of the string itself
17:13:25FromDiscord<Yardanico> and strings are GC'd so they have headers and suchj
17:13:26FromDiscord<Yardanico> (edit) "suchj" => "such"
17:13:34FromDiscord<eyecon> Ah, so `[0]`?
17:13:36FromDiscord<Yardanico> do `addr decryptedBlock[0]` instead and it works
17:13:36FromDiscord<Yardanico> yeah
17:14:00FromDiscord<eyecon> Thanks a lot!
17:14:04FromDiscord<eyecon> Now it works
17:14:19FromDiscord<Yardanico> it's a common mistake when dealing with `addr`, maybe it should become a warning or a hint of its own :)
17:14:58FromDiscord<eyecon> Yes, but one should be prepared to deal with these kind of things when playing with low-level stuff
17:15:00FromDiscord<eyecon> I'm learning
17:15:37FromDiscord<eyecon> Thanks again for the support
17:33:46FromDiscord<d4rckh> sent a code paste, see https://play.nim-lang.org/#ix=3WFR
17:34:10FromDiscord<d4rckh> in my read like while loop i got this sleepAsync `await asyncdispatch.sleepAsync(100)`, i tried increasing the number to like 1000 but that didnt change much
17:34:26FromDiscord<enthus1ast> prompt will block
17:34:43FromDiscord<enthus1ast> for this you need some async read
17:34:48FromDiscord<enthus1ast> eg the one from illwill
17:36:27FromDiscord<d4rckh> everything gets executed along with the read line, except prompt, i dont get why
17:36:31FromDiscord<enthus1ast> or maybe i misunderstand
17:36:44FromDiscord<d4rckh> i do have the read line in an async function already
17:36:56FromDiscord<d4rckh> the problem is with the prompt proc, which blocks everything for some reason
17:37:12FromDiscord<d4rckh> `proc prompt(server: Server)`
17:37:16FromDiscord<d4rckh> its just a simple proc
17:37:21FromDiscord<d4rckh> nothing fancy
17:37:57FromDiscord<Yardanico> but prompt isn't async?
17:37:57FromDiscord<d4rckh> in the proc i got another `stdout.styledWrite` and some `if`'s
17:38:25FromDiscord<d4rckh> well cConnected isnt async either, and i run it from an async function, which doesnt block, unless i add the prompt call in it
17:38:41FromDiscord<d4rckh> (edit) "block," => "block when i call it,"
17:38:55FromDiscord<enthus1ast> so you call cConnected from an async proc?
17:38:59FromDiscord<d4rckh> yes
17:39:01FromDiscord<enthus1ast> Then yes, this will not work
17:39:07FromDiscord<enthus1ast> since the readline blocks
17:39:11FromDiscord<d4rckh> no
17:39:17FromDiscord<d4rckh> if i remove the prompt call
17:39:23FromDiscord<d4rckh> cConnected does not block anything
17:39:31FromDiscord<d4rckh> and everything works normally
17:39:35FromDiscord<enthus1ast> yeah because its just a write
17:39:51FromDiscord<enthus1ast> but the stdin.readline blocks until you hit enter
17:40:14FromDiscord<d4rckh> this is prompt
17:40:15FromDiscord<d4rckh> sent a code paste, see https://play.nim-lang.org/#ix=3WFT
17:40:17FromDiscord<enthus1ast> the write will prolly also block, but its quite fast
17:40:36FromDiscord<d4rckh> the readline runs in a thread
17:40:47FromDiscord<d4rckh> (edit) "thread" => "thread, in another async proc"
17:40:52FromDiscord<d4rckh> (edit) "the readline runs in a thread, in ... another" added "a completely"
17:40:57FromDiscord<d4rckh> (edit) "another" => "other"
17:41:42FromDiscord<d4rckh> In reply to @enthus1ast "the write will prolly": well then why a write does not block, while 2 do
17:42:23FromDiscord<enthus1ast> two writes also should not
17:42:37FromDiscord<enthus1ast> can you share a more complete code example?
17:42:55FromDiscord<d4rckh> what do you wanna see?
17:42:59FromDiscord<d4rckh> the read line code?
17:43:23FromDiscord<enthus1ast> the flow
17:43:50FromDiscord<d4rckh> sent a code paste, see https://play.nim-lang.org/#ix=3WFU
17:43:51FromDiscord<d4rckh> this is basically my main function
17:44:24FromDiscord<d4rckh> sent a code paste, see https://paste.rs/eeK
17:45:06FromDiscord<d4rckh> this is processMessages, which is called from createNewTcpListener when a new client is connected
17:46:45FromDiscord<d4rckh> sent a code paste, see https://play.nim-lang.org/#ix=3WFV
17:46:45FromDiscord<d4rckh> and this is procStdin
17:47:24FromDiscord<d4rckh> well cDisconnected is another function but its exactly the same as cConnected with a word change
17:47:37*jmdaemon joined #nim
17:48:03FromDiscord<enthus1ast> and prompt is just a write?
17:50:58FromDiscord<d4rckh> basically
17:51:14FromDiscord<enthus1ast> and the "#..." part does this block?
17:51:29FromDiscord<enthus1ast> at least what i see here it should work
17:51:30FromDiscord<2F42BBA1> is there something like werkzeug for nim?
17:51:40FromDiscord<d4rckh> this is the full function
17:51:42FromDiscord<d4rckh> sent a code paste, see https://play.nim-lang.org/#ix=3WFZ
17:52:57FromDiscord<enthus1ast> looks good so far
17:53:20FromDiscord<enthus1ast> (well, style wise there is also a strformat module, to avoid the concatination)
17:53:38FromDiscord<d4rckh> (edit) "https://play.nim-lang.org/#ix=3WFZ" => "https://play.nim-lang.org/#ix=3WG1"
17:53:46FromDiscord<d4rckh> that does not work with terminal's colors
17:53:57FromDiscord<enthus1ast> ok i see
17:54:18FromDiscord<d4rckh> its so weird
17:55:01FromDiscord<enthus1ast> and it works when you remove one prompt call?
17:55:19FromDiscord<d4rckh> yes
17:55:24FromDiscord<enthus1ast> which one?
17:55:33FromDiscord<d4rckh> the one from cConnected
17:56:01FromDiscord<d4rckh> In reply to @d4rckh "i have this proc": the first `styledWriteLine` runs, while the `styledWriteLine` from `prompt` does only after i press enter once
17:57:50FromDiscord<enthus1ast> does the whole application blocks then?
17:59:15FromDiscord<d4rckh> no, until a new client connects
17:59:33FromDiscord<d4rckh> when a new client connects, it runs the prompt call (without me having to press enter) but then it blocks again
18:02:39*Zectbumo joined #nim
18:04:50FromDiscord<enthus1ast> can you try stdout.flushFile()
18:04:57FromDiscord<enthus1ast> in your prompt functions?
18:05:30FromDiscord<d4rckh> before or after the writeline call?
18:05:56FromDiscord<enthus1ast> after the write call
18:05:59FromDiscord<d4rckh> ok that fixed it
18:06:00FromDiscord<d4rckh> wow
18:06:05FromDiscord<enthus1ast> nice
18:06:05FromDiscord<d4rckh> what happened?
18:06:41FromDiscord<enthus1ast> it depends on the terminal (i think) when it flushes the output buffer.
18:07:09FromDiscord<enthus1ast> basically every time you really need to see something on time, better flush the buffer manually
18:44:42FromDiscord<yttriy> sent a code paste, see https://play.nim-lang.org/#ix=3WGe
18:49:29*tk joined #nim
18:52:00FromDiscord<Yardanico> In reply to @yttriy "Hello, I have this": I think you should call enableTrueColors before
18:52:23FromDiscord<Yardanico> yes, it doesn't actually "enable" them, but it records that your terminal indeed supports true color
18:52:33FromDiscord<Yardanico> try this
18:52:36FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=3WGf
18:54:37FromDiscord<yttriy> Already tried it, nothing has changed
18:54:40FromDiscord<Yardanico> that's really weird
18:55:30FromDiscord<Yardanico> In reply to @yttriy "Already tried it, nothing": can you try editing yournimfolder/lib/pure/terminal.nim and adding an echo after ` (ver.dwMinorVersion == 0 and ver.dwBuildNumber >= 10586)))` with another indent?
18:55:57FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=3WGg
18:56:12FromDiscord<Yardanico> maybe the logic it's using for detecting version is wrong
18:56:26FromDiscord<Yardanico> ah actually
18:56:32FromDiscord<Yardanico> @yttriy can you show your full windows build number?
18:56:35FromDiscord<Yardanico> i can check mine i mean lol
18:56:57FromDiscord<Recruit_main707> he is on windows 11
18:57:00FromDiscord<Yardanico> yes
18:57:07FromDiscord<Yardanico> but windows 10 has major version as 10
18:57:10FromDiscord<Yardanico> this code is already a bit wrong
18:57:19FromDiscord<Recruit_main707> thats probably it
18:57:28FromDiscord<Yardanico> yep lemme check
18:57:28*duuude quit (Ping timeout: 248 seconds)
18:57:52FromDiscord<Yardanico> actually no, it works for me on win 11 🤷
18:57:57FromDiscord<Yardanico> maybe because of vscode, hmm
18:58:25FromDiscord<Yardanico> nope, it works even in the windows terminal
18:58:50FromDiscord<Yardanico> `(dwOSVersionInfoSize: 276, dwMajorVersion: 10, dwMinorVersion: 0, dwBuildNumber: 22000, dwPlatformId: 2, szCSDVersion: ...)`
18:59:07FromDiscord<Yardanico> it falls under `(ver.dwMinorVersion == 0 and ver.dwBuildNumber >= 10586)` which returns true
18:59:16FromDiscord<Yardanico> wait @yttriy maybe you're on some windows 11 insider build?
18:59:37FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=3WGi
18:59:38FromDiscord<Yardanico> or just show your whole windows build number (just open cmd)
18:59:49FromDiscord<Yardanico> this version part https://media.discordapp.net/attachments/371759389889003532/970036772228714506/unknown.png
19:00:32FromDiscord<Recruit_main707> in windows 11 `ver.dwMajorVersion` isnt `> 10`?
19:00:37FromDiscord<Yardanico> In reply to @Recruit_main707 "in windows 11 `ver.dwMajorVersion`": yes, but this is `or`
19:00:46FromDiscord<Yardanico> and windows 11 has build number way higher than 10586
19:01:06FromDiscord<Yardanico> @Recruit_main707 ` term.trueColorIsSupported = ver.dwMajorVersion > 10 or (ver.dwMajorVersion == 10 and (ver.dwMinorVersion > 0 or (ver.dwMinorVersion == 0 and ver.dwBuildNumber >= 10586)))` in single line
19:01:41FromDiscord<yttriy> In reply to @Yardanico "<@694122485087600732> can you show": 22000.556
19:01:48FromDiscord<Yardanico> well, then I don't see why would it return false
19:01:53FromDiscord<Yardanico> unless the win api call is failing for some reason?
19:02:08FromDiscord<Yardanico> In reply to @Yardanico "can you edit enableTrueColors": @yttriy can you patch your terminal.nim like this to output ver?
19:02:52FromDiscord<Yardanico> or just @yttriy execute this:
19:03:03FromDiscord<Recruit_main707> In reply to @Yardanico "yes, but this is": `true or [whatever] = true`? or am i dumb
19:03:04FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=3WGm
19:03:12FromDiscord<Yardanico> In reply to @Recruit_main707 "`true or [whatever] =": yes
19:03:17FromDiscord<Yardanico> it is true
19:03:58FromDiscord<yttriy> sent a code paste, see https://play.nim-lang.org/#ix=3WGo
19:03:59FromDiscord<Yardanico> ehm
19:04:03FromDiscord<Yardanico> why does it return windows 7
19:04:09FromDiscord<Yardanico> ahh, are you perhaps running your app in compatibility mode?!
19:04:15FromDiscord<Yardanico> or the windows terminal
19:04:51FromDiscord<Yardanico> 9200 is the first official RTM build number for Windows 8, so maybe you have set compatibility mode to Windows 8 in some settings and forgot to turn it off?
19:05:11FromDiscord<yttriy> In reply to @Yardanico "ahh, are you perhaps": No ofc
19:05:28FromDiscord<Yardanico> well, then I'm at a loss, maybe it's some sandboxing app or something, but there's really nothing Nim can do about it
19:05:40FromDiscord<Yardanico> It's really not Nim's fault that the OS API is returning build number for Windows 8
19:05:45*kenran joined #nim
19:28:04FromDiscord<yttriy> Anyway thanks for the help. Actually Windows 11 works very badly on my computer, there are always bugs and small glitches. Also, Nim changes the language in my console - i have two computers and it changes my console language on both of them. This is very annoying, maybe I need to switch to Linux
19:31:11FromDiscord<Recruit_main707> weird, how does it change the language tho? in error messages and such?
19:31:29FromDiscord<Recruit_main707> like, cmd error messages, not the nim ones :P
19:33:33FromDiscord<yttriy> In reply to @Recruit_main707 "like, cmd error messages,": Yes
19:35:15FromDiscord<Recruit_main707> how exactly, , you do something like, `nim c ...`
19:35:21FromDiscord<Yardanico> In reply to @Recruit_main707 "how exactly, , you": that can happen, yes
19:35:29FromDiscord<Yardanico> @Recruit_main707 do you want even funnier stuff?
19:35:39FromDiscord<Recruit_main707> im all in for funny stuff
19:35:48FromDiscord<Yardanico> i remember in the distant past when I was on LXQt (or maybe XFCE) and compiling Nim from source, it was changing my keyboard layout to english and removing russian layout
19:35:49FromDiscord<Yardanico> for some reason
19:35:53FromDiscord<Yardanico> 🤷
19:35:58FromDiscord<Yardanico> maybe that wasn't nim but some program compilation
19:36:04FromDiscord<Yardanico> maybe SerenityOS, don't remember
19:37:19FromDiscord<Recruit_main707> it would be even funnier if it changed to russian for someone who doesnt know russian, you cannot even search for help
19:39:11FromDiscord<Yardanico> <serious mode on>modern search engines automatically switch layout on text written in incorrect layout<serious mode off>
19:39:28FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/970046751681687602/unknown.png
19:39:37FromDiscord<Yardanico> (and yes, that text doesn't make sense in russian at all)
19:39:42FromDiscord<Yardanico> just random letters obviously
19:40:19FromDiscord<Recruit_main707> omg thats so fucking genius
19:40:32FromDiscord<Yardanico> well, that's what we (bilinguals or more) have to deal with
19:41:25FromDiscord<Yardanico> most people who use entirely different alphabets know the pain of forgetting to switch layout when you're typing something
19:41:39FromDiscord<Yardanico> although that mostly applies to people who look at the keyboard when typing (so, the majority)
19:42:30FromDiscord<spoon> sent a code paste, see https://play.nim-lang.org/#ix=3WGt
19:42:40FromDiscord<spoon> confused
19:42:48FromDiscord<Yardanico> yes, invalid order, enum elements must be in ascending order
19:42:59FromDiscord<spoon> ah
19:43:18FromDiscord<spoon> so i would have to look at each colors value
19:43:21FromDiscord<Yardanico> yes
19:43:29FromDiscord<Yardanico> or you can write a macro to fix that for you automatically (TM)
19:43:38FromDiscord<spoon> yeah was just thinking that
19:44:04FromDiscord<Yardanico> in other languages: you can't do that↵in nim: you can't do that, but you can write a macro to do that
19:44:29FromDiscord<spoon> haven't played with macros too much
19:44:59FromDiscord<demotomohiro> @yttriy @Recruit_main707 Nim change codepage to utf-8 on windows because Nim only support utf-8 encoding. That can make command line program print error english or does not print local language message correctly. There is an option to disabling changing codepage on start.
19:47:10FromDiscord<demotomohiro> https://github.com/nim-lang/Nim/blob/4680ab61c06782d142492d1fcdebf8e942373c09/lib/std/syncio.nim#L855
19:50:13FromDiscord<demotomohiro> I think microsoft should provide a terminal that supports utf-8 and works with local language.
19:51:51FromDiscord<Zectbumo> https://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
19:57:09FromDiscord<yttriy> sent a long message, see http://ix.io/3WGu
19:57:11*neceve quit (Ping timeout: 256 seconds)
19:57:30FromDiscord<yttriy> (edit) "http://ix.io/3WGu" => "https://paste.rs/WUP"
19:57:46FromDiscord<Yardanico> In reply to @yttriy "by the way, i": yeah, I know that for languages that have complex characters it's harder to type than for languages like english or russian
19:58:41FromDiscord<Zodey> Hello, its me again. Sorry for asking everything, but which gui library would you recommend? I want one which supports windows, linux and android as well. I looked at nimx and nim-lang/sdl2. For me sdl2 is the preferred, but i have no idea how to compile it. Maybe i need to convert nim to C then use the ndk build script on that c file, but will like http request work? If you have a better solution, please let me know, thanks
19:59:02FromDiscord<spoon> i forgot the program but i had japanese input set up on manjaro
19:59:27FromDiscord<Yardanico> In reply to @Zodey "Hello, its me again.": sdl2 is not a GUI library, it's a generic graphical framework for writing multimedia applications (usually games)
19:59:33FromDiscord<Yardanico> it doesn't offer UI primitives by itself at all
20:00:10FromDiscord<Yardanico> "windows, linux and android as well" i don't think there's a ready-to-use usable solution honestly
20:00:12FromDiscord<Yardanico> because of android mainly
20:00:29FromDiscord<Zodey> Yeah, i was aware of that
20:01:27FromDiscord<Zodey> In reply to @Yardanico "it doesn't offer UI": So, i should use like glfw for that with opengl?
20:01:41FromDiscord<Yardanico> if you want to draw UI all by yourself, you can even use SDL2, but it'll be really hard
20:01:47FromDiscord<Yardanico> especially considering you'll have to care for DPI, touch input, etc
20:02:00FromDiscord<Zodey> I saw the imgui binding as well
20:02:02FromDiscord<Yardanico> at least use something like https://github.com/ocornut/imgui then I guess
20:02:17FromDiscord<Yardanico> although imgui isn't really made as a general-purpose UI library, it's more for editors/debugging tools/etc
20:02:47FromDiscord<Zodey> I used imgui with c++, so maybe it would be the best solution
20:02:50FromDiscord<spoon> nimgl has glfw/opengl/imgui bindings so there's that
20:03:48FromDiscord<Zodey> In reply to @spoon "nimgl has glfw/opengl/imgui bindings": I will look at it, thanks ;)
20:03:50FromDiscord<spoon> i also saw the nimraylib_now repo comes with raygui bindings
20:06:29FromDiscord<Zodey> In reply to @spoon "nimgl has glfw/opengl/imgui bindings": Btw imgui = glfw + opengl isnt it? Or glfw + vulkan for examle
20:06:55FromDiscord<Yardanico> imgui doesn't need a window system itself
20:07:02FromDiscord<Yardanico> it can draw to anything in theory, even a file
20:07:28FromDiscord<demotomohiro> Maybe this list of Nim libraries help you: https://github.com/xflywind/awesome-nim
20:08:12FromDiscord<Zodey> In reply to @demotomohiro "Maybe this list of": I saw it, thank you, i just couldnt make a choice
20:08:43FromDiscord<Zodey> But now i think i will use something which uses imgui
20:09:12FromDiscord<Recruit_main707> you cant choose a library because there isnt↵I cant choose because there are too many↵↵we are not the same
20:09:25FromDiscord<triangle the elizvals> In reply to @Yardanico "especially considering you'll have": Try cairo maybe
20:09:40FromDiscord<triangle the elizvals> Oh waiy
20:09:48FromDiscord<triangle the elizvals> Thats not available on mobile
20:11:12FromDiscord<Zodey> Well, if i compile nim to c then to .so it should run on mobile (if im using opengl)
20:11:24FromDiscord<Yardanico> it's not like that, and that's not even a question
20:11:31FromDiscord<Yardanico> of course you can make android apps with nim
20:11:38FromDiscord<Yardanico> the question is what gui framework should you use
20:11:59FromDiscord<Yardanico> you know, imgui isn't made for touch input really, so i don't know how easy it will be to add e.g. swiping and stuff
20:20:32*xet7 quit (Remote host closed the connection)
20:25:49*kenran quit (Quit: WeeChat info:version)
20:30:49FromDiscord<!Patitotective> sent a code paste, see https://play.nim-lang.org/#ix=3WGE
20:30:58FromDiscord<Elegantbeef> How are what called?
20:31:07FromDiscord<!Patitotective> linux, windows and osx
20:31:14FromDiscord<!Patitotective> is it osx or macos?
20:32:06FromDiscord<Elegantbeef> https://github.com/nim-lang/Nim/wiki/Consts-defined-by-the-compiler
20:42:29FromDiscord<Yardanico> @ElegantBeef wait, why did you complain about full case insensitivity in the RFC?
20:42:35FromDiscord<Yardanico> it's about _removing_ case insensitivity fully
20:42:44FromDiscord<Yardanico> not about making it fully case sensitive
20:42:50FromDiscord<Elegantbeef> Misread
20:42:59FromDiscord<Yardanico> happens to all of us :)
20:43:13FromDiscord<Elegantbeef> Can i really not delete a message
20:43:16FromDiscord<Elegantbeef> The fuck is github
20:43:26FromDiscord<Yardanico> you can hide it or edit it out
20:43:32FromDiscord<Yardanico> better do both together
20:43:55FromDiscord<Elegantbeef> Dont think i can hide it only admins of the repo can
20:44:12FromDiscord<Yardanico> then edit it out :(
20:45:35FromDiscord<kiell> are templates/macros really that slow
20:45:54FromDiscord<Elegantbeef> Templates arent, macros can be depending what you're doing
20:46:17FromDiscord<Elegantbeef> But i mean it's only compile time slow downs
20:46:56FromDiscord<Yardanico> In reply to @kiell "are templates/macros really that": compile-time slow isn't runtime slow :)
20:47:13FromDiscord<Yardanico> and most of the time they're fast enough, as Beef said, it depends on what you're doing with them
20:47:52FromDiscord<Yardanico> and templates should usually be almost negligible
20:47:58FromDiscord<Yardanico> unless you're doing tons of `when` in them
21:00:08*def- quit (Quit: -)
21:01:11*def- joined #nim
21:50:36*Gustavo6046 joined #nim
21:51:30*Gustavo6046 quit (Remote host closed the connection)
21:51:57*Gustavo6046 joined #nim
22:42:56*Zectbumo quit (Remote host closed the connection)
22:45:12*xet7 joined #nim
22:49:44*oprypin quit (Quit: Bye)
22:49:55*oprypin joined #nim
23:02:45FromDiscord<-|-> In reply to @Elegantbeef "But i mean it's": Can't be worse than C++ 🙂
23:24:08FromDiscord<Alea> I was wondering, would it be feasible to add a macro or something for curly braces that would simply convert them to parens without conflicting with pragma syntax?
23:25:10FromDiscord<huantian> why do people like curly braces so much jeez
23:25:27FromDiscord<Elegantbeef> Cause people dont have good editors
23:26:04FromDiscord<Alea> Anything to quiet some of the complaints :kawaiishrug:
23:26:33FromDiscord<Elegantbeef> Get https://github.com/leodevbro/vscode-blockman to work with Nim and add it to other editors
23:26:46FromDiscord<Elegantbeef> Then if i ever hear any complaints about `{}` i can fucking off them
23:27:26FromDiscord<ambient> I use the rainbow indent thing. Can't handle 2 space indents without it
23:27:41FromDiscord<Elegantbeef> I mean you might be able to make a macro that does that but then what about sets, table constructors, and pragmas
23:28:03FromDiscord<Elegantbeef> Indention line + rainbow indents \> parenthesis
23:28:21FromDiscord<Elegantbeef> Actually pragmas are fine
23:28:32FromDiscord<Alea> you'd probably need to make it a compiler feature to distinguish pragmas
23:28:34FromDiscord<Alea> during parsing
23:28:38FromDiscord<Elegantbeef> `{.` is different to `}`
23:28:43FromDiscord<Elegantbeef> I mean `{`
23:28:57FromDiscord<Elegantbeef> You cannot distinguish a set from a statement
23:29:31FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3WHd
23:29:32FromDiscord<Alea> what's <> used for?
23:29:39FromDiscord<Elegantbeef> Nothing
23:30:22FromDiscord<Alea> it would never happen, but you could theoretically just use <> for statements, or make sets and such use <> so statements can use {}
23:30:41FromDiscord<Elegantbeef> Except now we dont have set's matching mathematical sets
23:30:55FromDiscord<Elegantbeef> Math uses `{}` for sets and it elegantly matches with Nim's
23:31:09FromDiscord<Alea> can't win em all :EmotiSad:
23:31:34FromDiscord<Alea> how would <> brackets look
23:32:02FromDiscord<Alea> sent a code paste, see https://play.nim-lang.org/#ix=3WHf
23:32:15FromDiscord<Alea> that's kinda cursed ngl :Susge:
23:32:19FromDiscord<Elegantbeef> That aside people just need to fucking grow up and setup your editors
23:32:50FromDiscord<Elegantbeef> Not all whitespace is the same, python's sucks, but it's the most seen
23:32:54FromDiscord<Alea> eh, I think it's best not to entirely rely on editors↵what about reading code on github and such
23:41:36*Zectbumo joined #nim
23:58:16FromDiscord<Elegantbeef> @huantian\: soooo have you looked into wasm any since we last spoke? 😄
23:58:28FromDiscord<huantian> a tad yeah