<< 06-03-2020 >>

00:00:49*sealmove joined #nim
00:25:36*ptdel joined #nim
00:36:23*zahary quit (Quit: Leaving.)
00:38:42*sealmove quit (Quit: WeeChat 2.7.1)
00:42:14*fanta1 joined #nim
00:53:58dadadacan I insert arbitrary code that is stored in a string inside the quote do portion of a macro?
00:55:14dadadawith `someStr` the string gets inserted but there are quotes being put around it
00:55:50dadadabasically I want the string content to be parsed like regular code
01:02:49FromDiscord<clyybber> dadada: parseStmt, parseExpr
01:03:05FromDiscord<clyybber> I think you used it before even :D
01:09:09dadadaclyybber: yes, and yes :-) I regress sometimes
01:15:34*couven92 quit (Read error: Connection reset by peer)
01:16:11*couven92 joined #nim
01:17:52dadadaclyybber: can you have a look at some code quickly?
01:17:56*Hideki_ joined #nim
01:19:42FromDiscord<Elegant Beef> nah he's on a no code diet
01:19:45FromDiscord<Elegant Beef> Cant digest any
01:20:43dadadatrying something that might seem a bit crazy and I'm getting (19, 11) Error: request to generate code for .compileTime proc: whereImpl here it is: https://play.nim-lang.org/#ix=2dvf
01:21:35dadadaam experimenting here, the whereImpl proc is nowhere near finished and probably should be changed into an iterator
01:22:34dadadathe macro probably should write the whereImpl proc/iterator, too
01:22:36*Hideki_ quit (Ping timeout: 256 seconds)
01:26:40FromDiscord<Varriount> dadada: Procedures that have NimNode parameters are implicitly marked with the compileTime pragma
01:27:31dadadaobvious question: can it be disabledรŸ
01:27:33dadada?
01:27:45dadadaand thank you Varriount!
01:27:51*Hideki_ joined #nim
01:28:03FromDiscord<Varriount> dadada: What would be the parameter type then?
01:28:22FromDiscord<Varriount> NimNode is really only useful at compile time
01:29:04*dwdv quit (Ping timeout: 255 seconds)
01:29:04*couven92 quit (Read error: Connection reset by peer)
01:29:32*couven92 joined #nim
01:31:15*fanta1 quit (Quit: fanta1)
01:31:56FromDiscord<clyybber> dadada: Varriount solved it right?
01:32:04*couven92 quit (Read error: Connection reset by peer)
01:32:09FromDiscord<clyybber> Then I'm off to bed :D
01:32:13FromDiscord<clyybber> gn8
01:32:31*couven92 joined #nim
01:32:38dadadaty clyybber, and good night
01:32:52dadadayes he did
01:42:02dadadastill very basic, but this version works: https://play.nim-lang.org/#ix=2dvi
01:42:03dadada^^
01:42:52dadadanot wanting to reinvent the wheel here, is there a library or a builtin for nim that can do the same?
01:43:48FromGitter<zetashift> isn't that like `filter`?
01:46:33dadadayes, very similar to filterIt indeed
01:48:42FromGitter<gogolxdong> Anyone can explain what does this mean?
01:48:48FromGitter<gogolxdong> (https://files.gitter.im/nim-lang/Nim/dJvH/image.png)
01:49:19FromDiscord<Elegant Beef> what part?
01:50:04FromGitter<gogolxdong> this paragragh. Does it mean any application using asynchttpserver isn't production ready?
01:50:33dadadagogolxdong: it means you can use it for development and shouldn't use it for serious use (production)
01:50:43TangerProbably means it's not scalable/effecient enough to run in an environment with real data, yeah?
01:51:33FromGitter<gogolxdong> Our production is using it, isn't our production a production?
01:51:39FromGitter<zetashift> https://www.reddit.com/r/nim/comments/8w69es/this_http_server_has_not_been_designed_to_be_used/
01:51:57FromGitter<zetashift> the warning being for: I think it's a general warning that it hasn't been hardened against (say) slow loris or other attacks, so putting nginx in front of it for reverse proxying is a good idea.
01:52:28FromGitter<zetashift> I think the Nim forum is also using asynchttpserver and that's been running great
01:52:38*couven92 quit (Ping timeout: 256 seconds)
01:52:49*theelous3 quit (Read error: Connection reset by peer)
01:52:53FromGitter<gogolxdong> or does it mean using a reverse proxy makes it production ready?
01:53:14*theelous3 joined #nim
01:54:32FromDiscord<Elegant Beef> It's a simple warning that states it's not by itself not well tested or suggest to use it by itself
01:54:34FromGitter<zetashift> No it means it makes it more resilient against attackers
01:55:04*rockcavera joined #nim
01:55:14FromGitter<zetashift> You can use it in production and test it out but don't depent on it and have safeguards
01:55:17FromGitter<zetashift> depend*
01:57:35*Hideki_ quit (Remote host closed the connection)
01:57:39FromGitter<gogolxdong> we are using it with nginx, it certainly works well, but someone will hesitate to use it if take it literally, right?
01:59:22dadadamaybe add a line about it being in use for the official nim forum with good results
02:00:13FromGitter<gogolxdong> or someone stands out and say 'hey, you are using asynchttpserver, your production sucks'
02:00:32TangerXD
02:04:29*sagax joined #nim
02:04:47*endragor joined #nim
02:14:25FromGitter<gogolxdong> will they?
02:14:53FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> Is there another Nim-based HTTP server that's more battle hardened that people use currently?
02:15:11FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> (the above convo interests me as I write API-backed services)
02:15:57*gangstacat quit (Ping timeout: 260 seconds)
02:17:24*gangstacat joined #nim
02:21:04*rockcavera quit (Remote host closed the connection)
02:23:13dadadaso my implementation of where is indeed basically the same as filterIt from sequtils , but I just benchmarked both of them and my implementation seems to be consistently twice as fast
02:23:35dadadawhich seems unlikely considering that I'm a total nim noob compared to whoever has written filterIt
02:25:11dadadawhere takes 30 seconds for 10000000 iterations on my PC, while filterIt takes 67 seconds
02:26:01dadadaadmittedly my testing might have errors in its methodology, but still
02:26:28FromDiscord<Rika> @๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ jester? i dont even know if that uses another http server
02:26:46FromDiscord<Rika> afaik it uses httpbeast
02:26:56FromDiscord<Rika> https://nimble.directory/pkg/httpbeast mhm different server
02:27:18FromDiscord<Rika> no windows support though
02:27:39FromDiscord<Rika> doesnt have any warning on production use, but still
02:29:37dadadamy impl could also be using more memory or something like that
02:31:57FromGitter<zetashift> re: webservers not really asynchttpserver is nice imho, there is also this: https://github.com/planety/Prologue
02:33:23FromDiscord<flywind> It is not ready for use.It use asynchttpserver in windows and switch to httpbeast in linux.
02:34:14disruptekthe problem with asynchttpserver is that any client exception crashes the whole server.
02:35:05disruptekunless you write your own server loop from scratch, i mean.
02:35:33disruptek~stream
02:35:34disbotstream: 11https://twitch.tv/disruptek and mumble://uberalles.mumbl.io/ -- disruptek
02:35:46disrupteki'm streaming incremental compilation hackery.
02:42:28dadadadisruptek: yes, I want to see incremental compilation in nim! go go go
02:42:41disruptekwell, it already works.
02:43:38dadadathis time your stream is fluent here, maybe you can talk a little bit about the state of ic
02:44:11disrupteki can, but it's quite a bit easier for me to tell who is watching when they chat on the stream itself.
02:44:22disruptekit's also maybe a little easier for people that arrive there.
02:45:39dadadaand put some content on youtube, people there need to see that this community is vibrant
02:46:07dadadayour desktop looks great
02:46:29dadadacan't hear your voice, is that intentional?
02:46:39disrupteknope.
02:47:49disruptekokay, that should be fixed.
02:47:53dadadayes, your voice is there
02:53:51*chemist69_ joined #nim
02:56:54*chemist69 quit (Ping timeout: 258 seconds)
02:58:17dadadathanks disruptek , nice work/explanation
03:05:55*avsej quit (Read error: Connection reset by peer)
03:06:03*avsej_ joined #nim
03:06:03*avsej_ quit (Changing host)
03:06:03*avsej_ joined #nim
03:06:26*avsej_ is now known as avsej
03:15:42*muffindrake quit (Ping timeout: 256 seconds)
03:15:51dadadaman, I love your stream <3
03:16:48*Zectbumo quit (Remote host closed the connection)
03:17:49dadadayou're chilled, nice music, and I like what you're doing
03:17:56*muffindrake joined #nim
03:17:57disruptekcool.
03:18:23FromGitter<gogolxdong> Is there a bgm in your stream?
03:18:49FromGitter<gogolxdong> background music
03:19:02dadadayes, there is
03:25:34*dadada quit (Ping timeout: 256 seconds)
03:27:10*dadada joined #nim
03:28:41dadada actually the ch in koch is spoken more like "wh" in whore than h in history
03:29:35dadadathat was better! a bit to strong maybe, but much better...
03:29:41dadadas/to/too
03:42:34*adalricus joined #nim
03:43:34dadadajbpratt: I recommend play.nim-lang.org to try nim, maybe it'll get you addicted
03:44:16dadadabut he can read the text on your stream, like you're just also saying :D
03:47:52dadadajbpratt: read https://totallywearingpants.com/posts/nim-language-highlights/ this is the best intro to Nim I've seen yet
03:57:19*gmpreussner joined #nim
04:11:17dadadajbpratt: awesome!
04:21:08dadadacan select different qualities for your stream this time unlike last time
04:28:25*nsf joined #nim
04:33:38*jholland__ quit (Quit: Connection closed for inactivity)
04:39:35dadadacould you try it on a smaller codebase?
04:39:42leorize@๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ Nim don't have any battle hardened http server atm
04:40:20*Zectbumo joined #nim
04:40:22leorizeyou're encouraged to use a well tested server such as nginx as a http reverse proxy to shield those servers from malicious inputs
04:43:02disruptekzzzzzz
04:43:29dadadaI z
04:58:46*Jjp137 quit (Ping timeout: 255 seconds)
04:59:04*Jjp137 joined #nim
04:59:33*ptdel quit (Remote host closed the connection)
04:59:34*shadowbane quit (Remote host closed the connection)
05:00:00*shadowbane joined #nim
05:00:20*Jesin quit (Quit: Leaving)
05:03:00*Jesin joined #nim
05:10:04FromGitter<jason_koch_twitter> > *<dadada>* actually the ch in koch is spoken more like "wh" in whore than h in history
05:10:05FromGitter<jason_koch_twitter> timely
05:10:29dadadaheh
05:10:51FromGitter<jason_koch_twitter> in any case
05:11:03FromGitter<jason_koch_twitter> i'm trying to create a *not* stripped build, but with -O1/O2
05:11:20FromGitter<jason_koch_twitter> but whenever i do -d:release, or -opt:size, or any of many combinations, the symbols are stripped
05:11:36FromGitter<jason_koch_twitter> i searched web and docs and didn't come up with anything (or perhaps missed a combination)
05:11:41FromGitter<jason_koch_twitter> anyone have any ideas?
05:11:57FromGitter<jason_koch_twitter> i like the speed of -O2 but i also want to use it with `perf`
05:12:39FromGitter<jason_koch_twitter> i want fast, and with symbols
05:14:38FromGitter<jason_koch_twitter> i've currently got: โŽ --opt:speed --debuginfo --debugger:native --stackTrace:on --lineTrace:on
05:14:41FromGitter<jason_koch_twitter> i'm not sure what else i can add
05:17:59dadadajason_koch_twitter: I think some people use -d:danger for faster compilation, I could be mistaken though
05:19:47FromGitter<jason_koch_twitter> (fwiw with nimble)
05:19:52FromGitter<jason_koch_twitter> yeah i don't want danger,
05:19:54FromGitter<jason_koch_twitter> i just want -O2
05:20:07FromGitter<jason_koch_twitter> i am ok with -O3 or -O3
05:20:16FromGitter<jason_koch_twitter> but i can't work out how to do opt:speed and still get symbols
05:23:42FromGitter<jason_koch_twitter> OT for my question but i have to say, i really do enjoy nim
05:24:14FromGitter<jason_koch_twitter> the docs are not quite as good as other langs, but the compiler tells me (mostly) exactly what i need to do to fix it, and everything is pretty quick & simple
05:25:29FromGitter<jason_koch_twitter> just scrolling back ..
05:25:44FromGitter<jason_koch_twitter> @dadada the reason i am looking to do this is so i can answer exactly the sorts of things you raised
05:26:04FromGitter<jason_koch_twitter> `perf top` and `perf record`/report all work much better with symbols
05:28:52FromGitter<jason_koch_twitter> if anyone is interested i'd be happy to write-up more on using perf to make your nim code faster
05:29:01FromGitter<jason_koch_twitter> (if it hasn't been done already)
05:29:17dadadajason_koch_twitter: yeah, would be appreciated! I'm sorry I can't really help you as I'm still learning, too
05:30:22dadadajason_koch_twitter: this guide https://nim-lang.org/blog/2017/10/02/documenting-profiling-and-debugging-nim-code.html exists
05:30:43dadadayet, there can never be enough guides/howtos/tutorials/blog posts
05:33:10FromGitter<jason_koch_twitter> thank you kindly, i'll try a few more combos of options there
05:35:04FromGitter<jason_koch_twitter> :/ can't get it working
05:35:08FromGitter<jason_koch_twitter> i'll keep searching
05:35:17FromGitter<jason_koch_twitter> thanks dadada
05:35:27dadadanothing to thank :D
05:35:49FromGitter<jason_koch_twitter> a response =)
05:35:58dadadaah, well, you're welcome!
05:36:07FromGitter<jason_koch_twitter> just as a quick poll, do you use nim for server side stuff or frontend/ui?
05:36:25dadadaI plan on using it for frontend/ui first
05:36:53dadadacurrently I'm mainly playing with the language concepts without specific use cases in mind
05:37:15FromGitter<jason_koch_twitter> newish to nim?
05:38:13dadadayes, I've known about it for a few years, but never actually gotten around to use it
05:38:46FromGitter<jason_koch_twitter> that's cool
05:38:56dadadathis graph is depressing: https://heise.cloudimg.io/width/1858/q50.png-lossy-50.webp-lossy-50.foil1/_www-heise-de_/imgs/18/2/8/5/4/4/1/0/RedMonk_Q1-c027beb8200c5eaa.png
05:39:13FromDiscord<Rika> Don't think about it too much
05:39:25FromDiscord<Rika> Some statistics omit too many details
05:39:41dadadaNim is behind languages (in popularity) that are clearly less evolved
05:39:51FromGitter<jason_koch_twitter> well
05:39:51shashlickMerit is not the same as popularity
05:39:55FromGitter<jason_koch_twitter> maybe true but maybe not
05:39:56FromGitter<jason_koch_twitter> yeah
05:40:01FromDiscord<Rika> How old do you think is this graph
05:40:09dadadashashlick: of course
05:40:14shashlickBut people love being in a larger group
05:40:16FromGitter<jason_koch_twitter> it's really important in a large org to pick code that your peers can work with
05:40:26FromGitter<jason_koch_twitter> i love nim, and i have some small components in nim, but i'd be cautious putshing it more widely
05:40:44dadadaI'm pointing this out because with this situation every new member of the community makes a bigger difference
05:40:51FromDiscord<Rika> How would nim grow if it's not being pushed though
05:41:05dadadacompared to for example to node.js where I assume a new member will make very little difference
05:41:09FromGitter<jason_koch_twitter> i'm pushing it in areas where i think it's sensible
05:41:17FromDiscord<Rika> Ah that's okay then
05:41:25FromDiscord<Rika> Thought you weren't pushing for it at all lol
05:41:28FromGitter<jason_koch_twitter> just so it makes sense what i mean, i've got this running on 6-figure number of servers
05:42:25FromGitter<jason_koch_twitter> i have a wide deployment of a module in nim
05:42:29dadadaone of my plans is to write a ui that teaches learning nim, but is also an introduction to programming languages in general, so it could be used in schools
05:42:38FromGitter<jason_koch_twitter> that's cool
05:42:53FromDiscord<Rika> I'm thinking of rewriting linenoise in nim
05:43:09FromDiscord<Rika> Or maybe making a more featured version of it
05:44:41FromDiscord<Rika> Oof
05:44:55FromDiscord<Rika> So how is everyone else xd
05:44:57dadadaRika: good plan
05:46:00FromGitter<jason_koch_twitter> do it
05:46:25FromDiscord<Rika> Well I don't know where to start since linenoise is in c
05:46:35FromGitter<jason_koch_twitter> start with the interface
05:46:38FromGitter<jason_koch_twitter> write a nim interface
05:46:42FromGitter<jason_koch_twitter> what does it look like
05:46:46FromGitter<jason_koch_twitter> then you can fill in the details
05:46:46FromDiscord<Rika> Though I can understand it, I don't know how it should look like in nim
05:46:56FromDiscord<Rika> I mean, how it would translate
05:47:04FromGitter<jason_koch_twitter> put something together and ask for feedback
05:47:09FromDiscord<Rika> Hmm okay
05:47:24FromDiscord<Rika> Though I also have too many backlogged projects haha
05:47:54FromGitter<jason_koch_twitter> i know this feeling :)
05:48:24FromGitter<jason_koch_twitter> how would i submit extra sections to this doc?
05:48:50FromDiscord<Rika> It's on github if you mean the nim lang docs
05:49:02FromGitter<jason_koch_twitter> https://nim-lang.org/blog/2017/10/02/documenting-profiling-and-debugging-nim-code.html
05:49:03FromGitter<jason_koch_twitter> blog
05:49:06FromDiscord<Rika> If the blog then I don't think you can
05:50:59FromDiscord<flywind> https://github.com/nim-lang/website/blob/master/jekyll/_posts/2017-10-02-documenting-profiling-and-debugging-nim-code.adoc
05:51:17FromGitter<jason_koch_twitter> nice!
05:51:27FromGitter<jason_koch_twitter> thanks @flywind i'll add some perf stuff
05:52:16FromGitter<watzon> Ok question, asked on Telegram but I think everyone's asleep. Is it possible to change the name of the compiled `.o` files? Right now I'm getting names like `@mmain.nim.c.o` and it would be nice if I could just have `main.o`.
05:53:01FromGitter<watzon> I'm playing with kernel development and I need to link everything manually, so being able to do that would clean up my Makefile a bit and make adding new files easier
05:55:38FromGitter<jason_koch_twitter> @watzon i'm doing a nimble compile with an executable, and i am using `--out:path/to/out=
05:56:43FromGitter<jason_koch_twitter> https://nim-lang.org/docs/nimc.html <- you can find it here under Advanced Options, `--out`
05:57:22FromGitter<jason_koch_twitter> (although now i think about it, i am guessing you are talking about intermediate files)
05:58:30FromDiscord<Elegant Beef> dadada is your ui learning thing going to be node graphs with lower level knowledge capabillities?
05:58:36FromGitter<watzon> Yeah I have the options `noMain` and `noLinking` on because I have to link the files manually along with a compiled assembly file and a linker script.
05:59:55FromGitter<watzon> I do have it working, and the kernel loads, I just don't want to have to deal with that naming if I don't absolutely have to. If nothing else I may just write a script to rename them.
06:10:28FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> IRT the graph posted on language popularity, I'd like to point out a few things: A. Nim only very recently hit 1.0, at lot of people (myself included) won't dedicate significant time to a language until the API stabilizes; B. That's just Github, which isn't reflective of all projects everywhere (I'm using Nim for internal stuff that doesn't belong on Github); C. Nim doesn't yet have a major 'backer' like Rust and G
06:11:06*silvernode joined #nim
06:20:49adalricus'
06:22:59silvernodeGood morning
06:23:47silvernodeSitting out in front of work on the laptop again, working on my text space game in Nim
06:36:47*narimiran joined #nim
06:43:00silvernodeAny text adventure game engines for Nim?
06:43:08silvernodeor frameworks rather
06:44:37FromGitter<watzon> Good question
06:45:22FromGitter<watzon> Well I got my kernel building. Right now it's basically the same thing as Dom's nimkernel project. Took a while to get that thing building after like 4 years of Nim updates.
06:45:23FromGitter<watzon> https://github.com/watzon/JackOS
06:46:30silvernodewould be neat so see a OS written in nim
06:46:48Zevvwatzon: you're usng arc and useMalloc?
06:47:50FromGitter<watzon> Right now I haven't done a ton of looking into the kernel code, it's just copied and lightly modified from Dom's original code
06:48:17FromGitter<watzon> Most of my time over the past hour has been getting it building and getting the Makefile set up
06:48:22Zevv~ah right. you might want to look at those, and --os:any
06:48:23disbotno footnotes for `ah`. ๐Ÿ™
06:48:52FromGitter<watzon> `--os:any`?
06:50:19Zevvthat's pulling in as few things aspossible, you basic get no overhead. nim will use malloc/free instead of pulling in its own allocator and will do no gc, when used together with --gc:arc and -d:useMalloc
06:50:58Zevvhttps://nim-lang.github.io/Nim/nimc.html#nim-for-embedded-systems
06:51:12FromGitter<watzon> Ahh I'm using `--gc:none` right no
06:51:16FromGitter<watzon> I'll try those out
06:53:07FromGitter<watzon> Hmm I wonder if those instructions are out of date or if I'm missing something
06:53:42FromGitter<watzon> Seems like os:any isn't valid, and gc expects to be boehm, refc, or none
06:54:03narimiranyou might need nim devel version for that
06:54:54FromGitter<gogolxdong> Is your kernel going to be micro kernel or monolithic kernel?
06:55:43FromGitter<watzon> Likely monolithic. I don't want to shake things up too much and make porting software any harder than it has to be.
06:56:56*silvernode quit (Ping timeout: 256 seconds)
07:00:15dadadaElegant Beef: the nim/programming learning ui if I ever get around to doing it would start with the basics, like creating strings and if-else ladders, and the user would have to complete each level with answering questions, so it's clear he has mastered that level, in the end after many levels people would learn to overload operators and create macros and so on, they would have to create their own code to
07:00:21dadadasolve problems and show they're improving, spaced repetition could be part of it, there're so many possibilities, I'd aim this at young people that have never done programming before, but there could be a mode for experienced programmers, so that they can learn nim fast
07:01:26dadadaI'd probably make this extensible so that knowledge could be added by volunteers
07:02:07FromGitter<watzon> @dadada that would be pretty cool
07:02:19FromDiscord<Elegant Beef> seems interesting
07:02:23FromGitter<watzon> Nim could use some more learning resources
07:02:38dadadait would be a desktop application, but there'd probably be a wider audience with a web application (but I don't plan on getting a server)
07:03:32dadadaI'd prefer to realize it in nim/Qt, but there's no such thing yet :D
07:03:36narimiran@watzon document your progress with kernel stuff, and you'll help imporving that learning resources situation ;)
07:03:57FromGitter<watzon> Very true ๐Ÿ‘
07:04:08FromDiscord<Elegant Beef> do you already use your free github pages?
07:04:28FromDiscord<Elegant Beef> It'd be a static site as far as i see, so just the domain name required
07:04:35FromGitter<watzon> Unfortunately the process isn't as easy as with zig, but nim has been around longer and I figure it will be easier in the long run since it compiles to C
07:08:16Zevvwatzon: the docs are new, your compiler is old :)
07:08:19*solitudesf joined #nim
07:08:24Zevvthis is in the devel tree
07:08:26dadada๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ: the graph I posted doesn't just rely on github numbers contrary to what you said, it's a combination of stack overflow and github numbers, and I agree that one shouldn't overvalue it, yet this graph can also be interpreted in a positive way, compared to its capabilities Nim is undervalued (thus less popular), which means there's lots of room to grow, and basically this is
07:08:32dadadawhat I'm betting on
07:10:52FromGitter<watzon> Gotcha
07:16:48FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> dadada: Ahhh, I missed that, sorry, the IRC feed is a touch tough to read through quickly ๐Ÿ™‚
07:17:21dadada๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ: yeah, I feel the same
07:20:11*jjido joined #nim
07:26:39*PMunch joined #nim
07:28:02*dddddd quit (Ping timeout: 240 seconds)
07:57:23FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> Uhhh... so, net and asyncnet both have a warning on their wrapSocket procs: This code is not well tested, may be very unsafe and prone to security vulnerabilities.
07:58:22FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> That is not the sort of thing I wanted to see when trying to establish a TLS connection to a service ๐Ÿ˜ฆ :/
08:00:00*gmpreussner quit (Quit: kthxbye)
08:00:05PMunchmay
08:00:23*FromGitter quit (Read error: Connection reset by peer)
08:00:49PMunchIf you're running a server you should run it behind a reverse proxy, other than that you are very likely fine. The forums have been running for years without any (known) issues
08:01:23FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> This is not a server, this is a client trying to establish an encrypted connection to a server
08:02:32PMunchShould be fine
08:02:36FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> So I suppose in this case this is not a huge deal, but I also don't make a habit of terminating TLS anywhere before the actual service in the case where I run services
08:03:04PMunchFWIW there are no known vulnerabilities with it, it's just a precaution since it's not tested all that rigoursly
08:04:30FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> Is the lack of testing just because the community doesn't really have people that do that kind of testing?
08:04:43FromDiscord<Rika> Bet it is
08:05:01*gmpreussner joined #nim
08:05:33FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> I need to convince the Red team at work that they need to test these methods haha
08:13:30PMunchWhere do you work where you've got an actual red team?
08:16:02*chemist69_ quit (Ping timeout: 256 seconds)
08:16:31*chemist69 joined #nim
08:18:51FromDiscord<Varriount> Araq: The cycle breaker stuff says "the cost of traversing a subgraph with cycles is 2*N, rather than N" - what does " rather than" refer to? Classic cycle traversal?
08:25:50*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzzโ€ฆ)
08:28:33FromDiscord<Varriount> @๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ For what it's worth, the language itself has rather extensive tests
08:29:23AraqVarriount: ordinary ARC destruction
08:30:20AraqN+E vs 2*(N+E) would be more precise (nodes and vertices)
08:32:55*adalricus quit (Quit: ERC (IRC client for Emacs 26.3))
08:41:10FromDiscord<๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ> PMunch: The Walt Disney Company ๐Ÿ™‚
08:52:55*Vladar joined #nim
08:54:27PMunchOh cool
08:54:41PMunchNever thought of them doing IT stuff, but of course they would
08:59:02*floppydh joined #nim
09:04:10*bunbunbunbunny joined #nim
09:04:12bunbunbunbunnyhello.
09:08:27PMunchHi
09:09:10*dwdv joined #nim
09:10:24bunbunbunbunnyhow can i maintain a sequence of values e.g. of length 3
09:10:31bunbunbunbunnywhere there will either be items or nil
09:10:45bunbunbunbunnyi tried makign a seq[ref MyObject]
09:10:52*krux02 joined #nim
09:11:40PMunchWell, you could make it a ptr MyObject
09:11:48PMunchOr define MyObject as a ref object
09:11:53bunbunbunbunnyright
09:12:00PMunchBut the best option is probably to use the options module
09:12:06bunbunbunbunnywhat
09:12:09bunbunbunbunnythere's an option module?
09:12:20PMunchhttps://nim-lang.org/docs/options.html
09:12:21PMunchSure
09:12:24bunbunbunbunnyomg
09:12:26bunbunbunbunny+1
09:12:28bunbunbunbunnythakns
09:13:28PMunchYou can also use my optionsutils module to make them a bit easier to work with: https://nimble.directory/pkg/optionsutils
09:13:41bunbunbunbunnycool thanks
09:13:54*letto_ joined #nim
09:13:55PMunchfederico3, is the nimble.directory hosted docs down?
09:14:02*letto quit (Ping timeout: 240 seconds)
09:15:52bunbunbunbunnyi saw in sequtils it has lc for list comprehension
09:15:55bunbunbunbunnybut it has no documentation
09:15:58bunbunbunbunnywhy is that
09:17:36bunbunbunbunnyalso there's no way to mix types is there
09:17:42bunbunbunbunnyin a sequence
09:18:23PMunchNo, sequences are single type
09:18:39PMunchYou would need to use a variant object to mix
09:19:13bunbunbunbunnyah ok
09:19:26PMunchhttps://nim-lang.org/docs/manual.html#types-object-variants
09:20:01FromDiscord<flywind> lc is deprecated.If you use devel, you can use collect for list comprehension.
09:20:16bunbunbunbunnyo
09:20:23bunbunbunbunnythanks
09:21:57FromDiscord<flywind> https://nim-lang.github.io/Nim/sugar.html#collect.m%2Cuntyped%2Cuntyped
09:22:26bunbunbunbunnycan i describe my problem and maybe get some suggestions as to how to handle it
09:23:56*bunbunbunbunny quit (Quit: Lost terminal)
09:25:27PMunchWell you could've if you stuck around..
09:25:58Zevvrouting problem trying to reach forum.nim-lang.org
09:31:36Araqnot for me
09:32:03PMunchI can also reach it just fine
09:38:38federico3PMunch: it should be up
09:43:10Zevvok, then it's something local
09:44:37PMunchfederico3, are you able to access the docs for this package? https://nimble.directory/pkg/optionsutils
09:46:18*Hideki_ joined #nim
09:47:49*Hideki_ quit (Remote host closed the connection)
09:49:01*Hideki_ joined #nim
09:49:24*couven92 joined #nim
09:49:32*Zectbumo quit (Remote host closed the connection)
09:53:44*Hideki_ quit (Ping timeout: 256 seconds)
09:55:46*couven92 quit (Ping timeout: 255 seconds)
10:01:33PMunchHmm, how do I pass a macro named `?.` to --expandMacro?
10:03:00*Zectbumo joined #nim
10:10:35Araqlike anything else, taking into account the shell's quoting rules
10:15:12Araq(which I don't know because shell scripting is the worst kind of programming after punchcards)
10:15:29dom96hello hello
10:15:33dom96I am back from holidays
10:15:41PMunchWelcome back :)
10:15:46PMunchWhere did you go?
10:16:03dom96Liverpool and Poland to visit family and friends
10:16:32PMunchAh cool
10:18:10FromDiscord<Rika> Oh wow optionsutil is a blessinh
10:18:16FromDiscord<Rika> Wish it had a better name though lmao
10:18:51PMunchRika, the package?
10:19:03*bunbunbunbunny joined #nim
10:19:17PMunchIt was originally meant to go in the stdlib, so I tried to name it similar to other packages
10:19:43PMunchbunbunbunbunny, you seemed to have dropped. But feel free to tell us your case and we'll see if we can give you some pointers :)
10:19:57bunbunbunbunnyah yes thanks!~
10:20:37bunbunbunbunnyvery new to nim and haven't a bit of trouble understanding how refs work... i have a variable var v: ref MyObject and i have a function that returns MyObject
10:20:48bunbunbunbunnyso not a ref
10:20:57bunbunbunbunnyis there something i need to do to pass it to this var v?
10:21:27PMunchYou probably don't want to do that at all
10:21:43bunbunbunbunnyoh ok
10:21:46bunbunbunbunnyy is that
10:22:17PMunchIt means you are trying to do things like you would in C, with pointers and such, which isn't really how we do things in Nim
10:22:22PMunchFor the most part
10:22:54PMunchWhat are you trying to do?
10:23:27bunbunbunbunnyso the same i said before ... where i'm trying to maintain a sequence of items and its important that i know when the objects are available or not
10:23:31bunbunbunbunnyso i have like 3 things
10:23:49PMunchIf they are always three you can use an array
10:23:59PMunchJust FYI
10:24:02bunbunbunbunnyah yea
10:24:14bunbunbunbunnyis there a way to passa variable to an array[len, Type]
10:24:16bunbunbunbunnyfor the len bit
10:24:25bunbunbunbunnyit says the compiler doesn't know what it is even if i define it in a variable
10:24:29PMunchNo, arrays are compile-time static length
10:24:37bunbunbunbunnyok so they need to be a number
10:24:41*lritter joined #nim
10:24:48PMunchWell you can pass them a const
10:24:57bunbunbunbunnyahr ight that's a good idea
10:24:58PMunchOr even an enum (as long as it doesn't have holes)
10:25:11PMunchThen you can enumerate the array with the enum
10:25:14bunbunbunbunnyso once i have this fixed array.. i want to initialise it to have nothing and then stuff will happen and stuff will go into this array
10:25:20bunbunbunbunnyand then eventually stuff will empty again
10:25:33*Hideki_ joined #nim
10:25:37PMunchArrays are by default empty (all values binary 0)
10:25:38bunbunbunbunnyteh things that will go in is an Object type i've defined
10:25:48bunbunbunbunnyso that's why i wanted to use nil
10:25:52bunbunbunbunnyand refs
10:25:59PMunchIn fact all objects in Nim are initialised to binary zero unless otherwise declared
10:26:10bunbunbunbunnyis binary 0 something you can check for?
10:26:39PMunchWell, not unless you have a field in your object that is never 0 when it's a proper object
10:27:03PMunchOptions are by the way defaulted to a none
10:27:14bunbunbunbunnyi see
10:27:23bunbunbunbunnysorry i haven't looked into the options thing yet
10:27:33bunbunbunbunnyso can i make an array of optional object types?
10:27:37PMunchSo if you declare array[3, Option[MyObject]] you will have an array of three Options with none value
10:27:42bunbunbunbunnyohhhhhh
10:27:44bunbunbunbunnyok that's good
10:27:52bunbunbunbunnyand then how would i assigned None at the end
10:27:55bunbunbunbunnycan i do that?
10:28:11PMunchmyArray[1] = none(MyObject)
10:28:18bunbunbunbunnynice
10:28:19dom96Araq and anyone else that wants input: what categories should our forum have?
10:28:29bunbunbunbunnycool i'll try this!
10:28:32bunbunbunbunnythank u PMunch
10:28:37PMunchNo problem :)
10:31:51bunbunbunbunnyok so when i assigned to the arr
10:32:01bunbunbunbunnyit says expected Option[MyObject]
10:32:06Araq"Announcements", "Beginners", "Advanced"
10:32:13bunbunbunbunnyhow do i assign to an optional type?
10:32:22PMunchsome(theObject)
10:32:32bunbunbunbunnyah great thanks!
10:33:09dom96Araq, meh, I don't see the value in separating into "beginners" and "advanced"
10:33:09PMunchHmm, I thought the optionsutils package had a converter for that.. Must've removed it at some point
10:33:20*Zectbumo quit (Remote host closed the connection)
10:33:30dom96I think "Announcements"/"Questions" would be good enough for now.
10:33:37Araqok
10:33:43Araqgood
10:33:53PMunchIsn't announcements just the blog?
10:34:13dom96our FOSDEM threads would be announcements
10:34:25dom96anyway, we can add more categories later
10:34:36dom96it's better to be conservative with this so please don't add more willy nilly
10:34:47Araqyup
10:35:24*Hideki_ quit (Ping timeout: 265 seconds)
10:36:18PMunchAh right, there would also be room for unofficial announcements. Such as when someone creates a new package/updates one
10:36:41PMunchAnd I agree that starting with few categories is better
10:38:19PMunchAny ideas on why this doesn't work? https://play.nim-lang.org/#ix=2dwv
10:39:19Araqtold you .? was a bad idea
10:42:42Araqbut this seems to a bug in your macro, do you handle nkAccQuoted?
10:48:03bunbunbunbunnydo i need to use generics to have an array parameter of any sized length?
10:48:26bunbunbunbunnyhow do i declare proc myFunc(arr: array[T, MyObject])
10:50:18bunbunbunbunnyor should i just put a const var at the top and just use that all over the place
10:50:20bunbunbunbunnysorry i'm a newb
10:50:30FromDiscord<Rika> Put a [T] beside the end of the name of the function
10:51:40FromDiscord<Rika> bunbunbunbunny
10:52:09bunbunbunbunnythat works for size bit in an array param in a proc?
10:52:13bunbunbunbunnydoesn't seem to work for me
10:52:24FromDiscord<Rika> Hm?
10:52:34bunbunbunbunnylike proc min[T]*(arr: array[T, Option[CmpVariant]): seq[CmpVariant] =
10:52:37bunbunbunbunnywould this work?
10:52:50FromDiscord<Rika> Asterisk between name and [T]
10:52:53FromDiscord<Rika> Not after
10:52:55bunbunbunbunnyoh
10:53:06bunbunbunbunnyhanks :D
10:53:13bunbunbunbunnythanks*
10:53:31dom96easy way to remember this: export marker always follows the identifier that is exported
10:53:38bunbunbunbunnyi see i see
10:54:19*Araq sighs
10:54:30Araqtime for valgrind, too stupid to understand my bugs
10:55:22*bunbunbunbunny quit (Quit: Lost terminal)
10:59:41FromDiscord<clyybber> @๐“‘๐“ฎ๐“ท๐“พ๐“ถ๐“ซ๐“ฎ๐“ญ Actually nim has big sponsors. Status being one
11:00:09FromDiscord<clyybber> And I actually like that its not one big corp thats pushing for it.
11:01:27*zahary joined #nim
11:10:18*Hideki_ joined #nim
11:14:26*Hideki_ quit (Ping timeout: 240 seconds)
11:21:25*chemist69 quit (Ping timeout: 240 seconds)
11:22:42*chemist69 joined #nim
11:26:52*clyybber joined #nim
11:27:43clyybberAraq: So you changed your cycle detector to a cycle breaker?
11:28:36clyybberWe then call thinout in strategic places to break the cycles right?
11:36:54FromDiscord<Rika> Does the compiler warn for symbol clash when importing 2 libraries
11:39:11Araqclyybber, right
11:39:54AraqI changed it because I found new problems with the cycle detector, it would run 20 times on a single root
11:41:15clyybberAnd thinout modifies the subgraph
11:41:22clyybberso that its a spanning tree right?
11:41:41Araqright
11:41:50clyybberAraq: Then that means I must effectively know when I want the graph to be destroyed
11:42:01Araqyes
11:42:02clyybberSo it doesn't work in the general case
11:42:31AraqI hope it works for async and that's all I really care about
11:43:49clyybberTheres no reason then to guard thinout behind gc:orc right?
11:44:04Araqthe tracing procs still bloat the code
11:44:10clyybberAh
11:44:15Araqbut aside from that it has no overhead
11:44:28clyybberDo you have a branch where you have the cycle collector updated?
11:44:53Araqno but it's just a 'when false' in the write barrier
11:45:05clyybberah ok
11:45:17AraqnimIncRefCyclic
11:45:29Araqh.setColor colYellow # remove this line
11:45:41Araqand call instead 'markCyclic' in strategic places
11:45:49Araqthat's what I did
11:46:00Araqthe "stategic" places can be hard to find
11:47:42clyybberbut even with the 20 times on a single root thing, you still got it into noise levels right?
11:48:29Araqnope
11:48:47clyybberOh, so you were talking about the cycle *breaker* that time?
11:48:48Araqit was measurable
11:49:09Araqno I cheated and only run the cycle collection at the very last time via an internal counter
11:49:19*s4mu3lbk joined #nim
11:49:26clyybberAh ok.
11:49:30Araqwhich cannot be accomplished with markCyclic
11:49:39*rokups joined #nim
11:49:44Araqthat means that 'markCyclic' is no cost model
11:49:49Araq*has no
11:49:59Araqso it doesn't suit ARC IMO
11:50:18Araq'thinout' in contrast has a perfectly understandable cost model
11:50:37clyybberBut even with the cycle breaker we still have no way to free arbitrary cyclic subgraphs
11:50:49clyybberAnd thats worse than not having a cost model for it
11:50:53clyybberIMO
11:51:33Araqhuh?
11:51:51Araqwhat do you mean "we have no way"
11:52:21Araqwe have a way, run thinout
11:52:23clyybberwe have no way because when we don't know if a graph will still be used we cannot call thinout
11:52:36clyybberbecause thinout will modifiy the graph
11:53:06Araqwell if you get it wrong you'll get predictable lovely 'nil' access crashes
11:53:16Araqwhat's not to love about it?
11:53:30clyybberIn some cases we cannot get it right
11:53:51clyybberBecause we cannot know if the graph should be freed now.
11:54:09clyybberthinout is a bit like an explicit destroy that also takes care of cycles
11:54:21clyybberbecause when you call it, but you fail it ends up in an "invalid" state
11:54:47Araqwell I'm excited about it (if only the implementation would work)
11:58:16clyybberI'm excited too, because I think it can make async work
11:58:35Araq- no use after free bugs
11:58:41clyybberBut its still not the right tool for the general case of cyclic graphs
11:58:41Araq- has a cost model
11:58:45clyybberAraq: Can
11:58:54clyybbersorry, hit enter too quickly
11:58:57Araq- works with async
11:59:13Araq- destruction remains deterministic
11:59:39clyybber- is like manual memory management, for cyclic graphs
11:59:50Araqit's semi-manual
12:00:08clyybberYeah, but my point is: We need something automatic for freeing cyclic graphs
12:00:25clyybberThis only works for simple cases with backpointers and such
12:00:57Araqno we don't "need" it, Rust, C++ and Swift are doing fine without it
12:01:49*theelous3 quit (Read error: Connection reset by peer)
12:01:55Araqwe only need it for async
12:02:14*theelous3 joined #nim
12:02:21Araqit also happens to work for thavlak, hamming and every other complex problem I looked at
12:04:22*deepend quit (Remote host closed the connection)
12:05:05Araqwell anyway, the alternative conlusion is that Python's way of doing it via generations seems to be a very smart idea
12:06:18*lain quit (Ping timeout: 265 seconds)
12:06:48*deepend joined #nim
12:07:42*lain joined #nim
12:09:40*rockcavera joined #nim
12:16:59*s4mu3lbk quit (Ping timeout: 260 seconds)
12:22:42*Vindaar joined #nim
12:23:03Vindaarseems like the irc bridge is down most of the time lately
12:24:13*Trustable joined #nim
12:30:54FromDiscord<Rika> irc -> ? or ? -> irc
12:31:00*endragor quit (Remote host closed the connection)
12:31:04FromDiscord<Rika> and also what would ? be
12:31:47Vindaarhm? I'm talking about the gitter bridge
12:31:51*Hideki_ joined #nim
12:36:43PMunchOkay, found out what was wrong with ?. and fixed it
12:36:49PMunchNot sure what I was thinking when I wrote that code..
12:37:53FromDiscord<Rika> Vindaar, i mean the discord -> irc bridge is still an irc bridge ๐Ÿ˜›
12:38:26*uvegbot quit (Ping timeout: 240 seconds)
12:38:39FromDiscord<Rika> is it possible to use unittest with random input generated on compilation or smth
12:40:51*marmotini_ joined #nim
12:42:08*uvegbot joined #nim
12:42:32PMunchShould be
12:43:15*Trustable quit (Remote host closed the connection)
12:45:58FromDiscord<Rika> huh, sorry im pretty loopy today
12:54:05*jholland__ joined #nim
13:01:37*kungtotte quit (Read error: Connection reset by peer)
13:02:16*kungtotte joined #nim
13:15:11PMunchUgh, my escape in Vim has just enough delay that I sometimes type faster than it can enter normal mode..
13:16:22*nsf quit (Quit: WeeChat 2.7)
13:16:33FromDiscord<Rika> i dont seem to be able to store procs in a table (as value)
13:18:14FromDiscord<Rika> https://play.nim-lang.org/#ix=2dwV shouldnt this be possible?
13:18:32clyybberPMunch: kakoune is calling for you
13:19:14clyybberor do you mean the escape delay that it has to detect ctrl-<someKey> combinations?
13:19:32clyybberIf you have a non shitty terminal emulator you should be able to set that to basically zero
13:21:08PMunchclybber, I have actually considered it
13:21:11PMunchBut not because of this
13:21:46PMunchThe issue is that I have CapsLock set to escape when I click it, but Ctrl when I hold it with something else
13:22:01FromDiscord<Rika> a-am i being ignored?!
13:22:04*sentreen quit (Quit: sentreen)
13:22:13PMunchAnd that causes a veeery slight delay
13:26:34PMunchRika, this works: https://play.nim-lang.org/#ix=2dwX
13:26:43PMunchSo it is possible to store procedures in tables
13:27:03FromDiscord<Rika> thats weeeeeeird
13:27:09FromDiscord<Rika> why is it like that
13:27:33PMunchThere might be a smoother way of doing it, I was just trying stuff until it worked :P
13:27:52FromDiscord<Rika> is this a bug
13:34:43*Hideki_ quit (Ping timeout: 272 seconds)
13:38:02*sentreen joined #nim
13:38:17*floppydh quit (Quit: WeeChat 2.7.1)
13:38:29*alexander92 joined #nim
13:38:35alexander92new internet!
13:38:40PMunchWhooo
13:38:40alexander92hello guys from plovdiv
13:38:50alexander92oh i got a close to 1gbit connection
13:38:56alexander92but i am not sure how to use it
13:39:45PMunchWoo, this works now: https://play.nim-lang.org/#ix=2dx3 (and I added optionsutils to the playground)
13:39:53PMunchHow to use it?
13:39:56alexander92btw somebody xp-ed with gitlab CI ?
13:40:04alexander92pmunch : well not sure what cool usage of it can i do
13:40:11alexander92except a server i guess?
13:40:56PMunchDownload all the internet!
13:41:07PMunchIs it symmetrical?
13:43:14PMunchHmm, this is what I was trying to avoid with the `field` thing from the other day: http://ix.io/2dx5/nim
13:43:30alexander92i guess not? i get 63 Mbps upload, but i can hardly think of many cases where i need to upload so much
13:43:46PMunchIf you were planning on running a server
13:44:37alexander92PMunch but actually i am running a hotspot from that laptop as well, so not sure
13:44:49alexander92also not sure if my network card is somehow limiting anything
13:45:16alexander92PMunch what is `isInitializer` : how does it get created?
13:45:50PMunchIt is a const that is declared within the proc/template
13:46:36PMunchThis is the output of my macro so far: http://ix.io/2dx7/nim
13:46:38*sentreen quit (Ping timeout: 255 seconds)
13:46:56PMunchAs you can see the isInitialiser is set for the initialiser to true and to the setter as false
13:47:50PMunchWhat I tried to do the other day was to create a template field that was either result[0] or x[0] based on if it was the initialiser or the setter
13:48:02PMunchAnd then in the macro you would use "field" instead
13:48:54PMunchThe call to my macro looks like this: http://ix.io/2dx8/nim
13:49:10PMunchSo instead of that when block it would just be field = asIdent(name)
13:50:44*nothratal joined #nim
13:52:09*okcy joined #nim
13:52:14PMunchBut it just throws a stupid "result[0] cannot be assigned to" error..
13:53:49*Vladar quit (Quit: Leaving)
13:55:45FromDiscord<Kiloneie> Any sound quality guy in here ? Is stacking multiple towels on top of each other to elevate a microphone on a tiny stand a good idea ? (This is for my Nim videos, not off topic ???...)
13:56:41nothratalI noticed today that sequtils's toSeq-template is not working in UFCS with tables keys-iterator, is there already a similar known bug for this?
13:56:52FromDiscord<Rika> https://play.nim-lang.org/#ix=2dx9 now this doesnt work no matter what i do wtf
13:57:01FromDiscord<Rika> nothratal yes
13:57:07FromDiscord<Rika> give me a moment to look for it
13:58:07FromDiscord<exelotl> @Kiloneie yeah probably not a bad idea
13:59:08*alexander92 quit (Ping timeout: 268 seconds)
14:00:15FromDiscord<Rika> i cant seem to find it anymore haha
14:00:23*sentreen joined #nim
14:00:46*alexander92 joined #nim
14:01:19FromDiscord<Rika> PMunch do you mind helping me out with this now https://play.nim-lang.org/#ix=2dx9
14:02:30PMunchKiloneie, that should be fine. A poor mans vibration dampener :P
14:03:04FromDiscord<exelotl> Yeah what pmunch said
14:03:13FromDiscord<exelotl> If the mic is on your desk I guess you would be worried about keyboard vibrations travelling down the desk and being picked up strongly by the mic
14:03:26FromDiscord<exelotl> So yeah towels would help prevent that
14:03:36PMunchRika, no idea TBH..
14:03:46clyybberRika: It should work with `-` too..
14:03:55clyybberReport it, maybe its a gotcha maybe a bug
14:05:14FromDiscord<Kiloneie> i've already used a single towel in like 80-90% of my videos, but i need it higher, because it picks up my keyaboard too much, and my volume is too low, i will try and compare
14:06:10PMunchRika, curiously this works: https://play.nim-lang.org/#ix=2dxb
14:06:16PMunchThis looks like a bug to me
14:06:43PMunchKiloneie, I got a cheap lapel mic off of AliExpress, works like a charm
14:07:00FromDiscord<Rika> WTF
14:07:13FromDiscord<Rika> I TRY EVERYTHING BUT REVERSE UFCS
14:07:20PMunchHuh+
14:07:23PMunchHuh?
14:07:26FromDiscord<Rika> i didnt think of doing that
14:07:30FromDiscord<Rika> and im mad
14:07:31FromDiscord<Kiloneie> mine was like 110โ‚ฌ usb mic from like 10 years ago
14:07:32FromDiscord<Rika> thats all
14:07:51PMunchThat doesn't work if all of them aren't add though..
14:07:52alexander92this is a type convertion
14:07:54alexander92i think?
14:08:15FromDiscord<Kiloneie> mc crpt usb-s1 this is what i use, till i can get a better one on a stand
14:09:05FromDiscord<Kiloneie> honestly having a beach towel followed by a normal one, on each other seems to make it very unstable... guess i should use my game maker books instead D:...
14:09:39FromDiscord<Rika> hhhh what the heck
14:10:11FromDiscord<Kiloneie> yeah spamming my keyboard with multiple towels is actually worse than a single thin one D:
14:10:40PMunchKiloneie, mine was a $0.63 thing
14:10:53PMunchWhich works surprisingly well
14:11:27PMunchRika, oh no the reverse ufc didn't make a difference
14:11:42FromDiscord<Kiloneie> that's odd xD
14:12:40FromDiscord<Kiloneie> well i made it about an inch or 3-4 cm higher, should do the trick for now
14:12:40FromDiscord<Rika> i didnt realize
14:12:45FromDiscord<Rika> i thought it did
14:12:56FromDiscord<Rika> now, why does it work with only one function is the question...
14:13:05*Vindaar quit (Ping timeout: 240 seconds)
14:13:15PMunchIt seems like it is your `add` that is causing issues: https://play.nim-lang.org/#ix=2dxe
14:13:31PMunch(note that the "+" is now set to "sub"
14:13:35*alexander92 quit (Ping timeout: 260 seconds)
14:13:55*adalricus joined #nim
14:14:06FromDiscord<Rika> i noticed that its also syntax colored in play.nim
14:14:42PMunchYeah just rename it and everything works fine: https://play.nim-lang.org/#ix=2dxf
14:15:01FromDiscord<Kiloneie> if you increase the volume in editing, does it introduce any weird artifacting and such... or do people do that all the time ?
14:15:10*alexander92 joined #nim
14:15:31FromDiscord<Kiloneie> i am quite a bit quiet in my videos, i need to pump it up higher about 33-50%
14:15:31FromDiscord<Rika> named it addf
14:15:33FromDiscord<Rika> thanks
14:16:29PMunchKiloneie, that's what's great with a lapel mic. Since it sits so close to your face you can leave it with fairly little gain and it won't pick up a bunch of other noise
14:18:43lqdev[m]OTOH most cheap lapel mics have pretty bad sound quality
14:18:56PMunchI wish I'd bought more of the one I got
14:19:03PMunchAt $0.63 it was a steal :P
14:19:21lqdev[m]does it sound good?
14:19:38PMunchSurprisingly enough it's fairly decent
14:19:47lqdev[m]wow.
14:19:52PMunchI unfortunately don't have anything recorded that I could send you right now though..
14:20:00Araqfound it!
14:20:06AraqI missed a deref operator
14:20:23Araqprogramming low level stuff without type safety is so much fun...
14:20:23*gangstacat quit (Quit: ฤœis!)
14:22:32*adalricus quit (Quit: ERC (IRC client for Emacs 26.3))
14:22:34FromDiscord<Kiloneie> yeah that is why i want a mic arm, it just solves everything...
14:22:48FromDiscord<Kiloneie> but good luck getting it cheap xD...
14:24:41disruptekAraq: the IC bug doesn't seem to be due to redundant serialization.
14:25:39FromDiscord<Kiloneie> im utterly confused, im comparing the last video's audio to what i just did now with obs settings i had last time, and im like 50% quieter...
14:26:09PMunchKiloneie, can't you order from AliExpress? Or do you have silly import laws like the ones we're getting here from April? (RIP my micro-electronics hobby..)
14:28:20*dddddd joined #nim
14:28:30PMunchArgh, I don't get what causes this template issue. It's exactly the same pattern I used for the `with` macro..
14:28:32*gangstacat joined #nim
14:28:46FromDiscord<Kiloneie> im literally broke right now D:
14:29:44FromDiscord<Kiloneie> is there a way to recover closed sticky notes ? i put all my obs optimal audio settings in there...
14:30:05PMunchSticky notes?
14:30:09PMunchLike the ones on Win7?
14:30:15disruptekkiloneie: where are you located?
14:30:15PMunchNo wait, Win8?
14:31:12FromDiscord<Kiloneie> win 10, i think i found something online idk, im from Slovenia, i owe my mum money atm, i think i suck at interviews or something, can't get a job
14:33:15FromDiscord<Kiloneie> okay i recovered it D:, yikes
14:35:30FromDiscord<kodkuce> you dont know what suxing at interviewing is, i applied for unity3d slot games, boss man asked me c# string builder i told him dude i read that question yesterday while i was reading c# interview questions, i know answer but wtf thats totaly sutpid question for game dev... Ofc dident get job ๐Ÿ™‚
14:36:42*gangstacat quit (Quit: ฤœis!)
14:37:04PMunchI tend to do pretty well at interviews for some reason
14:37:27FromDiscord<Kiloneie> well based on my past work experience, i should be able to get a physical job easily, they ask my why i quit and stuff, i tried multiple answers already, be as ethusiastic as possible and... nothing, i've had like 10 interviews in the past month and more
14:38:27*gangstacat joined #nim
14:38:32FromDiscord<Kiloneie> i know i have low self confidence but, holy crap what am i doing wrong that i can't get a simple job, when i worked for 3 years in a car fabricator... im confused.
14:39:21disruptekon one hand, i know the feeling. on the other, i wouldn't hire me.
14:40:50Araqdisruptek, if it's not "redundant" then must be "too early" serialization, right?
14:41:12FromDiscord<Kiloneie> i feel like a lot of people got jobs over me due to connections... i know a former friend who got the job i applied for(CNC programmer) and i said i didn't know it but would love to learn, and he blatantly lied and got it and still has it... like... how far can liars go ?...
14:43:25PMunchFar..
14:43:26FromDiscord<Kiloneie> I think i forced myself to talk loudly when making my videos, because totally relaxed me atm is like 30-50% quieter in my testings right now.
14:43:42clyybbersame, I always shout a bit
14:43:43PMunchI mean there has been stories of doctors that ends up never went to medical school at all
14:43:46disruptekAraq: it's a good theory.
14:43:56PMunchJust lied there way into a small job, then quit that and transfer to a larger one
14:44:22PMunchs/there/their
14:44:33FromDiscord<Kiloneie> oh man...
14:44:51disrupteka lot of people live in a reality distortion bubble.
14:45:07FromDiscord<Kiloneie> should i try to recreate my talking louder or just edit the volume higher in the editing process ? Does it introduce any artifacting etc doing that ?
14:45:15disruptekthey don't appreciate the magnitude of what they don't know. makes lying about what they do know much easier.
14:45:36disruptekkiloneie: be comfortable.
14:46:02clyybberKiloneie: Gotta watch catch me if you can
14:46:05clyybberits a good movie
14:46:31FromDiscord<Kiloneie> i watched it, and loved it xD... Leonardo Di Caprio, hes great
14:46:54PMunchThis is so frustrating.. This works: https://play.nim-lang.org/#ix=2dxm
14:48:17*rokups quit (Quit: Connection closed for inactivity)
14:48:20PMunchAnd this works: https://play.nim-lang.org/#ix=2dxn
14:48:24*tane joined #nim
14:51:50PMunchOooooh, it seems to be macro specific! https://play.nim-lang.org/#ix=2dxp
14:51:53PMunchVM bug?
14:52:56FromDiscord<Kiloneie> Why is Araq's patreon so poorly supported ?
14:53:33FromDiscord<Rika> he has a patreon?!
14:53:39FromDiscord<Kiloneie> yep
14:53:43Araqyeah, give me more money
14:53:49FromDiscord<Kiloneie> 11$ a month last i checked
14:54:10PMunchOkay, so this is definitely only in the VM it seems: https://play.nim-lang.org/#ix=2dxs
14:54:12FromDiscord<Kiloneie> which is just... so if i made my own patreon today, i will be getting what... a few cents ?
14:54:36PMunchGood point, I've been meaning to give some money to Nim development for years..
14:54:44PMunchJust never got around to it..
14:55:10AraqPMunch, nullary template calls without () are known to be buggy
14:55:12FromDiscord<Rika> if only i had money
14:55:35PMunchIt doesn't work with () either
14:55:48reversem3Has anyone tried prologue web framework here ?
14:55:50narimiranPMunch, Araq yep, known issue: https://github.com/nim-lang/Nim/issues/13515 (i had this tab opened already :))
14:55:52PMunchAnd it says "result[1] cannot be assigned to" so it obviously managed to resolve the template
14:55:53disbotโžฅ Calling nullary templates without () doesn't work inside calls inside templates ; snippet at 12https://play.nim-lang.org/#ix=2dxt
14:56:03FromDiscord<Kiloneie> i know Nim gets a lot of money from 2 big supporters, but, his patreon is just sad, i guess no exposure is the problem ? Probably noone knows he even has it ?
14:56:25narimiran@Kiloneie who is 2nd big sponsor? :D
14:56:48AraqKiloneie it doesn't help that I don't like Patreon's policies
14:56:50FromDiscord<Kiloneie> oh tiny
14:56:59FromDiscord<Kiloneie> what are their policies ?
14:57:10PMunchWait, so Nim has one, and Araq has another?
14:57:32FromDiscord<Kiloneie> i know they made that bloody change that makes new users get less of a share than old ones which is just... racism ? whats the word...
14:57:36narimirannim has one??
14:57:43FromDiscord<Kiloneie> https://nim-lang.org/
14:57:51FromDiscord<Kiloneie> i just see what i see at the bottom
14:58:10FromDiscord<Kiloneie> 19250$ + users which is about 21-22K $
14:58:18FromDiscord<Kiloneie> a lot more than Godot gets
14:58:27PMunchReally?
14:58:45FromDiscord<Kiloneie> they get 11K atm, was like 9K a year ago
14:59:42FromDiscord<Kiloneie> when i first found out about Nim it was good knowing it has good fincancial support
14:59:55FromDiscord<Kiloneie> unlike oh so many other less known languages
15:01:22alexander92disruptek hmm
15:01:45FromDiscord<Kiloneie> Da vinci resolve has a speed test now D:
15:03:41*FromGitter joined #nim
15:04:26*sentreen quit (Ping timeout: 240 seconds)
15:04:29PMunchHmm, so just returning `result` works. But not returning `result[0]`
15:06:00*nothratal quit (Remote host closed the connection)
15:08:13*PMunch quit (Quit: Leaving)
15:11:43*sentreen joined #nim
15:16:26*NimBot joined #nim
15:16:35*okcy quit (Quit: Quit)
15:36:33*zahary quit (Quit: Leaving.)
15:38:12FromDiscord<Kiloneie> "is" for static and "of" for dynamic type checking/comparison usually in oop inheritance...
15:38:13FromDiscord<Kiloneie>
15:38:13FromDiscord<Kiloneie> So most of the time one uses "is" keyword for simple checks ?
15:39:47*zahary joined #nim
15:41:52disruptekone does one thing and the other does another thing.
15:43:23FromDiscord<flywind> Why I encounter OverflowError?
15:43:23FromDiscord<flywind> Hint: pbkdf2 [Processing]
15:43:23FromDiscord<flywind> fatal.nim(39) sysFatal
15:43:23FromDiscord<flywind> Error: unhandled exception: over- or underflow [OverflowError]
15:44:24FromDiscord<Kiloneie> i think will cover it in a video soon.
15:44:45FromDiscord<Kiloneie> my Nim memory is so foggy D:
15:45:04FromDiscord<Kiloneie> luckily i have all my videos written down xD
15:46:46*disruptek quit (Ping timeout: 255 seconds)
15:47:19FromDiscord<flywind> When I import direct file, everything is fine.But when i use same module downloaded from nimble, I encouter OverflowError.
15:47:23*disbot quit (Ping timeout: 260 seconds)
15:49:14FromDiscord<flywind> they are same version. like `import prologue and import ../../src/prologue`
15:49:58*disruptek joined #nim
15:51:01*disbot joined #nim
15:55:30*krux02 quit (Remote host closed the connection)
16:00:55FromDiscord<Rika> same file and file contents?
16:01:44FromDiscord<flywind> sure.I use nimble@#head to get latest version.
16:13:08*Trustable joined #nim
16:14:01disruptekassumptions made by the compiler and those made by nimble do not match.
16:14:29disruptek!repo nimph
16:14:30disbothttps://github.com/disruptek/nimph -- 9nimph: 11Nim package hierarchy manager from the future ๐Ÿงš 15 54โญ 3๐Ÿด 7& 2 more...
16:14:49disrupteknow with 3 cutlery included!
16:16:35disruptek~stream
16:16:35disbotstream: 11https://twitch.tv/disruptek and mumble://uberalles.mumbl.io/ -- disruptek
16:17:25disruptek~stream is https://twitch.tv/disruptek (live video/audio) and mumble://uberalles.mumbl.io/ (live voice chat)
16:17:25disbotstream: 11https://twitch.tv/disruptek (live video/audio) and mumble://uberalles.mumbl.io/ (live voice chat)
16:19:07clyybberdisruptek: You should get status to switch to nimph
16:19:10clyybberthen you've won
16:19:20*zahary quit (Quit: Leaving.)
16:19:25disruptekyeah, they won't do that.
16:19:38disruptekthey don't dependencies that they haven't written.
16:19:49clyybberthey use nimble
16:23:45clyybberbut they want nimph
16:23:49clyybbereven though they don't know yet
16:24:21disrupteki admit i did a terrible job at my one opportunity to demo it to status in person.
16:24:34clyybberheh
16:24:48disrupteki, like, threw the palmtop at yuri (sorry, yuri) and was like, here, play with it. you'll figure that shit out.
16:24:48clyybberand right when I started the discussion, zah left :p
16:24:58clyybberdisruptek: lol
16:24:58disruptekthen i got up and went to look at treeform's work.
16:25:11disruptekcould i have been more of an asshole? probably not.
16:35:18*marmotini_ quit (Remote host closed the connection)
16:35:54*marmotini_ joined #nim
16:36:13*Hideki_ joined #nim
16:37:11*marmotini_ quit (Remote host closed the connection)
16:37:27*marmotini_ joined #nim
16:40:48*Hideki_ quit (Ping timeout: 265 seconds)
16:42:17Araqdisruptek, I joined but you cannot hear me
16:48:17stefantalpalaruWe don't use Nimble, clyybber. We use Git submodules.
16:48:43alexander92yeah zah even made me do it
16:49:13alexander92its sometimes nice if you have more other-lang deps
16:49:27*Vladar joined #nim
16:50:07alexander92convinced me to use similar submodules-based sys in another project*
16:50:25clyybberstefantalpalaru: Oh, I thought you were using both
16:50:59clyybberstefantalpalaru: I thought I read some push from status for lockfiles in nimble, but maybe I misremember
16:51:05clyybberit was fairly recent tho
16:51:27clyybberalexander92: I almost exclusively use submodules
16:51:34clyybberthey Just Work TM
16:51:41stefantalpalaruWe always add Nimble support to our packages, but that's just for other users.
16:51:52lqdev[m]clyybber: โ„ข
16:52:13lqdev[m]alt gr + shift + t on my keyboard layout
16:52:57clyybberstefantalpalaru: Ah ok
16:53:08clyybberlqdev[m]: ?
16:53:30clyybberlqdev[m]: oh, its a tm
16:53:37lqdev[m]clyybber: nothing, I was just giving you the `โ„ข` symbol
16:53:43clyybberyeah :D thanks
16:53:53lqdev[m]np
16:55:05stefantalpalaruThe extent I've went to, to avoid using Nimble :-) https://github.com/status-im/nimbus-build-system/blob/088d3b7f6843fd61c829a5a0c0c29912945963ae/makefiles/targets.mk#L94
16:55:13alexander92i just added several submodules to our project clyybber :)
16:55:26stefantalpalaruAnd https://github.com/status-im/nimbus-build-system/blob/master/scripts/create_nimble_link.sh
16:58:38clyybberalexander92: nice
16:58:39dom96why though?
16:58:45dom96stefantalpalaru, why do that?
16:59:09clyybberonly thing where submodules get a bit cumbersome is when a project is split into multiple and PRs need to change both at the same time
16:59:34clyybberstefantalpalaru: that is... insane
16:59:40clyybberbut intriguing
17:00:45stefantalpalaruBecause I need commit-level control for dependencies, I need everything to be contained in the main project's directory and I don't need to spend time on dealing with the actually insane complexity of a package manager.
17:01:55Yardanico"Because I need commit-level control for dependencies" nimble has that
17:02:08Yardanicohttps://github.com/nim-lang/nimble#nimble-install " A branch, tag, or commit hash may also be specified in the place of head."
17:02:36stefantalpalaruAdding a new dependency to Nimbus or nim-beacon-chain is now trivial: https://github.com/status-im/nimbus-build-system/blob/master/scripts/add_submodule.sh
17:02:42dom96yeah, what Yardanico said
17:04:01dom96But even if you just use git submodules, I don't get why you'd create this create_nimble_link script
17:04:22dom96why do you need these deps in the global nimble dir?
17:04:34stefantalpalaruSo the Nim compiler finds them.
17:05:13stefantalpalaru(I don't want to maintain a parallel list of include paths for that)
17:05:30clyybberI was about to suggest doing a switch path
17:05:35clyybberin the config
17:05:58stefantalpalaruHaving both scripts and humans edit the same files is a big no-no.
17:06:15clyybberwhy do the scripts have to edit those?
17:06:21clyybberjust have a config.nims
17:06:45clyybberwhere theres switch path, deps/someSubModule/src
17:07:07stefantalpalaruBTW, config.nims was a waste of my time. I need to convert it back to nim.cfg so lower-level foo.nim.cfg gets a chance to override top-level settings.
17:07:22leorizedisruptek: btw I got the same highlighting problem
17:07:24clyybberstefantalpalaru: No
17:07:29clyybberthat got fixed afaik
17:07:30stefantalpalaruOh yes.
17:07:40stefantalpalaruFixed in devel is not fixed at all.
17:07:41leorizebut turns out it was due to my nimsuggest being an old one that I built for testing that I left in my PATH
17:07:55leorizemaybe you can check to see if it's the case for you
17:08:05clyybberstefantalpalaru: For you, but not for me :)
17:08:30stefantalpalaruLook at this issue and tell me it's fixed: https://github.com/status-im/nim-beacon-chain/issues/757
17:08:30disbotโžฅ `config.nims` breaks `.nim.cfg`
17:08:36clyybberhttps://github.com/nim-lang/Nim/pull/13488
17:08:38disbotโžฅ Fix #9405 - cfg and nims run in sync; correctly honor cmdline --hint:conf:on/off ; correctly show Conf hints in order ; snippet at 12https://play.nim-lang.org/#ix=2dy0
17:09:16clyybberstefantalpalaru: I think it is.
17:09:16dom96stefantalpalaru, what clyybber said but with .nim.cfg then
17:09:52dom96I'm still uncertain why you've had to opt for this over either a nim.cfg file or a .nimble file
17:09:54clyybberyeah, what dom96 said, I was just injecting my nimscript agenda there :p
17:09:56FromDiscord<Rika> woah, first time getting "FPU operation caused a NaN result"
17:09:56*ptdel joined #nim
17:10:04FromDiscord<Rika> any way to change this?
17:11:13stefantalpalarudom96, I just took advantage of Nim's default dir inclusion list, using a directory that I'm sure it will not be edited by humans.
17:12:18stefantalpalaruAny other scheme is more complicated and error prone
17:12:59leorize@Rika: don't divide by zero?
17:13:49leorizestefantalpalaru: that's basically what nimph do + it even resolve dependencies
17:14:53stefantalpalaruThat's great, but I don't need, nor want a package manager for that.
17:15:19clyybbernarimiran: Was https://github.com/nim-lang/Nim/pull/13488 backported?
17:15:21disbotโžฅ Fix #9405 - cfg and nims run in sync; correctly honor cmdline --hint:conf:on/off ; correctly show Conf hints in order ; snippet at 12https://play.nim-lang.org/#ix=2dy0
17:15:35clyybberstefantalpalaru: You are on 1.0 at status right?
17:15:39stefantalpalaruI want to deal with only one package manager on my system: my distro's official package manager.
17:15:45stefantalpalaruNim-1.0.6
17:15:50FromDiscord<Rika> leorize im not even
17:15:55FromDiscord<Rika> its just float minus float
17:16:01clyybberstefantalpalaru: You do upgrade to 1.0.x versions right?
17:16:04FromDiscord<Rika> and it's causing a nan for some reason
17:16:05stefantalpalaruYes.
17:16:08narimiranguys, you do know that no matter what arguments you bring, no matter what you say, you won't change stefantalpalaru's mind, right?
17:16:30FromDiscord<Rika> ah
17:16:31clyybberstefantalpalaru: Nice, then you'll benefit from it when its backported
17:16:35FromDiscord<Rika> never mind, found the issue
17:16:40narimiranclyybber: not yet
17:17:08stefantalpalaruThank you for your contribution, narimiran. Let me know when devel is released.
17:17:20dom96I'm not trying to change stefantalpalaru's mind
17:17:21shashlicknothing is perfect and the path to perfection is forever
17:17:26dom96I'm trying to figure out how we can make Nimble better
17:17:51dom96That's always my goal, so please help me :)
17:18:08clyybberstefantalpalaru: Huh? Devel released?
17:18:14narimirandevel is released every day
17:18:26clyybberstefantalpalaru: He is backporting it *for you*
17:18:32stefantalpalaruSnapshots are not releases.
17:18:40stefantalpalaruBackporting is great. Thanks!
17:20:13dom96"I want to deal with only one package manager on my system: my distro's official package manager."
17:20:23shashlickfact is that people who need to get things done don't want to wait around creating fixes and dancing around in PR reviews
17:20:31dom96Can I interpret that as: I wouldn't use Nimble even if it was perfect and solved my use case perfectly?
17:20:36stefantalpalarudom96, I understand and admire your drive, but you're pushing a very big rock up a very large mountain: https://research.swtch.com/version-sat
17:21:39disruptekhey dom96 come on mumble and let's talk pm shop
17:21:43shashlickbut unless people who need to get things done contribute issues, testing and feedback, let alone code, you perhaps aren't really solving real world problems
17:21:43disruptek~stream
17:21:44disbotstream: 11https://twitch.tv/disruptek (live video/audio) and mumble://uberalles.mumbl.io/ (live voice chat) -- disruptek
17:21:52stefantalpalaruLet's assume you make the perfect package manager. How do I install it on the user's system before I can bring all my other dependencies in? You noticed I don't even ask end users to install Nim, right?
17:22:02dom96disruptek, mumble? I thought all the cool kids used Discord these days :)
17:22:22disrupteki dunno about discord. is it, like, really free and really open?
17:22:32dom96disruptek, not even close :)
17:22:43disruptekwell that kinda dampens it for me.
17:22:51livcddisruptek: did you drink today?
17:23:17disruptekare you on my stream right now?
17:23:34disrupteki guess you're not, or you wouldn't be asking that question.
17:23:36livcdI am!
17:24:45dom96stefantalpalaru, huh? We're discussing this from the perspective of a developer of NimBus, not the end user.
17:24:58dom96You definitely need Nim for that.
17:25:13stefantalpalaruWho do you think we develop this for? Other developers?
17:25:43FromDiscord<Rika> uh
17:25:53FromDiscord<Rika> how do i check if something is nan ๐Ÿ‘€
17:26:12stefantalpalaruRead the installation instructions for Nimbus or nim-beacon-chain and you'll see they don't have any "install Nim" or "install this language-specific package manager" step.
17:26:24dadadadisruptek: did your dog just drink water?
17:26:28dadada:-)
17:26:50shashlickdisruptek: I'm on twitch on my laptop which is muted and on mumble on my phone
17:27:10clyybberdadada: It does all the time
17:27:14clyybberand intensely
17:27:19stefantalpalaruDon't you twitchers have a dedicated chat?
17:27:27dom96stefantalpalaru, I feel like you're misunderstanding me. These scripts that you've created aren't used by your end users, correct?
17:27:27clyybberstefantalpalaru: Yes they do
17:28:03dom96stefantalpalaru, you and your colleagues are using them. So why are you suddenly bringing the conversation onto your customers/end users?
17:28:25dom96For those, certainly it doesn't make sense to download Nim and Nimble. They just get a binary and they're happy.
17:28:26stefantalpalaruOf course they are used, indirectly, when they run `make`. (except the add_submodule.sh one, obviously)
17:29:00dom96Why would you even ask your customers to run `make`?
17:29:01stefantalpalaruNo, they don't get a binary. I build the compiler for them, when they run `make`.
17:29:32dadadadisruptek: can confirm there's an echo on twitch
17:29:49stefantalpalaruWith security-sensitive software, people usually want to be able to build it from source.
17:30:56dadadadisruptek: it's much better, thanks shashlick
17:31:08stefantalpalaruIt's also great for development, by making sure everytbody is running the same compiler version, the same libraries versions, and so on.
17:31:24*Jesin quit (Quit: Leaving)
17:31:56shashlickhold on, am trying to get my headset working
17:32:00dom96Right. I didn't realise this is what you did. I suppose it makes sense, but building Nimble in addition to this wouldn't add much more complexity (and you would also build a known locked Nimble version)
17:32:24dom96s/and you/because you/
17:33:38stefantalpalaruI already build Nimble along with Nim, but I'm not using it. It's mainly for dependencies that can only run their test suites through *.nimble files that are not valid NimScript (i.e.: they have an "after" section).
17:33:42*Zectbumo joined #nim
17:38:10dom96Right, so do I really need to answer your questions above? "How do I install it on the user's system before I can bring all my other dependencies in?". Sounds like you've already got that part figured out, so I'm still wondering why you haven't utilised Nimble
17:38:11dadadadisruptek: while close integration with github is desirable (talking about nimph here), I think it's worrying that github has become a defacto standard and is neither FOSS(not even open core) nor backed by a company that can be infinitely trusted, gitea is probably the closest FOSS contender, maybe you can add support for it in the future
17:38:23*Jesin joined #nim
17:39:42FromDiscord<exelotl> @Rika ```classify(n) == fcNan```
17:40:00FromDiscord<exelotl> in the math module
17:41:17Zevvlqdev[m]: how is nadio going then
17:42:43stefantalpalaruWhy would I want to introduce Nimble into the mix after already using Git submodules for Nim and Nimble itself? What can possibly justify such an incredibly complex component? Also, how are developers supposed to work on those Nimble-managed dependencies that don't have full Git trees in Nimble's package dir? What happens when a dependency's version/target commit is changed? How do I manage that transparently? Do you see why Git
17:42:43stefantalpalarusubmodules make more sense here?
17:43:56stefantalpalaruNeeding full control over dep versions also means I don't need dependency resolution.
17:44:51stefantalpalaruSo why pretend that my project is a mini-distro that needs its own package manager?
17:46:11stefantalpalaruLong story short: I don't want to use Nimble because the cost outweighs the benefits. Does that answer your question?
17:46:26dom96I think that's fair, but I also think that you could have saved yourself the need to write the nimble-link script at the very least and used `nimble develop` directly instead
17:47:05dom96FWIW I hope that once Nimble gets lock files that it will justify the benefits of not having to come up with your own custom git submodule based solution
17:47:20dom96as lock files will entirely skip the dependency resolution process
17:47:43stefantalpalaruBut can you beat Git at its own game?
17:48:47stefantalpalaruBTW, I have different dep versions in different Git branches.
17:49:52stefantalpalaruAnd I deal with that like this: `git checkout somebranch; make update`
17:50:34dom96You should already have your Nimble package versions tagged appropriately
17:50:41dom96and Nimble does the checking out for you in that case
17:50:54stefantalpalaruFor that, I'd have to tag almost every commit.
17:51:30dom96Aren't you making a new branch for almost every commit right now then?
17:52:13stefantalpalaruNo, but whenever a dependency is modified, its corresponding Git submodule gets bumped.
17:52:36stefantalpalaruThat happens too often to make releases for that dep.
17:53:15stefantalpalaruAnd some deps are out of our control, so replacing commits with tags is not even possible.
17:53:22FromDiscord<Rika> @exelotl i did some shitty hackery like "a * 1 != a" lmao
17:53:50FromDiscord<exelotl> oh no. xD
17:53:52dom96you can use commit hashes then, and check out those directly
17:53:56dom96Nimble already supports this
17:54:11dom96you can even continue to use branches, Nimble can check those out too
17:54:12stefantalpalaruAlso, `nimble develop` is moch slower than my simple script.
17:54:15FromDiscord<Rika> i mean it works doesnt it
17:54:16stefantalpalaru*much
17:54:55stefantalpalaruI'd still have to make a wrapper that deletes and recreates Nimble's package dir when switching Git branches.
17:55:15dom96I can believe that. It validates the package before installing it
17:55:17FromDiscord<exelotl> who knows ยฏ\_(ใƒ„)_/ยฏ
17:56:05dom96For that, I would just make a virtual Nimble package dir and remove it when switching branches
17:58:09stefantalpalaruHence the small and fast create_nimble_link.sh :-)
18:02:34*marmotini_ quit (Remote host closed the connection)
18:03:07*marmotini_ joined #nim
18:05:16dadadagenotrance: irc.freenode.org #nim
18:07:48*marmotini_ quit (Ping timeout: 265 seconds)
18:08:15*marmotini_ joined #nim
18:34:19*solitudesf quit (Remote host closed the connection)
18:36:52*marmotini_ quit (Remote host closed the connection)
18:37:25*marmotini_ joined #nim
18:39:36*sentreen_ joined #nim
18:43:05*sentreen quit (Ping timeout: 265 seconds)
18:43:44*marmotini_ quit (Ping timeout: 258 seconds)
18:48:34*solitudesf joined #nim
18:50:11*clyybber quit (Quit: WeeChat 2.7.1)
18:50:21*clyybber joined #nim
18:59:52*marmotini_ joined #nim
19:04:38*marmotini_ quit (Remote host closed the connection)
19:05:12*marmotini_ joined #nim
19:09:43*marmotini_ quit (Ping timeout: 255 seconds)
19:15:16*Vladar quit (Quit: Leaving)
19:17:10*jjido joined #nim
19:26:11*ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
19:26:39dadadadisruptek: came for seeing you do coding, stayed for the music :D
19:28:35clyybbercame for the music, stayed for araqs keyboard :p
19:32:27shashlick@leorize: need your help to build v0.6.0 of choosenim musl
19:36:33leorizeshashlick: you haven't managed to build a docker image for that?
19:37:06leorizeI can do that, but you gotta wait til later
19:37:07shashlicki tried with alpine but turns out busybox find doesn't support -regextype
19:37:23shashlickso was looking for a shortcut till then
19:37:27shashlickwhat's your distro
19:37:28leorizebuild a void container
19:37:38leorizeI'm on gentoo, but you don't want a gentoo container :P
19:38:01leorizebuild a void linux musl container
19:38:06leorizethey have binary packages
19:38:32shashlickhttps://hub.docker.com/r/voidlinux/voidlinux-musl?
19:48:27*nsf joined #nim
19:49:32*gmpreussner_ joined #nim
19:49:46*gmpreussner quit (Ping timeout: 255 seconds)
19:51:58*zahary joined #nim
20:04:19shashlickchoosenim v0.6.0 has been posted to the releases page - appreciate some testing - https://github.com/dom96/choosenim/releases
20:14:55*zahary quit (Quit: Leaving.)
20:18:46ksandvikchoosenim update self - returns Already up to date at version 0.5.1
20:23:28FromDiscord<exelotl> say I want to use Nim to generate a HTML file with syntax highlighted Nim code
20:23:32FromDiscord<exelotl> is there a solution for that?
20:25:24FromDiscord<Skaruts> what was that thing used to compile a single nim file for testing, `when defined(mainFile):`?
20:25:29FromDiscord<Skaruts> I completely forgot..
20:25:38shashlickdom96 still needs to update the version on http://nim-lang.org for choosenim
20:26:00ksandvikOK
20:26:38FromDiscord<exelotl> @Skaruts `when isMainModule:`
20:27:03FromDiscord<Skaruts> ah! thanks
20:37:42*filcuc joined #nim
20:38:22*nsf quit (Quit: WeeChat 2.7)
20:47:57*zahary joined #nim
20:48:59shashlickksandvik: okay it should work now
20:53:05*al_ joined #nim
20:53:05*al_ is now known as Guest94576
20:55:13*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzzโ€ฆ)
20:57:15lqdev[m]@exelotl you can probably do that using the highlite module https://nim-lang.org/docs/highlite.html
21:11:39*noonien quit (*.net *.split)
21:11:39*blackbeard420 quit (*.net *.split)
21:11:39*r4vi quit (*.net *.split)
21:11:39*npgm quit (*.net *.split)
21:11:40*planetis[m] quit (*.net *.split)
21:11:40*lqdev[m] quit (*.net *.split)
21:11:40*Hotbees quit (*.net *.split)
21:11:41*CcxWrk quit (*.net *.split)
21:11:41*Cadey quit (*.net *.split)
21:11:42*leorize quit (*.net *.split)
21:11:42*opal quit (*.net *.split)
21:11:51*koltrast_ quit (*.net *.split)
21:11:51*shashlick quit (*.net *.split)
21:11:51*golechwi quit (*.net *.split)
21:11:51*sknebel quit (*.net *.split)
21:11:51*skrylar[m] quit (*.net *.split)
21:11:51*Demos[m] quit (*.net *.split)
21:11:51*reversem3 quit (*.net *.split)
21:11:51*matlock quit (*.net *.split)
21:11:51*nuxdie quit (*.net *.split)
21:11:51*euantor quit (*.net *.split)
21:11:51*ldlework quit (*.net *.split)
21:11:51*shodan45 quit (*.net *.split)
21:11:51*madprops quit (*.net *.split)
21:11:51*pydsigner quit (*.net *.split)
21:11:51*Jesin quit (*.net *.split)
21:11:51*theelous3 quit (*.net *.split)
21:11:51*xet7 quit (*.net *.split)
21:11:51*Ckat quit (*.net *.split)
21:11:51*EvergreenTree quit (*.net *.split)
21:11:51*joshbaptiste quit (*.net *.split)
21:11:51*Ekho quit (*.net *.split)
21:11:51*idxu quit (*.net *.split)
21:11:51*Amun_Ra quit (*.net *.split)
21:11:51*d10n quit (*.net *.split)
21:11:51*dom96 quit (*.net *.split)
21:11:51*yumaikas quit (*.net *.split)
21:11:51*dv^_^ quit (*.net *.split)
21:11:51*mwbrown quit (*.net *.split)
21:11:51*d10n-work quit (*.net *.split)
21:11:51*s87651[m] quit (*.net *.split)
21:11:52*k0mpjut0r quit (*.net *.split)
21:11:52*GitterIntegratio quit (*.net *.split)
21:11:53*LyndsySimon quit (*.net *.split)
21:11:54*msmorgan quit (*.net *.split)
21:11:54*Cthalupa quit (*.net *.split)
21:11:54*surma quit (*.net *.split)
21:11:54*mjsir911 quit (*.net *.split)
21:11:54*oz quit (*.net *.split)
21:11:54*rayman22201 quit (*.net *.split)
21:11:55*snowolf quit (*.net *.split)
21:11:55*disbot quit (*.net *.split)
21:11:55*tane quit (*.net *.split)
21:11:55*lain quit (*.net *.split)
21:11:57*def- quit (*.net *.split)
21:11:57*cornfeedhobo quit (*.net *.split)
21:11:57*Araq quit (*.net *.split)
21:11:58*Guest94576 quit (*.net *.split)
21:11:59*clyybber quit (*.net *.split)
21:11:59*sentreen_ quit (*.net *.split)
21:11:59*disruptek quit (*.net *.split)
21:11:59*alexander92 quit (*.net *.split)
21:12:00*clemens3 quit (*.net *.split)
21:12:00*m4r35n357 quit (*.net *.split)
21:12:00*beatmox quit (*.net *.split)
21:12:00*lbart quit (*.net *.split)
21:12:00*blueberrypie quit (*.net *.split)
21:12:01*oculux quit (*.net *.split)
21:12:01*vesper11 quit (*.net *.split)
21:12:01*revere quit (*.net *.split)
21:12:01*gangstacat quit (*.net *.split)
21:12:01*jholland__ quit (*.net *.split)
21:12:01*chemist69 quit (*.net *.split)
21:12:01*muffindrake quit (*.net *.split)
21:12:02*jwm224 quit (*.net *.split)
21:12:02*pbb quit (*.net *.split)
21:12:03*enthus1ast quit (*.net *.split)
21:12:03*Tanger quit (*.net *.split)
21:12:03*ng0 quit (*.net *.split)
21:12:04*mattmurr quit (*.net *.split)
21:12:04*nisstyre quit (*.net *.split)
21:12:04*livcd quit (*.net *.split)
21:12:04*ehmry quit (*.net *.split)
21:12:04*gsingh93 quit (*.net *.split)
21:12:05*EastByte quit (*.net *.split)
21:12:05*Trustable quit (*.net *.split)
21:12:05*lritter quit (*.net *.split)
21:12:05*dwdv quit (*.net *.split)
21:12:05*Jjp137 quit (*.net *.split)
21:12:05*dadada quit (*.net *.split)
21:12:06*Kaivo quit (*.net *.split)
21:12:06*sammich quit (*.net *.split)
21:12:06*arecaceae quit (*.net *.split)
21:12:06*Lord_Nightmare quit (*.net *.split)
21:12:07*thomasross quit (*.net *.split)
21:12:07*junland quit (*.net *.split)
21:12:07*kitech1 quit (*.net *.split)
21:12:07*SyrupThinker quit (*.net *.split)
21:12:07*njoseph quit (*.net *.split)
21:12:07*tribly quit (*.net *.split)
21:12:08*FromDiscord quit (*.net *.split)
21:12:08*zedeus quit (*.net *.split)
21:12:09*vycb[m] quit (*.net *.split)
21:12:09*sendell[m] quit (*.net *.split)
21:12:09*grantmwilliams quit (*.net *.split)
21:12:09*oswin[m] quit (*.net *.split)
21:12:10*leorize[m] quit (*.net *.split)
21:12:10*salotz[m] quit (*.net *.split)
21:12:10*hsh quit (*.net *.split)
21:12:10*bozaloshtsh quit (*.net *.split)
21:12:10*zielmicha__ quit (*.net *.split)
21:12:10*vegai quit (*.net *.split)
21:12:11*ljoonal quit (*.net *.split)
21:12:11*vqrs quit (*.net *.split)
21:12:11*stefantalpalaru quit (*.net *.split)
21:12:11*JStoker quit (*.net *.split)
21:12:12*Yardanico quit (*.net *.split)
21:12:13*solitudesf quit (*.net *.split)
21:12:13*Zectbumo quit (*.net *.split)
21:12:14*deepend quit (*.net *.split)
21:12:14*letto_ quit (*.net *.split)
21:12:14*shadowbane quit (*.net *.split)
21:12:14*sagax quit (*.net *.split)
21:12:14*GaveUp quit (*.net *.split)
21:12:15*nullwarp quit (*.net *.split)
21:12:16*SunDwarf quit (*.net *.split)
21:12:16*acidx quit (*.net *.split)
21:12:17*so quit (*.net *.split)
21:12:17*lmariscal06 quit (*.net *.split)
21:12:18*Mister_Magister quit (*.net *.split)
21:12:18*federico3 quit (*.net *.split)
21:12:19*FromGitter quit (*.net *.split)
21:12:19*uvegbot quit (*.net *.split)
21:12:19*avsej quit (*.net *.split)
21:12:19*paxis quit (*.net *.split)
21:12:19*matti quit (*.net *.split)
21:12:20*drewr quit (*.net *.split)
21:12:20*pqflx3[m] quit (*.net *.split)
21:12:20*chris2020[m] quit (*.net *.split)
21:12:20*unclechu quit (*.net *.split)
21:12:20*BitPuffin quit (*.net *.split)
21:12:21*crem quit (*.net *.split)
21:12:21*filcuc quit (*.net *.split)
21:12:21*dddddd quit (*.net *.split)
21:12:21*rockcavera quit (*.net *.split)
21:12:22*narimiran quit (*.net *.split)
21:12:22*Zevv quit (*.net *.split)
21:12:22*actuallybatman quit (*.net *.split)
21:12:22*cyraxjoe quit (*.net *.split)
21:12:23*onionhammer quit (*.net *.split)
21:12:23*literal quit (*.net *.split)
21:12:24*casaca quit (*.net *.split)
21:12:25*jken quit (*.net *.split)
21:12:26*d-nice2[m] quit (*.net *.split)
21:12:26*freepump[m] quit (*.net *.split)
21:12:26*oprypin quit (*.net *.split)
21:12:26*khanate[m]0 quit (*.net *.split)
21:12:27*skelett quit (*.net *.split)
21:12:27*l1x quit (*.net *.split)
21:12:27*zama quit (*.net *.split)
21:12:27*qwertfisch quit (*.net *.split)
21:12:28*xace quit (*.net *.split)
21:12:29*WilhelmVonWeiner quit (*.net *.split)
21:12:45*filcuc joined #nim
21:12:45*jjido joined #nim
21:12:45*Guest94576 joined #nim
21:12:45*clyybber joined #nim
21:12:45*solitudesf joined #nim
21:12:45*sentreen_ joined #nim
21:12:45*Jesin joined #nim
21:12:45*Zectbumo joined #nim
21:12:45*Trustable joined #nim
21:12:45*disbot joined #nim
21:12:45*disruptek joined #nim
21:12:45*FromGitter joined #nim
21:12:45*tane joined #nim
21:12:45*gangstacat joined #nim
21:12:45*dddddd joined #nim
21:12:45*alexander92 joined #nim
21:12:45*jholland__ joined #nim
21:12:45*uvegbot joined #nim
21:12:45*rockcavera joined #nim
21:12:45*lain joined #nim
21:12:45*deepend joined #nim
21:12:45*theelous3 joined #nim
21:12:45*chemist69 joined #nim
21:12:45*lritter joined #nim
21:12:45*letto_ joined #nim
21:12:45*dwdv joined #nim
21:12:45*shadowbane joined #nim
21:12:45*Jjp137 joined #nim
21:12:45*dadada joined #nim
21:12:45*muffindrake joined #nim
21:12:45*avsej joined #nim
21:12:45*sagax joined #nim
21:12:45*xet7 joined #nim
21:12:45*noonien joined #nim
21:12:45*Zevv joined #nim
21:12:45*Kaivo joined #nim
21:12:45*clemens3 joined #nim
21:12:45*m4r35n357 joined #nim
21:12:45*paxis joined #nim
21:12:45*d10n-work joined #nim
21:12:45*Cadey joined #nim
21:12:45*CcxWrk joined #nim
21:12:45*Hotbees joined #nim
21:12:45*lqdev[m] joined #nim
21:12:45*planetis[m] joined #nim
21:12:45*r4vi joined #nim
21:12:45*npgm joined #nim
21:12:45*blackbeard420 joined #nim
21:12:45*leorize joined #nim
21:12:45*sammich joined #nim
21:12:45*actuallybatman joined #nim
21:12:45*arecaceae joined #nim
21:12:45*GaveUp joined #nim
21:12:45*Lord_Nightmare joined #nim
21:12:45*beatmox joined #nim
21:12:45*lbart joined #nim
21:12:45*cyraxjoe joined #nim
21:12:45*blueberrypie joined #nim
21:12:45*matti joined #nim
21:12:45*nullwarp joined #nim
21:12:45*jwm224 joined #nim
21:12:45*drewr joined #nim
21:12:45*d-nice2[m] joined #nim
21:12:45*vycb[m] joined #nim
21:12:45*pqflx3[m] joined #nim
21:12:45*grantmwilliams joined #nim
21:12:45*sendell[m] joined #nim
21:12:45*skrylar[m] joined #nim
21:12:45*freepump[m] joined #nim
21:12:45*s87651[m] joined #nim
21:12:45*chris2020[m] joined #nim
21:12:45*salotz[m] joined #nim
21:12:45*oswin[m] joined #nim
21:12:45*Demos[m] joined #nim
21:12:45*reversem3 joined #nim
21:12:45*GitterIntegratio joined #nim
21:12:45*leorize[m] joined #nim
21:12:45*BitPuffin joined #nim
21:12:45*k0mpjut0r joined #nim
21:12:45*khanate[m]0 joined #nim
21:12:45*oprypin joined #nim
21:12:45*unclechu joined #nim
21:12:45*oculux joined #nim
21:12:45*vesper11 joined #nim
21:12:45*pbb joined #nim
21:12:45*crem joined #nim
21:12:45*thomasross joined #nim
21:12:45*junland joined #nim
21:12:45*onionhammer joined #nim
21:12:45*literal joined #nim
21:12:45*kitech1 joined #nim
21:12:45*SyrupThinker joined #nim
21:12:45*WilhelmVonWeiner joined #nim
21:12:45*xace joined #nim
21:12:45*lmariscal06 joined #nim
21:12:45*Mister_Magister joined #nim
21:12:45*federico3 joined #nim
21:12:45*Yardanico joined #nim
21:12:45*ljoonal joined #nim
21:12:45*vqrs joined #nim
21:12:45*stefantalpalaru joined #nim
21:12:45*JStoker joined #nim
21:12:45*ehmry joined #nim
21:12:45*gsingh93 joined #nim
21:12:45*EastByte joined #nim
21:12:45*vegai joined #nim
21:12:45*revere joined #nim
21:12:45*msmorgan joined #nim
21:12:45*Cthalupa joined #nim
21:12:45*surma joined #nim
21:12:45*mjsir911 joined #nim
21:12:45*oz joined #nim
21:12:45*rayman22201 joined #nim
21:12:45*snowolf joined #nim
21:12:45*cornfeedhobo joined #nim
21:12:45*Araq joined #nim
21:12:45*Amun_Ra joined #nim
21:12:45*d10n joined #nim
21:12:45*dom96 joined #nim
21:12:45*yumaikas joined #nim
21:12:45*dv^_^ joined #nim
21:12:45*mwbrown joined #nim
21:12:45*jken joined #nim
21:12:45*joshbaptiste joined #nim
21:12:45*Ekho joined #nim
21:12:45*idxu joined #nim
21:12:45*shashlick joined #nim
21:12:45*golechwi joined #nim
21:12:45*sknebel joined #nim
21:12:45*euantor joined #nim
21:12:45*ldlework joined #nim
21:12:45*shodan45 joined #nim
21:12:45*pydsigner joined #nim
21:12:45*LyndsySimon joined #nim
21:12:45*so joined #nim
21:12:45*nuxdie joined #nim
21:12:45*matlock joined #nim
21:12:45*EvergreenTree joined #nim
21:12:45*def- joined #nim
21:12:45*Ckat joined #nim
21:12:45*livcd joined #nim
21:12:45*zielmicha__ joined #nim
21:12:45*nisstyre joined #nim
21:12:45*koltrast_ joined #nim
21:12:45*madprops joined #nim
21:12:45*bozaloshtsh joined #nim
21:12:45*qwertfisch joined #nim
21:12:45*zama joined #nim
21:12:45*l1x joined #nim
21:12:45*mattmurr joined #nim
21:12:45*ng0 joined #nim
21:12:45*casaca joined #nim
21:12:45*zedeus joined #nim
21:12:45*hsh joined #nim
21:12:45*Tanger joined #nim
21:12:45*FromDiscord joined #nim
21:12:45*acidx joined #nim
21:12:45*skelett joined #nim
21:12:45*SunDwarf joined #nim
21:12:45*enthus1ast joined #nim
21:12:45*tribly joined #nim
21:12:45*opal joined #nim
21:12:45*njoseph joined #nim
21:13:38*mal`` quit (Max SendQ exceeded)
21:13:39*hpyc9 quit (Max SendQ exceeded)
21:13:50*hpyc9 joined #nim
21:14:09*mal`` joined #nim
21:17:35FromDiscord<Skaruts> can a generic be confined to a specific range of types?
21:18:11FromDiscord<Skaruts> like saying `T` can only be int8, int16, int32 and int64?
21:18:18Yardanicoyes
21:18:35Yardanicoproc test[T: int8 | int16 | int32 | int64](num: T) = ...
21:18:45Yardanicobtw there's SomeNumber generic type for numbers
21:18:58FromDiscord<Skaruts> and the return value can be converted as T(val)?
21:19:02Yardanicoyes
21:19:10FromDiscord<Skaruts> nice
21:19:37FromDiscord<Skaruts> yea I know about SomeInteger, but I needed to return the same type that comes in
21:19:57FromDiscord<Skaruts> I don't suppose I can do that with SomeInteger
21:20:08ksandvikthx yes choosenim now updated to 0.6.0.
21:20:19Yardanico@Skaruts well you can
21:20:55Yardanicoproc test[T: SomeInteger](num: T): T = return T(1)
21:20:56FromDiscord<exelotl> proc test[T: SomeInteger](num: T) = ...
21:20:56FromDiscord<Skaruts> how?
21:21:01FromDiscord<Skaruts> ah
21:21:06FromDiscord<Skaruts> nice
21:21:08FromDiscord<exelotl> yeah that lol
21:21:23FromDiscord<Skaruts> thanks ๐Ÿ™‚
21:24:43*jholland__ quit (Quit: Connection closed for inactivity)
21:26:25*sealmove joined #nim
21:27:23sealmove@Zevv
21:28:33FromDiscord<Skaruts> does SomeInteger include unsigned ints? If so, is there one that doesn't?
21:29:25FromDiscord<exelotl> search for "Some" in https://nim-lang.github.io/Nim/system.html
21:29:31FromDiscord<Skaruts> nevermind, SomeSignedInt
21:29:38FromDiscord<Skaruts> ah thanks
21:35:16*Trustable quit (Remote host closed the connection)
21:48:15*Zectbumo quit (Remote host closed the connection)
21:49:32*Zectbumo joined #nim
21:51:02*filcuc quit (Quit: Konversation terminated!)
21:52:03*abm joined #nim
21:53:09*letto_ quit (Quit: Konversation terminated!)
21:54:58*letto joined #nim
21:57:50*Guest94576 quit (Quit: Guest94576)
22:07:36*lritter quit (Quit: Leaving)
22:13:14*alexander92 quit (Ping timeout: 256 seconds)
22:20:47*krux02 joined #nim
22:33:08sealmovehow to specify range of unicode characters?
22:33:56clyybberyou can't, I think
22:33:59sealmoveI want something like this: {'\u{10000}' .. '\u{10FFFF}'}
22:34:08sealmove:(
22:34:08clyybberSince Rune is not an enum
22:34:14clyybbersealmove: Well you *can*
22:34:21clyybberbut its not yet included in the stdlib :)
22:34:28*solitudesf quit (Ping timeout: 255 seconds)
22:34:34clyybberyou can make the change though
22:34:45sealmovesure, I need it...
22:36:23clyybbersealmove: I think you should make a `..` overload
22:36:32clyybberthat takes two Runes
22:36:36clyybberand returns a RuneRange
22:36:59clyybberor just a Range[Rune]
22:37:14clyybberhmm, no I think you need RuneRange
22:37:21clyybberAnd then you define a contains proc
22:37:28clyybberon RuneRange and Rune
22:38:08*Hideki_ joined #nim
22:38:20clyybberThen you can just do the above, minus the brackets
22:39:44sealmovebrackets are for npeg lol
22:40:03sealmovethen I think npeg must be tinkered to support RuneRange
22:40:43clyybberhmm, maybe yeah
22:40:59clyybberbother Zevv with that :p
22:42:49*Hideki_ quit (Ping timeout: 265 seconds)
22:56:46sealmoveis RuneRange defined somewhere?
22:57:51clyybberI made it up
22:58:02clyybberI was outlining what you need to do to make this work
22:58:05clyybber:D
22:58:21clyybberBut it would be an object containing to Runes
22:58:45sealmovei see
22:59:14clyybbers/to/two
22:59:34*bunbunbunbunny joined #nim
22:59:46bunbunbunbunnyhi
22:59:46bunbunbunbunny :)
22:59:46bunbunbunbunnyis it possible to have a generic anonymous proc
22:59:52bunbunbunbunnyi'm trying to store an array of them
23:00:12sealmoveshould be possible
23:00:41FromDiscord<exelotl> wait should it?
23:00:41clyybberbunbunbunbunny: Yes
23:00:43bunbunbunbunnyso should be like this var next_arr: arr[Ann, (T):Option[MyObject]]
23:00:52bunbunbunbunnyor something
23:00:53clyybberbunbunbunbunny: But you cannot store a generic proc
23:01:00clyybberBecause it is not instantiated
23:01:10clyybberyou can only store concrete procs
23:01:16clyybberbecause types are a compile time thing
23:01:37bunbunbunbunnyoh
23:01:40bunbunbunbunnyso i can't do this ar next_arr: arr[Ann, proc(T):Option[CmpVariant]]
23:01:46bunbunbunbunny?
23:01:47bunbunbunbunny:(
23:02:10clyybberno
23:02:14bunbunbunbunnydang
23:02:24clyybberbecause T would have to be determined at runtime
23:02:28bunbunbunbunnyyeah fair enough
23:02:32bunbunbunbunnysorry very new :D
23:02:36Yardanicobunbunbunbunny: why do you need this though?
23:02:37clyybberNp :)
23:02:41*dwdv quit (Quit: quit)
23:02:54bunbunbunbunnyi have two different types of iterators that return the same type
23:03:00bunbunbunbunnyand i'm trying to store their iterator closures
23:03:02bunbunbunbunnyin an arr
23:03:09bunbunbunbunnyso i can cycle through them and call them respectfully
23:03:19bunbunbunbunnyhope that makes sense
23:03:54bunbunbunbunnyany ideas what to do
23:03:56bunbunbunbunny:O
23:04:23bunbunbunbunnyactually i have an idea
23:04:24bunbunbunbunnynvm
23:04:42bunbunbunbunnythanks for helps
23:09:21bunbunbunbunnyoh nooo you can't have generic types in array?
23:10:04Yardanicobunbunbunbunny: remember that nim is not a dynamically typed language
23:10:11Yardanicoit's all statically compiled
23:10:14bunbunbunbunnyyea sry
23:10:17bunbunbunbunnycoming from python
23:10:44bunbunbunbunnyalso i'm dumb lol
23:11:08*filcuc joined #nim
23:12:33*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzzโ€ฆ)
23:13:52FromDiscord<exelotl> if you're ever lost you can try using https://play.nim-lang.org/ to make a minimal example and share it with us :)
23:15:02FromDiscord<Recruit_main70007> Hello, I've been thinking, could I create a little kernel in Nim, and use it in my raspberry?
23:15:16Yardanicowell yes, if you can do something in C you can do it in Nim
23:15:28*jjido joined #nim
23:15:29Yardanicoand you can basically do everything in C so you get the idea :P
23:16:06FromDiscord<Recruit_main70007> But... I would be the first one and would have no reference to follow?
23:16:15Yardanicofor nim? yes
23:16:24Yardanicothere's only a few small x86 kernels made in Nim
23:17:18FromDiscord<Recruit_main70007> Let's just make an actual OS and accord to use it
23:17:27FromDiscord<Recruit_main70007> In Nim that is
23:18:17FromDiscord<Recruit_main70007> Anyway, it's probably easier to just use an emulator
23:19:00FromDiscord<Elegant Beef> It's also probably easier to use raspbian, but that's the not the point as far as i know
23:19:32Yardanicoxd
23:21:04FromDiscord<exelotl> Well, Nim can do everything C can with one exception that still haunts me: addressable constant data
23:21:40clyybberexelotl: But it can nowadays
23:21:49clyybberYou may have to do some emit thingies tho
23:23:47FromDiscord<exelotl> oh yeah, I've figured out how to jump through all the hoops. But emit isn't a nice solution because, when you import the variable back to Nim, you get a duplicate definition
23:24:29FromDiscord<exelotl> you can fix it by adding {.nodecl.}, but then it's impossible to access the variable from other modules (maybe you could importc it in every module where it's used?)
23:26:14FromDiscord<exelotl> so my solution is to have tooling that spits out C files with my data, and also spits out Nim files to {.compile.} the C source and also {.importc.} all the variables
23:27:37FromDiscord<exelotl> not pretty but ends up considerably cleaner and less confusing than building a bunch of macros to massage the emit shenanigans
23:28:12clyybbereh
23:28:25clyybberyou may not even need emit nowadays
23:28:40clyybberlets are now static if possible
23:29:20FromDiscord<exelotl> oh yeah I'm aware there was some work done on 'let' which is awesome. But last I checked it only works for very simple cases, like arrays of numbers
23:30:20FromDiscord<exelotl> I need to be able to have like, a const leveldata object, possibly containing pointers to functions and stuff like that
23:32:50sealmoveok clyybber, I made my attempt: https://github.com/nim-lang/Nim/pull/13600
23:32:50disbotโžฅ added range functionality for runes
23:37:46FromDiscord<clyybber> sealmove: Nice!
23:39:07bunbunbunbunnyhi i'm new to ptrs (coming from python) if i have two integer variables and i want another variable to point to one of these such that i can increment either one from this one variable
23:39:11bunbunbunbunnyhow do i do this
23:43:15sealmovemaybe check the first snippet in this: https://forum.nim-lang.org/t/1787
23:43:23bunbunbunbunnyok thanks!
23:43:54*clyybber quit (Ping timeout: 256 seconds)
23:44:42FromDiscord<exelotl> bunbunbunbunny: here https://play.nim-lang.org/#ix=2dA8
23:45:33*clyybber joined #nim
23:45:41bunbunbunbunnythanks :))
23:46:14FromDiscord<exelotl> I rarely use [] in practise, because usually I'll be working with a pointer to an object, rather than a pointer to an int
23:47:17FromDiscord<exelotl> field access will dereference automatically. so you can do p.foo, you don't need to do p[].foo
23:48:04*filcuc quit (Ping timeout: 265 seconds)
23:48:32clyybbergn8 peeps
23:48:38*clyybber quit (Client Quit)
23:48:38FromDiscord<Elegant Beef> buhbye
23:50:05*filcuc joined #nim
23:50:30bunbunbunbunnyi have an array that has the size based on an enum like so: var arr: array[Ann, Option[CmpVariant]]
23:50:45bunbunbunbunnyand i'm trying to make a method that takes a generic T like so
23:50:46bunbunbunbunnyproc include_these*[T](arr: array[T, Option[CmpVariant]]): array[T, bool] =
23:50:55bunbunbunbunnybut i can't seem to call include_these
23:51:21bunbunbunbunnysays template/generic instatiation from here
23:51:25bunbunbunbunnyinclude_these(arr)
23:51:38bunbunbunbunnydo i need to specify the Ann type after the proc name?
23:51:50*disruptek quit (Ping timeout: 256 seconds)
23:52:24FromDiscord<Elegant Beef> Correct me if im wrong but isnt T in that case the array size?
23:52:39bunbunbunbunnyyea
23:52:59*disbot quit (Ping timeout: 268 seconds)
23:54:25FromDiscord<Elegant Beef> Well i dont know what that's doing, the size being generic doesnt make much much sense, but i barely know anything
23:54:27FromDiscord<Elegant Beef> So ๐Ÿ˜„
23:54:54FromDiscord<exelotl> uuh I'll show you what I would do, gimme 5 mins
23:55:20bunbunbunbunnyok ty
23:55:21bunbunbunbunny:>