<< 21-09-2023 >>

00:05:35FromDiscord<millymox> Figured it ou
00:05:37FromDiscord<millymox> Out
00:05:41FromDiscord<millymox> What’s this error though↵↵undeclared identifier: 'cstringArrayToSeq'
00:11:22*krux02 quit (Remote host closed the connection)
00:21:13*gooba joined #nim
00:27:35NimEventerNew thread by Millymox: How to Properly Wait for a JS Async Event in Nim?, see https://forum.nim-lang.org/t/10502
00:35:12FromDiscord<juancarlospaco> In reply to @millymox "Anybody know how you’d": Literally at top of DOM documentation https://nim-lang.github.io/Nim/dom.html#document-ready
00:40:09FromDiscord<millymox> In reply to @juancarlospaco "Literally at top of": I am not working with the DOM.
00:55:48FromDiscord<leorize> it's just calling a callback
00:56:17FromDiscord<leorize> I don&#x27;t know what library are you using, but you can just wrap the `on` function which would take a string and what seems to be a function
00:56:47FromDiscord<leorize> then just `app.on("ready"): proc () = <your proc>`
01:11:04FromDiscord<user2m> where can I find a full list of nim pragmas and what they do? been using this site but I don't know how up to date it is http://web.mit.edu/nim-lang_v0.16.0/nim-0.16.0/doc/manual/pragmas.txt
01:14:36*lucasta joined #nim
01:16:55FromDiscord<millymox> sent a code paste, see https://play.nim-lang.org/#ix=4GWq
01:24:30FromDiscord<millymox> In reply to @leorize "then just `app.on("ready"): proc": Figured it out thank you a lot
01:24:42FromDiscord<Elegantbeef> should probably be `cstring`
01:28:47FromDiscord<kots> In reply to @user2m "where can I find": This should be it: https://nim-lang.org/docs/manual.html#pragmas
01:29:22FromDiscord<kots> Nim 0.16.0 is from 2017
01:40:08*lumo_e quit (Quit: Quit)
02:07:37*disso-peach joined #nim
02:13:16FromDiscord<user2m> In reply to @k0ts "This should be it:": Thank you!
02:26:33*lucasta quit (Remote host closed the connection)
02:31:15*azimut quit (Ping timeout: 252 seconds)
02:35:49FromDiscord<xerxemi> hi all, ↵sorry for the noobish question but I'm trying to write a macro that takes types and defines a msgpack4nim hander based on that↵↵I inspected the AST spit out by both and they seem to be almost identical (some Syms in the place of Idents) but for some reason they don't do the same thing 🤔 https://media.discordapp.net/attachments/371759389889003532/1154244560311029780/QlDKuMML.jpg
02:36:02FromDiscord<xerxemi> (edit) "hander" => "handler"
02:42:28FromDiscord<Elegantbeef> `sym`s are looked up identifiers so they might be wrong
02:46:50FromDiscord<xerxemi> these are the 2 asts, idk how to fix it lel https://media.discordapp.net/attachments/371759389889003532/1154247337955303594/1WEalvSE.jpg https://media.discordapp.net/attachments/371759389889003532/1154247338261495898/jw3Nbatj.jpg
02:47:39FromDiscord<Elegantbeef> iterate tree replace any node that is `sym` for `ident`
02:47:59FromDiscord<xerxemi> crop https://media.discordapp.net/attachments/371759389889003532/1154247622199083018/57MsgIOQ.jpg https://media.discordapp.net/attachments/371759389889003532/1154247622480117870/eh5CaP2z.jpg
02:48:54FromDiscord<xerxemi> In reply to @Elegantbeef "iterate tree replace any": how to convert Sym to Ident?
02:49:51FromDiscord<Elegantbeef> `yourSym = ident($yourSym)`
02:49:57FromDiscord<xerxemi> ah
03:01:23FromDiscord<xerxemi> literally identical now? https://media.discordapp.net/attachments/371759389889003532/1154250997288411156/9rh4dOBX.jpg https://media.discordapp.net/attachments/371759389889003532/1154250997544275998/i9y9Wi9g.jpg
03:02:22FromDiscord<xerxemi> but it still doesn't work what
03:03:47FromDiscord<Elegantbeef> Compiler errors are helpful
03:03:53FromDiscord<xerxemi> I get this↵when I pack this https://media.discordapp.net/attachments/371759389889003532/1154251624395575380/14Z9lXrR.jpg https://media.discordapp.net/attachments/371759389889003532/1154251624756301916/CXwzw6Di.jpg
03:04:06FromDiscord<xerxemi> In reply to @Elegantbeef "Compiler errors are helpful": it doesn't error that's the weird part
03:04:14FromDiscord<xerxemi> it just gives me different values
03:05:03*derpydoo quit (Quit: derpydoo)
03:05:29FromDiscord<Elegantbeef> So then look at the `repr`
03:10:01FromDiscord<xerxemi> looks like it's not writing x, y, and z https://media.discordapp.net/attachments/371759389889003532/1154253169577164830/tL73Prmk.jpg
03:10:52FromDiscord<xerxemi> wait a sec
03:18:03FromDiscord<xerxemi> the "Call" Node is outside the StmtList in the macro AST↵while in the handwritten one it's inside
03:18:10FromDiscord<xerxemi> ehh
03:20:47FromDiscord<xerxemi> In reply to @Elegantbeef "So then look at": 🤦 ↵tysm for your help https://media.discordapp.net/attachments/371759389889003532/1154255878875271199/Qa0I4wcV.jpg
03:58:04FromDiscord<millymox> How’s the speed of nim generated JavaScript code compared to normal JavaScript code?
04:00:56termerHas anyone used c2nim recently?
04:01:05termerTrying to process a file, I'm getting a macro error
04:01:23FromDiscord<Elegantbeef> I've used it recently it's very finicky of course 😄
04:02:21FromDiscord<Elegantbeef> @.elcritch has done a lot of contributions to it aswell, so there's a few that can use it
04:02:45termermillymox Completely unreadable
04:02:52termerand extremely space-inefficient
04:02:57termerThe first part is to be expected
04:03:04termerif you've ever looked at generated Nim C code, it's the same story
04:03:17termeras for size, that's always been prohibitive for me
04:03:26termerThat and I suspect that it's slow due to the way the outputted code works
04:03:32FromDiscord<.elcritch> yah, I did a bunch with it. there's some params you wanna set as the defaults suck but need to stay for compat
04:04:03termerIs this in reference to Nim JS
04:04:08termerwhich params do you use
04:04:26termerecho "hi" produces a 85 line file on -d:danger
04:06:55FromDiscord<Elegantbeef> Elcritch was talking in regard to c2nim
04:07:05termerOh
04:07:11termerWhich options do you use?
04:07:21termerIt would save me some time if it worked
04:07:29termeralthough I suspect some of it won't work because the code I'm converting is bizarre
04:07:49termerNot related to that, has anyone here used Atlas? Is it something I should actually use?
04:07:50FromDiscord<Elegantbeef> personally I always run c2nim on gcc -E'd code
04:07:58FromDiscord<Elegantbeef> Elcritch also has used atlas 😄
04:10:39termerHow do you actually setup a project with it
04:10:47termerLast time I used it, it prompted me to create a workspace
04:10:53termerwasn't sure what to do when I just wanted a single project
04:11:14FromDiscord<Elegantbeef> Fairly certain the entire point is that you setup a workspace
04:11:21FromDiscord<Elegantbeef> It only makes sense for projects that have dependencies
04:13:00termerMy project will have dependencies
04:13:08termerI want to make sure they can take advantage of a lockfile
04:13:13FromDiscord<Elegantbeef> So then you make a workspace and add the deps
04:13:36FromDiscord<Elegantbeef> Atlas is all about making a workspace containing all your dependencies
04:13:38termerwould the actual code need to be in a subdoir
04:13:40termer*subdir
04:13:45FromDiscord<Elegantbeef> Yes
04:13:54termerThat's a bit annoying but not too bad I suppose
04:13:59FromDiscord<Elegantbeef> Damn you and your IRC cannot make a graphical representation
04:14:00termerdo I still use nimble to init the project in the subdir
04:14:10termerYou have images and I see the links to them
04:14:13FromDiscord<Elegantbeef> Sure it works fine for making a nimble file
04:14:24termerIt all still works on Nimble files, right?
04:14:48FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4GWU
04:14:51FromDiscord<Elegantbeef> Yes it still uses nimble files
04:14:56FromDiscord<Elegantbeef> Though it does have some differences
04:15:07termerYourDep, would those be the dependencies included through nimble or what
04:15:10FromDiscord<Elegantbeef> Like apparently it has different version selectors you can use
04:15:18FromDiscord<Elegantbeef> `atlas install dep` i think
04:15:21FromDiscord<Elegantbeef> or `atlas clone dep`
04:15:31termerwoowee
04:16:02FromDiscord<Elegantbeef> It's completely separate from nimble, aside from using the nimble file of course
04:19:58FromDiscord<millymox> In reply to @termer "millymox Completely unreadable": Yeah it is completely unreadable lol
04:20:10FromDiscord<millymox> It’s not too bad with -d:release
04:20:35termerI fear performance problems more than anything
04:21:22FromDiscord<millymox> Tried running benchmarks (I don’t have a degree in benchmarkology) and performance feels the same for fairly simple things idk about complex apps though
04:21:57termerI don't know. I'm pretty good at writing reasonably well optimized JS by hand, so dealing with such a heavily abstracted environment bothers me
04:21:58FromDiscord<millymox> I would hope the hit isn’t too bad, like not noticeable unless sitting right next to another app written in pure clean JS
04:22:05termerWhat are you trying to do with it
04:22:52FromDiscord<millymox> Oh I’m just playing around with it but I think I was going to make a medium sized chat application with e2ee and user settings, names etc
04:23:13FromDiscord<millymox> I would just use pure JS but I’ve already done that
04:23:15FromDiscord<millymox> And nim is fun
04:23:17FromDiscord<millymox> So why not
04:23:34termerHave you considered doing some of the complex stuff with WASM
04:23:49termerI would stick with JS/TS for a frontend application, especially if you're using a UI framework
04:25:55FromDiscord<millymox> In reply to @termer "Have you considered doing": Ive considered yes
04:29:56FromDiscord<millymox> Yeah definitely frontend in JS
04:32:55*oisota3 joined #nim
04:32:58*oisota quit (Read error: Connection reset by peer)
04:32:59*oisota3 is now known as oisota
04:40:12termerWhy is Atlas not present in ~/.nimble/bin with choosenim
04:40:17termerhow do I actually get atlas
04:43:53FromDiscord<nnsee> In reply to @termer "how do I actually": copy the nim binary to `atlas` in that directory
04:45:26termerare you saying to copy it manually
04:45:31termerI was hoping to not need to do that
04:46:24FromDiscord<nnsee> as in, `cp ~/.nimble/bin/{nim,atlas}`
04:46:51FromDiscord<nnsee> choosenim doesn't copy the proxyexe binary to `atlas` for some reason
04:47:18FromDiscord<nnsee> you can also run it manually from the actual toolchain dir
04:48:46FromDiscord<Elegantbeef> `nimble install atlas` 😄
04:49:34FromDiscord<nnsee> or that. but 2.0 already technically comes with it installed, even via choosenim, choosenim just doesn't expose it
04:50:06FromDiscord<Elegantbeef> Right but it's outdated and has broken parts
04:50:27FromDiscord<.elcritch> The atlas that ships with the Nim releases is really out of date -- it's changed a lot
04:50:40termernimble install atlas doesn't do it
04:51:02termerIt sounds like I shouldn't use atlas if all this nonsense is going on
05:00:20*blop_ quit (Remote host closed the connection)
05:00:51*blop_ joined #nim
05:14:13*advesperacit joined #nim
05:15:37FromDiscord<odexine> well its not atlas' fault but choosenim
05:15:47FromDiscord<odexine> choosenim is outdated and does not create the shim binary for atlas
05:23:08FromDiscord<_gumbercules> Nimble and chooseenim should just be deprecated
05:23:14FromDiscord<_gumbercules> choosenim even
05:24:01FromDiscord<nnsee> what would be the alternative for choosenim?
05:24:14FromDiscord<_gumbercules> something new that isn't terrible
05:24:24FromDiscord<nnsee> so something that doesn't exist yet?
05:24:41FromDiscord<_gumbercules> I suppose - I'm not sure if anyone has authored an alternative yet
05:24:52FromDiscord<Elegantbeef> gitnim exists but is linux only
05:25:10FromDiscord<nnsee> I don't think choosenim is too bad, it does its job fairly well, it just needs updating and some tweaks (like building choosenim as fully static binaries instead of relying on glibc)
05:25:11FromDiscord<_gumbercules> The problem with nimble and choosenim is that the author was half-interested in improving Nim by the time the latter was started
05:25:49FromDiscord<_gumbercules> the former was created when they were like 15 years old or so
05:26:25FromDiscord<odexine> atlas is able to manage nim installations but i have never tried using it to
05:26:39FromDiscord<odexine> choosenim should rather be forked and made community managed
05:26:43FromDiscord<_gumbercules> which isn't supposed to be a slight - but if you're writing the package manager for a programming language you should probably have some experience in using package managers and dom did not at that point in their life by my estimation
05:26:47FromDiscord<odexine> it can be revamped over time
05:26:59FromDiscord<_gumbercules> choosenim should be renamed at the very least
05:27:10FromDiscord<odexine> nimble is perhaps a dead end and we already have atlas to replace it
05:27:12FromDiscord<nnsee> In reply to @odexine "choosenim should rather be": which is what I wanted to do at one point, but was told that there was no point for reasons I can't remember
05:27:23FromDiscord<_gumbercules> because it's a shitty nod to fightclub
05:27:34FromDiscord<nnsee> I even bought getnim.com and getnim.org
05:27:44FromDiscord<_gumbercules> just fork it and make it better and call it something other than choosenim
05:27:53FromDiscord<odexine> In reply to @nnsee "I even bought getnim.com": wtf that must have been expensive
05:27:54FromDiscord<_gumbercules> and don't ask for permission IMO
05:28:13FromDiscord<nnsee> In reply to @odexine "wtf that must have": like 20 bucks? not exactly breaking the wallet
05:28:19FromDiscord<odexine> In reply to @_gumbercules "and don't ask for": it is probably not needed as it is abandoned but i would at least try once
05:28:30FromDiscord<_gumbercules> it sounds like they already did
05:28:46FromDiscord<_gumbercules> I mean - you don't need to ask permission to fork
05:29:00FromDiscord<_gumbercules> I think the asking permission thing was in regard to whether it could become a community maintaned project
05:29:09FromDiscord<_gumbercules> unless I'm mistaken @nnsee
05:29:10FromDiscord<nnsee> it wasn't like I asked for permission, rather I was asking about something technical
05:29:17FromDiscord<_gumbercules> ah okay
05:29:22FromDiscord<nnsee> and someone asked what exactly I was working on
05:29:37FromDiscord<_gumbercules> gotcha
05:30:12FromDiscord<_gumbercules> getnim is a better name than choosenim
05:30:17FromDiscord<sOkam! 🫐> What should be improved for choosenim? what is the issue with it?
05:31:02FromDiscord<sOkam! 🫐> In reply to @odexine "it is probably not": you mean that choosenim is abandoned? i had no idea about that 🤔
05:31:17FromDiscord<odexine> if it's in dom's account, its abandoned
05:31:28FromDiscord<sOkam! 🫐> oh dom left, i see
05:31:45FromDiscord<odexine> In reply to @heysokam "What should be improved": current only issue is either bugs or that atlas isnt shimmed
05:31:52FromDiscord<odexine> i persoanlly am not aware of any more
05:33:06FromDiscord<Elegantbeef> No mac arm support
05:33:07FromDiscord<ringabout> In reply to @okabintaro "I was looking a": Hello, it should have been fixed in the devel (My version compiled at 2023-09-17).
05:34:12FromDiscord<_gumbercules> it simply sucks having a major component of the language's distribution pipeline being a cargo cult solution
05:34:18FromDiscord<_gumbercules> which both choosenim and nimble are
05:34:47FromDiscord<sOkam! 🫐> cargo cult?
05:35:01FromDiscord<_gumbercules> https://en.wikipedia.org/wiki/Cargo_cult_programming
05:35:58FromDiscord<sOkam! 🫐> ah your usual experience elitism. kk, i thought you were talking about cargo from rust
05:36:28FromDiscord<_gumbercules> yes experience elitism being I've been around dom since 2015
05:36:49FromDiscord<_gumbercules> and was around when choosenim was written and when nimble was called babel
05:37:27FromDiscord<nnsee> why did dom leave anyways
05:37:49FromDiscord<_gumbercules> several reasons I reckon
05:39:31FromDiscord<_gumbercules> @sOkam! 🫐 it has nothing to do with elitism - it has to do with bug riddled messes and if you knew anything about the evolution of nimble or choosenim you wouldn't be asking the questions you did above
05:40:47FromDiscord<_gumbercules> but since you seem to know everything and want to throw shade for no reason, I'm not going to spend anymore time attempting to convince you
05:42:56FromDiscord<_gumbercules> In reply to @nnsee "why did dom leave": there used to be a community member named disruptek who was working on the compiler backend and didn't get along with dom
05:43:44FromDiscord<_gumbercules> major drama erupted between the two and disruptek was banned
05:45:15FromDiscord<_gumbercules> the Nim community at that point was also a lot less politically correct and dom was constantly on disruptek's case for his language and demeanor etc....
05:46:47FromDiscord<sOkam! 🫐> First thing I did was ask a question. Next thing I did was ask another question. Next thing was being surprised about how someone had left (that I didn't know he left)↵Which of those three things assumes "I know everything"? I thought questions were meant to signify "hey i don't know this, can someone inform me?"↵I must have mislearned english, idk
05:48:12*rockcavera quit (Remote host closed the connection)
05:48:16advesperacityou did (whether you meant to or not) call gumbercules elitist for using the term cargo cult programming
05:48:21FromDiscord<_gumbercules> disruptek is really bright and can be fun to converse with, but he can also be a huge dick and he targetted dom because dom was a core developer but wasn't doing much for Nim around that time and was focused on some personal projects, while issues piled up with the language and projects he contributed / maintained / claimed ownership over
05:49:11FromDiscord<_gumbercules> In reply to @heysokam "First thing I did": you literally said "ah your usual experience elitism"
05:49:41FromDiscord<sOkam! 🫐> In reply to @advesperacit "you did (whether you": I did, because its a pattern I see in all his speech. And I don't know anything at all, which is the reason I ask questions all the damn frigging time, to the point of being annoying with my obtuse frustrated blindness↵One has nothing to do with the other
05:50:44*ntat joined #nim
05:51:52advesperacitThat's an unfortunate opinion to hold of someone for a pattern in their speech. If you have a problem with their way of talking, accusing someone of being elitist is not a productive path to addressing your grievances.
05:53:11FromDiscord<sOkam! 🫐> fair. my choice of words wasn't the best either
05:54:01FromDiscord<_gumbercules> sent a long message, see http://ix.io/4GX4
05:54:50FromDiscord<Elegantbeef> I know you are, but what am I
05:55:55FromDiscord<_gumbercules> Sticks and stones man, sticks and stones
05:56:53FromDiscord<_gumbercules> I don't think 19 is accurate - I probably started programming at 14 or 15 but I had no idea wtf I was doing
05:57:14FromDiscord<_gumbercules> if typing `beep` into a basic interperter counts I was probably doing it way earlier
05:57:30FromDiscord<nnsee> In reply to @_gumbercules "there used to be": that's a shame, i always had pleasant conversations with him
05:57:34FromDiscord<nnsee> Dom I mean
05:57:48FromDiscord<Elegantbeef> Hey 19 years ago i was eating dirt and wondering why it changed the flavour of my fingers
05:57:58FromDiscord<nnsee> why did it?
05:58:15FromDiscord<Elegantbeef> I mean I still eat dirt, I just don't wonder why anymore
05:58:53FromDiscord<_gumbercules> In reply to @nnsee "that's a shame, i": I'll withhold my opinion on dom - I have some experiences with him that left me feeling less than great about him
05:59:20FromDiscord<nnsee> oh?
05:59:42FromDiscord<nnsee> would like to hear those if you don't mind speaking about it
06:00:32FromDiscord<_gumbercules> dom was supposed to be second in command and neglected his duties but at the same time acted as a petty tyrant
06:02:35FromDiscord<_gumbercules> his personal monetized projects came before Nim always. he had to be involved in decision making processes and control the direction of the language and ecosystem while refusing to maintain or even fix projects he was responsible for
06:04:50FromDiscord<_gumbercules> at the end of the daay he drove off talented contributors or at the very least neglected to find a way to do what was best for the language and not for dom
06:06:55*cm quit (Ping timeout: 264 seconds)
06:07:56*cm joined #nim
06:10:03FromDiscord<_gumbercules> I've never met dom and he seems like he's personable and nice enough but I also don't think he should have stayed in the leadership role he occupied when he didn't have the time or passion to dedicate.
06:13:39FromDiscord<_gumbercules> It would have been fine if he wasn't shooting down RFCs or mishandling situations like not responding to inquiries re: security vulnerabilities in a timely enough manner. That wasn't the case though and eventually Andreas and Dom started to butt heads. Eventually Araq posted something in a reply in the D lang forums about pronouns and Dom decided to exit the community at that point.
06:16:11FromDiscord<_gumbercules> which is the other thing about dom - he was allowed to be an asshole but no one else was
06:20:12NimEventerNew thread by namngrg: Using Result library, see https://forum.nim-lang.org/t/10503
06:21:02FromDiscord<odexine> In reply to @NimEventer "New thread by namngrg:": ngl i dont understand the question
06:22:24advesperacitThanks for sharing your views and opinions, gumbercules, it's been interesting to hear.
06:22:30FromDiscord<_gumbercules> sent a long message, see http://ix.io/4GXd
06:23:45FromDiscord<odexine> The kind who doesn’t try to understand others?
06:23:55FromDiscord<_gumbercules> having said all of that - I hope dom is doing well a nd happy doing whatever he is doing. I'm glad they moved on and Nim has as well
06:24:07FromDiscord<odexine> I wish I could verify what you say, even if I’m willing to trust you with this
06:24:09FromDiscord<_gumbercules> and I wish them the best
06:24:38FromDiscord<_gumbercules> probably gotta comb through IRC logs from uhhhh
06:25:02FromDiscord<_gumbercules> 2017 apparently - https://github.com/zacharycarter/nim-playground
06:26:24FromDiscord<_gumbercules> let's see if I can find the convo
06:33:09FromDiscord<_gumbercules> ugh so many convos
06:33:50FromDiscord<Elegantbeef> \You're welcome
06:36:34FromDiscord<Langosta> In reply to @termer "It sounds like I": did you get it working? I'm having similar problem as you. Choosenim install, no atlas binary in .nimble/bin
06:36:52FromDiscord<Langosta> `nimble install atlas` is also not functional unfortunately
06:37:06FromDiscord<Langosta> I guess build from source
06:38:21FromDiscord<Elegantbeef> `nimble install https://github.com/nim-lang/atlas`
06:39:28FromDiscord<Langosta> It worked! Beef, thank you for always being a homie
06:39:42FromDiscord<Langosta> even if you still eat dirt.....
06:40:38FromDiscord<Elegantbeef> It's also not tagged recently so you likely want `nimble install https://github.com/nim-lang/atlas@#head`
06:41:07FromDiscord<odexine> In reply to @alendrik "even if you still": What’s wrong with eating dirt, huh??
06:41:26FromDiscord<Langosta> In reply to @odexine "What’s wrong with eating": cuz they didn't share with me 😭
06:41:51FromDiscord<Langosta> He also keeps the secrets of why it changes my finger's color..... mystery man
06:41:54FromDiscord<_gumbercules> I can't find the convo from the day it got hacked but if you go back to 2017/2018 you can see plenty of conversations between dom and me where dom is asking me if something is ready with the playground
06:41:58FromDiscord<odexine> There’s plenty of dirt for everyone
06:42:03FromDiscord<_gumbercules> or if I've moved the playground etc
06:42:06FromDiscord<odexine> In reply to @_gumbercules "2017 apparently - https://github.com/zacharycarter/": I’ll look into it too
06:42:31FromDiscord<_gumbercules> I remember at the time feeling like - fuck this, I'm not your employee dude
06:42:33FromDiscord<odexine> I wonder how old dom was at that point
06:42:45FromDiscord<odexine> Perhaps it was just young overexcitement
06:42:46FromDiscord<odexine> Or so
06:42:58FromDiscord<_gumbercules> but it's amusing looking back because if you questioned why dom hadn't fixed or improved nimble or whtatever
06:43:40FromDiscord<_gumbercules> and why he was working on his io game or whatever, it was war
06:44:37FromDiscord<toma400> In reply to @NimEventer "New thread by namngrg:": Isn't that about unions? Either way, not sure why `Result` is not preferred option, as it's pretty damn well lib + it makes your transition between Nim and Rust easier
06:44:42FromDiscord<_gumbercules> In reply to @odexine "Perhaps it was just": could have been - but it was like building something for the community and then that something immediately turning into a job
06:45:14FromDiscord<_gumbercules> without being asked if that was okay or anything, and then when I wasn't performing it was an issue haha
06:45:52advesperacitWhenever nimble gives me shit I can hear disrupteks parting words, it turns the anger into a chuckle
06:47:41FromDiscord<_gumbercules> he really did not like nimble
06:48:49advesperacitnimble may not have been a net-positive for the nim community
06:50:45FromDiscord<_gumbercules> yeah, I'm interested to see what the off-ramp looks like
06:53:03FromDiscord<_gumbercules> lol
06:53:05FromDiscord<_gumbercules> https://irclogs.nim-lang.org/10-12-2020.html#02:40:49 - just found that
06:55:42FromDiscord<toma400> I hear shit about Nimble all the time here, but am I the only one person who enjoys using it? 😅
06:56:04FromDiscord<toma400> I mean, I never made anything complex, I only install libs through it, but I found it pretty nice package manager overall
06:56:11advesperacitI also enjoy it telling me I
06:56:12FromDiscord<Elegantbeef> It's partially usable
06:56:12FromDiscord<Elegantbeef> It's got a bunch of bugs and questionable design
06:56:28advesperacit'm missing 'hg' when it doesn't understand an url
06:56:41FromDiscord<Elegantbeef> `nimble develop -g` doesnt work
06:56:46FromDiscord<Elegantbeef> `nimble c` also doesnt work as intended, though that's an easy fix
06:59:15FromDiscord<_gumbercules> In reply to @toma400 "I mean, I never": Nimble didn't have lockfiles until last year I think?
07:00:04FromDiscord<_gumbercules> So reproducible builds weren't really possible
07:03:49FromDiscord<_gumbercules> and then yeah, bugs, missing features, etc
07:04:05FromDiscord<_gumbercules> not to mention the program is pretty unintuitive
07:04:20FromDiscord<Elegantbeef> Status completely broke `nimble develop` and has refused to elaborate how to use the new feature
07:04:33FromDiscord<Elegantbeef> https://github.com/nim-lang/nimble/issues/1124
07:06:10FromDiscord<_gumbercules> really glad I don't use nimble
07:06:49FromDiscord<_gumbercules> lol is status even aware of the issue?
07:08:19FromDiscord<Elegantbeef> That one is the most obtuse issue with nimble for me presently
07:08:20FromDiscord<Elegantbeef> That and the whole blocking an uninstall
07:08:20FromDiscord<Elegantbeef> Telling me I cannot uninstall a package cause other packages rely on it, but not prompting me to uninstall all of them is just a joke 😄
07:08:48FromDiscord<Chronos [She/Her]> In reply to @Elegantbeef "That and the whole": Yeah it's so irritating honestly
07:09:02FromDiscord<intellij_gamer> There's `nimble uninstall -i` but that breaks sometimes if one of the packages is somehow invalid
07:09:20FromDiscord<Chronos [She/Her]> It should work for us, not us work around it
07:11:09advesperacitOne might expect that of a tool, but I guess the developers had a different viewpoint
07:11:36FromDiscord<Chronos [She/Her]> Which is bad design imo
07:11:44FromDiscord<Chronos [She/Her]> But hey, what do I know about design 🤷‍♀️
07:11:58advesperacitYea it's terrible and should be cast into the fire
07:34:55FromDiscord<toma400> In reply to @_gumbercules "really glad I don't": Isn't it though open sourced, and so it would improve if community worked on it?
07:35:17FromDiscord<toma400> Or is it so broken that it needs complete rewrite?
07:35:28FromDiscord<odexine> In reply to @toma400 "Isn't it though open": Well I assume it would but no one seems to
07:39:23FromDiscord<toma400> I find it kinda not productive, especially if it slows down development due to bugginess and such. It's first law of programmers, if you can do task for 10 minutes or automate it in 10 days, automate it 😅 ↵Also reminds me kinda of this post (screenshoted since I don't know if preview for Twitter works here)↵https://twitter.com/tagir_valeev/status/1704402352051028474 https://media.discordapp.net/attachments/371759389889003532/115432
07:39:48FromDiscord<toma400> (edit) "I find it kinda not productive, especially if it slows down development due to bugginess and such. It's first law of programmers, if you can do task for 10 minutes or automate it in 10 days, automate it 😅 ↵Also reminds me kinda of this post (screenshoted since I don't know if preview for Twitter works here)↵https://twitter.com/tagir_valeev/status/1704402352051028474 https://media.discordapp.net/attachments/37175938988900353
07:40:32FromDiscord<toma400> (edit) "http://ix.io/4GXr" => "http://ix.io/4GXs"
08:18:13*ntat quit (Quit: leaving)
08:37:04FromDiscord<Phil> In reply to @toma400 "Isn't it though open": I think a lot of folks hold a similar opinion to myself here:↵It does what I need it to (nimble search, nimble install, nimble tasks, nimbledeps) and where it doesn't I went so quickly and subconsciously to the more "direct" approach (Hello rm -r, is that you?) that it didn't properly register that that is broken/annoying functionality.
08:37:21FromDiscord<ieltan> In reply to @Elegantbeef "Telling me I cannot": ah yes, i was also hitting this issue every now and then and it was so annoying that i had to delete them manually
08:37:27FromDiscord<ieltan> glad i switched to atlas
08:47:07FromDiscord<nnsee> In reply to @_gumbercules "I wrote the original": kind of funny, one of my interactions with Dom was because I had hacked the playground box
08:47:34FromDiscord<nnsee> but he seemed pleasant enough
08:47:35FromDiscord<odexine> “So it was YOU”
08:47:46FromDiscord<nnsee> nah, mine wasn't because of ssh
08:47:53FromDiscord<odexine> It was a joke :ChiguPien:
08:48:22FromDiscord<nnsee> it was a command injection in the functionality which created the container
08:48:38NimEventerNew thread by jhgalino: For loop iteration variables, see https://forum.nim-lang.org/t/10504
08:48:47FromDiscord<odexine> In reply to @nnsee "it was a command": ? How’d that work
08:52:09FromDiscord<nnsee> it was this commit iirc https://github.com/PMunch/nim-playground/commit/d3e25173090f78ca4fcab661f19972dcf28bb326
08:52:28FromDiscord<nnsee> although, authored by PMunch... maybe it wasn't Dom who I was talking with
08:53:04FromDiscord<odexine> In reply to @nnsee "although, authored by PMunch...": Lol
08:53:13FromDiscord<nnsee> oh, I was taking with Dom about another security issue
08:53:16FromDiscord<nnsee> https://github.com/nim-lang/nimforum/security/advisories/GHSA-q3vh-x957-wr75
08:53:19FromDiscord<nnsee> my bad
08:53:33*def- quit (Quit: -)
08:53:45*def- joined #nim
09:22:09FromDiscord<Phil> wait a second.... Oh god damnit I think I was an idiot.↵Macros also support overloading, right?
09:23:37FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4GXR
09:31:55FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4GXX
09:32:07FromDiscord<sOkam! 🫐> that's something I've wondered before, and always resort to different names
09:33:25FromDiscord<Phil> In reply to @heysokam "how would you solve": Actually that might've been the reason why I originally went with separate names since procDef must be last
09:35:25FromDiscord<Phil> sent a long message, see http://ix.io/4GXY
09:35:52FromDiscord<sOkam! 🫐> ic
09:36:15FromDiscord<sOkam! 🫐> dont you have to qualify still, if nim can see both in its current context?
09:36:42FromDiscord<Phil> I actually haven't tried, let me wrap up the mapster docs and I'll see if that can work or not
09:46:12arkanoidcan nim type system help me if I need a string field of an object to be of len == 10 ?
09:46:44FromDiscord<odexine> Not really if you use the string type
09:47:06FromDiscord<odexine> Otherwise, array[10, char]?
09:48:00arkanoidodexing, I can use distinct, or concepts, whatever it's needed, but yeah I also was thinking about array[10, char]
09:50:09arkanoidthe issue I see with using array[10, char] is that the field was originally a string, and by making it an array I would end up introducing more string copies
09:50:26arkanoidit's not a big problem
09:53:28FromDiscord<Phil> You mean becasue its a value type?
09:53:51FromDiscord<Phil> Because you could also allocate that on the heap so that you only copy refs around
09:54:12FromDiscord<Phil> Honestly this is more me wanting to understand the problem because I'm reasonably sure you've already thought of that solution as well
09:54:18FromDiscord<Phil> (edit) "Honestly this is more me wanting to understand the problem ... because" added "out of curiosity"
09:56:54FromDiscord<sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4GY4
09:57:45FromDiscord<sOkam! 🫐> if you cannot change its size, it will be equivalent to a sized array, but with distinct you could borrow
09:57:48arkanoidPhil, no, I'm just adding constraints to an existing system. I had a previously existing field decrared as string, that now I know it must be of len 10, not more, not less (it was of variable length, but now I have a logic to expand shorter and reduce longer existing values back to len 10)
09:58:12arkanoidso I wanted to make this change in an idiomatic way
09:58:25FromDiscord<sOkam! 🫐> sounds like a case for distinct 🤔
10:02:31FromDiscord<odexine> sent a code paste, see https://play.nim-lang.org/#ix=4GY7
10:06:07FromDiscord<Chronos [She/Her]> Trying t get my level editor done sigh
10:11:36arkanoidthe I fail to see how the distinct string way forbids len =! 10
10:12:21arkanoid"00112233445566778899".MyDistinctString is valid
10:12:59arkanoidI should forbid conversion except in the costructor
10:13:51FromDiscord<odexine> In reply to @arkanoid "I should forbid conversion": not possible without not exporting the type
10:14:33arkanoidok, then array[10,char] seems a safer solution then
10:25:20FromDiscord<Chronos [She/Her]> Ah... Would anyone know how I'm supposed to draw a 2D texture in a 3D space on raylib? :p
11:11:50FromDiscord<raynei486> In reply to @arkanoid "can nim type system": since you're asking for type constraints I would recommend concepts
11:11:56FromDiscord<raynei486> they're cleaner imo
11:12:37arkanoidraynei486 yep but forcing a string to be of len 10 at runtime is a runtime thing
11:12:58FromDiscord<raynei486> ah then that's a different story
11:12:59arkanoidhow can I use a concept to make a string type with len forced to 10
11:14:51FromDiscord<raynei486> you can put arbitrary expressions that are required to be valid for the concept
11:15:14FromDiscord<raynei486> I don't think the new style concepts are documented but the old style still works
11:15:21FromDiscord<raynei486> https://nim-lang.org/docs/manual_experimental.html#concepts
11:28:17arkanoidI yet have to figure out how to wrap my head around concepts
11:30:04arkanoidcoming from python and C#, I have some bad practices I need to get rid of when writing code without OOP. I'm quite sure concepts and typeclasses should fill some gaps, but not yet sure which ones
11:31:06arkanoidfor example, what OOP calls interface (you extend an existing class, you have to provide some methods with given signature to be able to compile) Is still a thing not quite clear how to do in Nim
11:34:21*Mister_Magister quit (Read error: Connection reset by peer)
11:34:31arkanoiddo you know a project that can teach me how can I design my software around concepts and typeclasses?
11:36:11*Mister_Magister joined #nim
11:44:53FromDiscord<vindaar> If you have runtime requirements you need runtime checks. The only thing you can do is have some sort of "entry" of a conversion to a different type that guarantees the string length and write your majority of code based on that. For that code you can then of course work safely under the assumption of a fixed string length
11:45:06*def- quit (Quit: -)
11:45:38*def- joined #nim
11:48:43*azimut joined #nim
12:18:26*jmdaemon quit (Ping timeout: 258 seconds)
12:23:17FromDiscord<nervecenter> In reply to @arkanoid "coming from python and": I have yet to need to use an object as anything more than a struct/record. I highly recommend dipping your toe in some functional learning (try F#, maybe some Clojure), then come back with fresh eyes. While C#-style OOP in Nim feels odd, referentially transparent procedures and mostly immutable data passed up and down a pyramidal call stack feels very very natural.
12:36:10arkanoidvindaar, I understand, and that's how I have it now (distinct string). But if I would move to array[10, char] I would also enforce it at compile time.
12:40:35*xet7 joined #nim
12:41:19arkanoidnervecenter, I've done some exercises with Haskell, and yes it was quite enlightening to understand how to work with immutable data and pure functions. That's why I'm forcing myself into funcs instead of procs, let instead of var, stack instead of heap whenever possible. But the issue here is different.
12:42:36arkanoidthe issue here is how to represent an idea, a software architecture, in idiomatic Nim leveraging on high level concepts like typeclasses and ... concepts
12:44:47FromDiscord<nervecenter> In reply to @arkanoid "<@143177514385145856>, I've done some": You don't need to force yourself into `func` and `let`. Just isolate your mutability inside of your procs. Don't pass it around unless you absolutely must.
12:45:23FromDiscord<nervecenter> Put constraints on how far your mutability reaches. I have mutable data and iterative algorithms all over my code, but they never leak outside of their local scope ever.
12:45:33FromDiscord<nervecenter> (edit) "Put constraints on how far your mutability reaches. I have mutable data and iterative algorithms all over my code, but they never leak outside of their local scope ... ever." added "almost"
12:45:36*rockcavera joined #nim
12:46:14FromDiscord<nervecenter> When I make a proc that takes a `var` parameter I put a lot of thought into it
12:46:20FromDiscord<juh9870> Hello, is there a method to take n items from iterator and skip the rest? I want to only print first 5 items from an iterator
12:46:27FromDiscord<juh9870> (edit) "n" => "`n`"
12:47:20FromDiscord<nervecenter> In reply to @arkanoid "the issue here is": Maybe you do really really need typeclasses...but I can't comment, I haven't needed them yet
12:52:30*derpydoo joined #nim
13:00:18FromDiscord<vindaar> In reply to @arkanoid "<@150345911057252352>, I understand, and": So then just use that (or another static type like it). what are you wondering about? not sure how concepts come into this. they are nothing but restrictions to generics. can be useful if you want to support different types that all satisfy certain conditions without allowing arbitrary T.
13:02:03*ntat joined #nim
13:07:39FromDiscord<_gumbercules> Might have been the time. Im not sure. That is pretty funny though.
13:14:31*def- quit (Quit: -)
13:15:46*def- joined #nim
13:36:41FromDiscord<Chronos [She/Her]> https://github.com/Nimberite-Development/Trigger-Nim/blob/main/src/trigger.nim should I put locks here and stuff to prevent things from being used across threads or do you think it's the user's responsibility?
13:36:54FromDiscord<Chronos [She/Her]> Also I'm not even sure on how I'd implement it at a library level
13:37:07FromDiscord<Chronos [She/Her]> Except for passing the arguments to a proc, that's an issue
13:38:29FromDiscord<Chronos [She/Her]> Probably could create some shared memory manually ig but that feels a bit like hm behaviour
13:43:39FromDiscord<simply.acr0> how in the fuck do i make my modules work 💔 help!!!
13:44:50FromDiscord<demotomohiro> https://nim-lang.github.io/Nim/manual.html#modules
13:46:26FromDiscord<swag_1337> does anyone know how to import files from a folder called modules, which is just other nim files, then run them all in a main.nim file. i've been trying to do it for awhile but can't find any help, might just be stupid
13:46:43FromDiscord<swag_1337> In reply to @simply.acr0 "how in the fuck": print("hello world")
13:47:29FromDiscord<odexine> In reply to @swag_1337 "does anyone know how": your question is ambiguous
13:47:51FromDiscord<odexine> "run them" importing a module will run it as well
13:48:48FromDiscord<odexine> you import based on the location of the file you put the import in, so if the `modules` folder is "beside" the main.nim file, you just put `import modules/<file name>` in main.nim
13:49:07FromDiscord<simply.acr0> great
13:49:10FromDiscord<odexine> if you want multiple, `import modules/[<file 1>, <file 2>, ...]`
13:49:16FromDiscord<swag_1337> print("hellu world")
13:49:34FromDiscord<simply.acr0> cool lang
13:49:37FromDiscord<simply.acr0> confusing syntax!!!
13:49:42FromDiscord<odexine> what?
13:49:48FromDiscord<simply.acr0> i got it to work anyway
13:49:54FromDiscord<odexine> what is confusing?"
13:51:53FromDiscord<swag_1337> im about to ejaculate
13:53:36FromDiscord<simply.acr0> In reply to @odexine "what is confusing?"": syntax is a bit foreign
13:53:37FromDiscord<simply.acr0> to me
13:53:54FromDiscord<odexine> In reply to @swag_1337 "im about to ejaculate": can you not
13:54:07FromDiscord<odexine> In reply to @simply.acr0 "syntax is a bit": hm, what are you used to? what language are you from
13:54:07FromDiscord<swag_1337> In reply to @odexine "can you not": but im really close
13:54:15FromDiscord<swag_1337> he's arab
13:55:10FromDiscord<simply.acr0> 💀
13:55:18FromDiscord<simply.acr0> shut up finnish monkey
13:55:29FromDiscord<simply.acr0> In reply to @odexine "hm, what are you": golang python
13:55:31FromDiscord<swag_1337> 😡
13:55:48FromDiscord<odexine> In reply to @simply.acr0 "golang python": it should be similar-ish to python's import syntax then
13:55:49FromDiscord<swag_1337> do finnish/norwish people actually exist
13:56:07FromDiscord<simply.acr0> In reply to @odexine "it should be similar-ish": generally the syntax bugs me a bit
13:56:34FromDiscord<swag_1337> In reply to @swag_1337 "do finnish/norwish people actually": erm norwegian
13:57:11FromDiscord<odexine> In reply to @simply.acr0 "generally the syntax bugs": Do you mind elaborating as to why?
13:57:43FromDiscord<simply.acr0> uhuh idk
13:57:47FromDiscord<simply.acr0> proc
13:57:51FromDiscord<simply.acr0> could have been def or function
13:58:56FromDiscord<Chronos [She/Her]> Every language does it different lol
13:59:13FromDiscord<Chronos [She/Her]> If you're expecting a literal compiled python, you're better off with Cython :p
13:59:43FromDiscord<swag_1337> arabs
13:59:56FromDiscord<Chronos [She/Her]> But if you're learning Nim because you're wanting to make use of it's language features, as someone who used python for a while before Nim, heavily recommend it
14:00:07FromDiscord<Chronos [She/Her]> Takes a lot of getting used to, but it's nice
14:00:09FromDiscord<swag_1337> discord
14:00:32FromDiscord<odexine> In reply to @simply.acr0 "proc": there is a reason it isnt though?
14:01:13FromDiscord<swag_1337> @simply.acr0 istg there was someone named rika in gg/hacked
14:02:44FromDiscord<demotomohiro> When I start learning Nim after using C++, it took long time to get used with `varname: typename`.
14:09:48arkanoidI'm reading about how Julia works. It describes itself as a Just Ahead Of Time compilation. It's interesting. I wonder how inim does it
14:10:00FromDiscord<ieltan> In reply to @simply.acr0 "could have been def": well, i'm glad it's not done this way personally
14:10:49FromDiscord<ieltan> Nim has `proc` for "normal" procedures, `func` for procedures that do not have side effects, `method` for procs that implement dynamic dispatch on a type
14:10:54FromDiscord<Chronos [She/Her]> In reply to @arkanoid "I'm reading about how": Compiling with a C compiler every time code is ran :p
14:11:07FromDiscord<ieltan> it really make sense to me and is quite elegant (but thats subjective)
14:11:29FromDiscord<Chronos [She/Her]> In reply to @ieltan "Nim has `proc` for": (`method`s can actually be avoided by using generics depending on the usecase)
14:11:37FromDiscord<ieltan> it make sense because thats how textbook CS define those words too
14:12:23FromDiscord<ieltan> "method" comes up alot in OOP context, and i have never seen "procedure" used in a functional context either
14:13:03FromDiscord<ieltan> In reply to @chronos.vitaqua "(`method`s can actually be": well yes, what you should use depends on the usecase
14:13:13FromDiscord<ieltan> i'm just saying the syntax is good imo
14:26:07FromDiscord<Chronos [She/Her]> Yeah that's fair and I agree
14:30:43FromDiscord<toma400> In reply to @chronos.vitaqua "If you're expecting a": Tbh, coming from Python the syntax is so similar that I actually spent first week just trying to work out differences 😅
14:31:14FromDiscord<toma400> (and all differences except for less support for runtime reading of scripts (obvious thing for compiled lang) were so superior 🥰)
14:31:25FromDiscord<Chronos [She/Her]> Yeah that's fair lol, the only thing that was a pain to get used to at first, was the way OOP is done in Nim
14:31:31FromDiscord<Chronos [She/Her]> Well, the biggest pain
14:31:48FromDiscord<toma400> Funnily for me it wasn't, since I were always confused with Python's OOP, so rarely used it
14:31:59FromDiscord<toma400> Meanwhile Nim structs are so natural for me, I love them so much 🥰
14:32:17FromDiscord<toma400> (edit) "were" => "was"
14:35:14FromDiscord<odexine> In reply to @ieltan ""method" comes up alot": well procedures dont really exist in a functional context
14:42:38FromDiscord<Chronos [She/Her]> In reply to @toma400 "Funnily for me it": I quite often made use of it really, so was a bit of a hard thing to get past at first
14:42:47FromDiscord<Chronos [She/Her]> Nim does it much nicer and better tho imo
14:44:07FromDiscord<toma400> Yeah, depends how much of OO person you are. Glad that you get used to Nim's way tho ❤️
14:44:11FromDiscord<toma400> (edit) "get" => "got"
14:45:46FromDiscord<Chronos [She/Her]> Yeah, it's great haha
14:46:08FromDiscord<Chronos [She/Her]> Kinda want an easy to do project that'll be enjoyable to do tbh but not sure
14:46:17FromDiscord<Chronos [She/Her]> Nearly all of my projects do big things :p
14:46:36FromDiscord<Chronos [She/Her]> I guess I could make a Minecraft proxy since I already made a library for parsing packets and stuff
14:49:26FromDiscord<toma400> In reply to @chronos.vitaqua "Nearly all of my": Haha, that's fate I share heavily 😅
14:49:55FromDiscord<toma400> Doing small games for limited time is very fun tho, so I kinda started using this as a challenge from time to time
14:50:17FromDiscord<Chronos [She/Her]> That's fair, I am also doomed with the curse of overengineering lol
14:50:31FromDiscord<Chronos [She/Her]> Example: Map format here
14:50:32FromDiscord<Chronos [She/Her]> https://gist.github.com/Yu-Vitaqua-fer-Chronos/6c93818b5c61adac0c252b7ea5dcc034
14:50:43FromDiscord<Chronos [She/Her]> Still need to implement it in the first place :p
14:51:45FromDiscord<toma400> I feel like Minecraft is cursing people into overengineering, lol. I were peacefully hardcoding everything previously, but after modding Mc, I now want to have translation systems and modular elements everywhere 😆
14:51:56FromDiscord<toma400> In reply to @chronos.vitaqua "https://gist.github.com/Yu-Vitaqua-fer-Chronos/6c93": Quite neat system tho
14:52:12FromDiscord<Chronos [She/Her]> Thanks! :D
14:52:21FromDiscord<Chronos [She/Her]> In reply to @toma400 "I feel like Minecraft": I'm not at that stage yet thankfully xD
14:52:37FromDiscord<Chronos [She/Her]> Though there was times I was tempted to make something like Adventure for Nim, no point for it currently
14:55:03FromDiscord<toma400> In reply to @chronos.vitaqua "I'm not at that": I mean, it's a curse and a blessing. Like a month or two ago I saw Roadwarden author complaining that he didn't think of translation system for the game, and now when the game peaked with popularity, it is quite inconvenient to have it purely English and with no way to add new langs.↵So in this case, having this preemptive thoughts of systems that should be put in place is pretty damn im
14:55:35FromDiscord<Chronos [She/Her]> Yeah that's fair lol
14:55:43FromDiscord<toma400> I gotta say that this was one of the reasons why I'm making RPG rn, as I wanted to translate it. Who would've guessed from simple translation of terminal game it will become fully visual text RPG with crazy scope XD
14:56:05FromDiscord<Chronos [She/Her]> As such is the way of a neurodivergent
14:57:31FromDiscord<toma400> In reply to @chronos.vitaqua "Though there was times": Would you like to explain the idea? I guess #offtopic would be a bit more fitting place tho 😅
14:58:46FromDiscord<Chronos [She/Her]> I think this fits since it is for Nim :p
15:00:24FromDiscord<Chronos [She/Her]> I did make plugins for things like Spigot or Paper (and Mindustry but that's a diff Java game, can't remember if it used Adventure) briefly for fun, and obviously there was Adventure, library for text components which you could use for making translatable keys iirc, but also had other text components for things like adding colour to text and all that
15:00:36FromDiscord<Chronos [She/Her]> Various different formatting things that you could keep chaining on
15:04:43*blop_ quit (Remote host closed the connection)
15:09:22FromDiscord<toma400> Oh, nice, was this bound to some graphical library, or tried to be as agnostic as possible?
15:12:44FromDiscord<Chronos [She/Her]> Adventure isn't bound to a specific library and can be used elsewhere, but I think it's mostly just common in MC↵The one we wanna do would also be agnostic too because we'd probably find multiple places it could be used if we really wanted to
15:13:02FromDiscord<Chronos [She/Her]> (Games, CLI programs, etc)
15:22:29FromDiscord<n00nehere> anyone know what "nimeval" is?
15:22:39FromDiscord<n00nehere> i get an error saying that i miss it while installing ratel
15:27:14FromDiscord<thugshaker.online> sent a long message, see http://ix.io/4GZM
15:27:20FromDiscord<n00nehere> yes
15:27:40FromDiscord<n00nehere> iirc someone already made some
15:28:10FromDiscord<boom_bang> gotta do this quick cuz i'm in school
15:28:19FromDiscord<boom_bang> how do you switch the external compiler to a different one
15:28:25FromDiscord<Chronos [She/Her]> In reply to @thugshaker.online "I was wondering ": You can even make them in Rust lol
15:29:08FromDiscord<Chronos [She/Her]> In reply to @boom_bang "how do you switch": https://nim-lang.org/docs/nimc.html#compiler-selection
15:29:45FromDiscord<thugshaker.online> In reply to @chronos.vitaqua "You can even make": What
15:29:48FromDiscord<thugshaker.online> Why would anyone do this
15:29:51FromDiscord<thugshaker.online> (edit) "this" => "that"
15:30:09FromDiscord<Chronos [She/Her]> In reply to @thugshaker.online "What": Some people like Rust and what it provides them
15:30:29FromDiscord<Chronos [She/Her]> I don't like Rust personally but point is you can make them in nearly any compiled language
15:31:05FromDiscord<millymox> sent a code paste, see https://play.nim-lang.org/#ix=4GZN
15:35:20*Mister_Magister quit (Quit: bye)
15:35:58FromDiscord<Chronos [She/Her]> Stupid idea: What if we compile every stdlib module for use in Nimscript
15:36:02FromDiscord<Chronos [She/Her]> Every single one
15:36:27FromDiscord<Chronos [She/Her]> Then also have tcc to allow for compiling code using `importc`
15:51:47FromDiscord<.aingel.> In reply to @millymox "How can i add": Just curious are you following a tutorial or article or something? I'm also curious as to how to import external js libs and use in nim
15:53:25FromDiscord<millymox> In reply to @.aingel. "Just curious are you": Nope not following a tutorial or article i kinda just wanted to do something and now i slowly but surely am understanding what to do through looking around and asking questions on the forum
15:53:31FromDiscord<millymox> No particular guide though
15:54:18FromDiscord<.aingel.> Gotcha, thanks!
15:54:56FromDiscord<.aingel.> I'm kinda unclear too how the importc import pragmas work actually
15:55:18FromDiscord<.aingel.> I've done it for c and c++ but I'm not sure what the header file does and the importc exactly does
15:55:22FromDiscord<Chronos [She/Her]> `importc` is easy imo, it just imports a function with the same signature
15:55:34FromDiscord<.aingel.> Why do you need the header file then
15:55:36FromDiscord<Chronos [She/Her]> `header` is just for specifying the path of the header file when compiling
15:55:51FromDiscord<Chronos [She/Her]> In reply to @.aingel. "Why do you need": Still uses a C compiler underneath
15:55:58FromDiscord<.aingel.> Okay
15:56:06FromDiscord<.aingel.> Makes sense
15:56:10FromDiscord<Chronos [She/Her]> Yeah aha
15:56:53NimEventerNew thread by Millymox: How to add nim intellisense to a imported JavaScript object?, see https://forum.nim-lang.org/t/10506
15:57:06FromDiscord<.aingel.> What if you just do .importc. without anything else
15:57:16FromDiscord<.aingel.> Does it just try and import a function with the same name?
15:58:16FromDiscord<Chronos [She/Her]> Yep
15:58:41FromDiscord<Chronos [She/Her]> If you've emitted an include statement rather than the header pragma you should also be fine but I'm not 100% on that one
16:00:34FromDiscord<.aingel.> Right
16:08:29FromDiscord<toma400> In reply to @chronos.vitaqua "Adventure isn't bound to": That sounds really cool, I hope to see that once you make it a reality ❤️
16:14:10FromDiscord<Chronos [She/Her]> Thanks haha
16:24:12*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
16:26:53*Lord_Nightmare joined #nim
16:33:29*krux02 joined #nim
16:37:04FromDiscord<choltreppe> Is there a webserver/framework that supports server-events or lets you respond with a stream or something so you can do server-events yourself ?
16:44:40FromDiscord<n00nehere> In reply to @n00nehere "anyone know what "nimeval"": ^
16:50:02FromDiscord<Chronos [She/Her]> In reply to @choltreppe "Is there a webserver/framework": Websockets, perhaps?
16:50:22FromDiscord<Chronos [She/Her]> Iirc prologue has support for websockets
16:50:29FromDiscord<Chronos [She/Her]> Tho not exactly events
16:57:28FromDiscord<voidwalker> So it seems I cannot modify a `result` by calling a proc that takes its type as a `var`
16:57:54FromDiscord<voidwalker> Anyway around this, so I don't have to duplicate code in the `newThing`, and also `addToThing`?
16:58:11FromDiscord<odexine> In reply to @voidwalker "So it seems I": ? can you elaborate
16:58:43FromDiscord<voidwalker> trying to make illwillwidgets a tad nicer, and I have this
16:59:21FromDiscord<voidwalker> sent a code paste, see https://play.nim-lang.org/#ix=4H0e
16:59:40FromDiscord<voidwalker> (edit) "https://play.nim-lang.org/#ix=4H0e" => "https://play.nim-lang.org/#ix=4H0f"
17:00:00FromDiscord<voidwalker> ah wait
17:00:22FromDiscord<voidwalker> hm my bad, there was some other error
17:00:27FromDiscord<voidwalker> mixed up int/string order
17:04:57FromDiscord<odexine> okay haha thats good
17:05:11*krux02 quit (Ping timeout: 255 seconds)
17:05:18FromDiscord<voidwalker> haven't touched code in 2-3 months. gaming pathology : (
17:06:57FromDiscord<voidwalker> I wonder if there's any guides/writeups about wrapping a c++ library that uses classes heavily
17:07:03FromDiscord<millymox> In reply to @voidwalker "haven't touched code in": Hey man i feel ya lmao, got into a car accident couldn’t code for months, prior to that i had also broken my pc so no coding for months, don’t worry it’ll all come back
17:07:23FromDiscord<voidwalker> woot, aren't PCs like .. free now ?
17:07:56FromDiscord<millymox> I wish
17:08:10FromDiscord<voidwalker> I mean you can get a used one 3-4 gens old ,for next to nothing
17:08:33FromDiscord<millymox> True true
17:12:45FromDiscord<Chronos [She/Her]> In reply to @voidwalker "I wonder if there's": Nim UE5 does a lot of that tbf
17:16:53FromDiscord<voidwalker> I cannot extract know how from code, I need know how first
17:29:21FromDiscord<.aingel.> In reply to @voidwalker "I cannot extract know": I don't think there are a lot of guides on this stuff yet
17:29:35FromDiscord<.aingel.> Not a whole lot of write ups about nim in general since the userbase is still small
17:29:58FromDiscord<.aingel.> So for stuff especially about 'using classes heavily' you'll have to probably look at examples
17:30:24FromDiscord<.aingel.> There are a couple articles or stuff just about importing cpp stuff but as for 'heavily' will probably have to look at some projects for examples
17:30:27FromDiscord<.aingel.> Just my guess!
17:32:01FromDiscord<voidwalker> How many years until we have enough userbase for tui and torrent libs ? : )
17:34:20FromDiscord<.aingel.> You can try wrapping libtransmission since it's in C
17:34:21FromDiscord<voidwalker> I strongly feel that this project needs better management, for what it is. There are some funds afaik, they should be used to get more libraries going.
17:36:34FromDiscord<odexine> if you can find people willing to work on it sure
17:37:05FromDiscord<voidwalker> Well, there's a huge graveyard of old nim projects that never got anywhere. Much wasted (mostly solo) effort
17:38:39Amun-Rayes
17:38:50FromDiscord<odexine> that doesnt mean much for "people willing to work on nim itself"
17:40:47FromDiscord<voidwalker> I meant the library ecosystem. We don't have a complete/recent ffmpeg wrap, we don't have a non-barebones tui lib, we don't have a torrent lib (wrapped or native), we don't have any modern web crawling/parsing libs, no ipfs http api wrapper, and so on
17:40:57FromDiscord<voidwalker> just a few of the things I needed in my random projects ideas
17:41:20FromDiscord<odexine> halonium isnt modern?
17:41:26FromDiscord<odexine> i forgot the exact name
17:41:58FromDiscord<voidwalker> `Status↵↵This library is mostly converted from the Python selenium codebase as of ~Dec 2019.`
17:42:06FromDiscord<voidwalker> (edit) "`Status↵↵This" => "`Status↵A browser automation engine written in Nim translated from Python.↵This"
17:42:39FromDiscord<voidwalker> ok so 4 year old port, but browser automation is just a (potential) small part of web crawling, when you have to deal with problematic javascript
17:43:41FromDiscord<odexine> "non barebones" iirc most tuis are intentionally barebones? i dont know why
17:44:13FromDiscord<.aingel.> I think python has some cool tui thing
17:44:16FromDiscord<voidwalker> barebones as in, hacked together simply/buggy widgets, if any
17:44:17FromDiscord<.aingel.> Textual
17:44:26FromDiscord<voidwalker> everyone has some cool tui thing except nim
17:44:52FromDiscord<.aingel.> Be the change u want to see
17:45:01FromDiscord<odexine> not really
17:46:01FromDiscord<Chronos [She/Her]> In reply to @.aingel. "Textual": Doesn't textual have something for using CSS in Python too? Sounds absolutely insane ngl
17:46:04FromDiscord<jmgomez> @voidwalker about C++ look at here: https://github.com/Clonkk/nim-cppstl↵Also take a look at the manual and manual experimental. ↵Fell free to ask questions (forums better so other people can see them in the future).↵I will write something about it once Nim 2.2 gets out as there a few features in devel
17:46:21FromDiscord<voidwalker> I wish I could be, but my knowledge is too limited to be of any help with a tui lib. I mostly got a torrent downloader going in nim, I should probably try and finish that
17:46:23FromDiscord<jmgomez> About the ecosystem, help to improve it
17:46:47FromDiscord<voidwalker> I find the TUI framework concept incredibly complicated to understand. And I found no books to read on
17:47:00FromDiscord<.aingel.> Are u writing like a torrent client in nim
17:47:21FromDiscord<.aingel.> With transcoding of some sort?
17:47:33FromDiscord<voidwalker> yeah, I hacked at one, while trying to learn nim, I could get a correct debian iso download like 80% of the time 😄
17:47:45FromDiscord<.aingel.> U can wrap libtorrent
17:47:49FromDiscord<.aingel.> (edit) "libtorrent" => "libtransmission"
17:47:56FromDiscord<.aingel.> With futhark, it will do everything for you
17:48:04FromDiscord<.aingel.> libtransmission is in c
17:48:05FromDiscord<voidwalker> come on, libtransmission is obsolete
17:48:10FromDiscord<.aingel.> Why
17:48:16FromDiscord<.aingel.> transmission is a very popular client
17:48:36FromDiscord<voidwalker> oh wait it's not
17:48:58FromDiscord<.aingel.> https://github.com/transmission/transmission/tree/main/libtransmission
17:49:15FromDiscord<voidwalker> yeah the thing is, I actually wanted some custom torrent hacks that I can use
17:49:39FromDiscord<Chronos [She/Her]> Futhark isn't a solution btw, it's just a low-level wrapper that you still need to build upon (and update accordingly)
17:50:10FromDiscord<voidwalker> So I had to roll my own thing, too complicated to learn C and try to understand a much bigger code base
17:50:24FromDiscord<.aingel.> Are u doing streaming downloading?
17:50:56FromDiscord<.aingel.> Wait I guess not if u were talking about a linux iso
17:51:00FromDiscord<voidwalker> that was one of the potential use cases, yeah, but that's not a hack, it's a common feature
17:51:12FromDiscord<.aingel.> Yeah
17:51:22FromDiscord<.aingel.> What is the custom feature that you are looking for then
17:51:42FromDiscord<voidwalker> ghost leeching and stuff
17:52:15FromDiscord<voidwalker> also to give it an http interface for access to files
17:55:24FromDiscord<.aingel.> In reply to @voidwalker "ghost leeching and stuff": Oh noo
17:55:44FromDiscord<voidwalker> oh no, internet morality police : P
17:56:11FromDiscord<Chronos [She/Her]> Ghost leeching?
17:56:21FromDiscord<Chronos [She/Her]> As in not doing the uh
17:56:25FromDiscord<Chronos [She/Her]> Peer sharing thing?
17:56:35FromDiscord<.aingel.> Not reporting your download stats
17:56:40FromDiscord<.aingel.> It's cheating on private trackers
17:56:55FromDiscord<voidwalker> well actually what I wanted is more than that, downloading a torrent without even being a member on the tracker
17:57:00FromDiscord<Chronos [She/Her]> I don't understand that really, don't torrent much-
17:57:22FromDiscord<Chronos [She/Her]> In reply to @voidwalker "well actually what I": Ah well, good luck-
17:57:50FromDiscord<voidwalker> It's possible, been tested to work
18:02:25FromDiscord<voidwalker> Anyways, there's some big gaps in the nim ecosystem, and I believe it could be improved with a bit of central initiative and organizations. Hackathons, bounties, community chat rooms for various projects for better coordination, a nim wiki, and so on
18:02:48FromDiscord<odexine> that requires people willing to take that initiative
18:04:05FromDiscord<voidwalker> And we need some more cool finished apps in nim so we can show off. Nitter is not enough
18:05:05FromDiscord<odexine> easier said than done?
18:06:00FromDiscord<fowl.mouth> How do you finish a project? 🤔 I don’t do that lol
18:07:43FromDiscord<Chronos [She/Her]> In reply to @voidwalker "And we need some": Easier said than done + Nitter is just dead now rip
18:11:57FromDiscord<voidwalker> Of course the result/work itself is easier said than done, but the initiative to coordinate community effort towards some libraries could be done. And I don't see much of that. Instead we got a $60 book that was mostly the printed (bad quality print) nim docs, without even getting an ebook version.
18:12:41FromDiscord<voidwalker> and a whole bunch of people that will never touch nim cause of some random nonsensical forum rant of our leadership : D
18:13:22FromDiscord<jmgomez> Nim has problems, yes. Instead of pointing at then what about building the community/tools you want to see?
18:14:06FromDiscord<mratsim> In reply to @chronos.vitaqua "Easier said than done": Is it dead? People keep using it and running their own instance
18:14:13FromDiscord<voidwalker> A simple thing would be, to get people interested in a certain nim project, to make a community projects category for discord rooms, where people could discuss the development of that project
18:14:33FromDiscord<mratsim> I'd like better Nim vscode
18:14:54FromDiscord<odexine> nimsuggest is a major bottleneck that no one seems to be really that willing to touch
18:15:09FromDiscord<voidwalker> A wiki platform where people can post articles on how to achieve various things with nim. Like scrape a webpage.
18:15:21FromDiscord<odexine> there are already wiki pages
18:15:23FromDiscord<leorize> the solution is in limbo for so long it's a meme now
18:15:25FromDiscord<odexine> there's tomohiro's page
18:15:36FromDiscord<odexine> https://internet-of-tomohiro.netlify.app/nim/faq.en.html
18:16:07FromDiscord<voidwalker> Yeah that's tomohiro's wiki, he is the author of all that. It's not a community wiki
18:16:25FromDiscord<odexine> he takes snippets from this channel and incorporates it into the wiki
18:16:29FromDiscord<leorize> technically the nim repo have a community-editable wiki
18:16:37FromDiscord<leorize> just that not many actually use/maintain it
18:16:42FromDiscord<leorize> it's world editable iirc
18:16:55FromDiscord<voidwalker> no, nobody uses/sees that, we need https://wiki.nim-lang.org
18:17:06FromDiscord<voidwalker> with a big link on the main page
18:17:15FromDiscord<voidwalker> Like https://wiki.freepascal.org/ has
18:17:17FromDiscord<jmgomez> In reply to @odexine "https://internet-of-tomohiro.netlify.app/nim/faq.en": yes, Demo docs should be promoted
18:18:14FromDiscord<voidwalker> Also a bug/project bounty could be made, where people could contribute money towards a certain goal, incentivizing some lazy but talented asses to work on that instead of random shenanigans
18:18:23FromDiscord<voidwalker> (edit) "Also a bug/project bounty ... could" added "platform"
18:18:58FromDiscord<voidwalker> Like this list here, https://github.com/nim-lang/needed-libraries/issues
18:19:24FromDiscord<mratsim> In reply to @leorize "the solution is in": And it had bounties and grants
18:20:05FromDiscord<voidwalker> Also, we need nim coding streams, there's barely any on youtube, besides the tutorial/intro ones
18:20:24FromDiscord<odexine> we HAVE HAD NIM CODING STREAMS
18:20:36*ntat quit (Quit: leaving)
18:21:08FromDiscord<sOkam! 🫐> I believe what voidwalker is trying to point at (correct me if I'm wrong) is the lack of proactive effort from the lead devs towards things that would be more "marketing" oriented, things that would aid in adoption and not just relying on people putting effort themselves into finding that help on their own, and things that would "sell" the language as something worth using
18:21:41FromDiscord<sOkam! 🫐> or maybe not lack, but just pointing that there could be more effort towards it
18:21:47FromDiscord<odexine> yes this has been known as a problem for years
18:21:55FromDiscord<voidwalker> Yes, something like that. There needs to be a plan. It's a very decent language, 15 years old now, that is barely getting noticed.
18:22:54FromDiscord<leorize> there are only a handful that can make their way around that mess anyways↵(@mratsim)
18:23:08FromDiscord<voidwalker> And I was just stating my frustrations with the lack of building blocks to build my dream projects.
18:23:08*jkl quit (Quit: Gone.)
18:23:24*xet7 quit (Quit: Leaving)
18:23:53FromDiscord<voidwalker> Also one thing that annoys me greatly is the asyncdispatcher/chronos divide. I cannot use the great status libs that all use chronos with the nim std async stuff
18:24:19FromDiscord<sOkam! 🫐> In reply to @voidwalker "And I was just": what im doing currently is essentially build those blocks for myself on my way there
18:24:27FromDiscord<leorize> soon i'll crash the party with nim-sys and you can get even more frustrated
18:24:37FromDiscord<odexine> because status isnt (is not willing?) to use the -d:asyncbackent switch
18:24:37FromDiscord<sOkam! 🫐> could probably take that route too, and build some more tools that other people can use, while they are useful for you too
18:24:47FromDiscord<odexine> (edit) "-d:asyncbackent" => "-d:asyncbackend"
18:24:48FromDiscord<sOkam! 🫐> most people just write some test project and quit for other langs
18:24:53*jkl joined #nim
18:25:07FromDiscord<sOkam! 🫐> without thinking of their own future even
18:25:21FromDiscord<voidwalker> @odexine that switch is just a way to signal a code path, code needs to be written for both to use that, since they are not syntactically identical
18:25:27FromDiscord<voidwalker> and functionally
18:25:37FromDiscord<odexine> In reply to @voidwalker "<@259277943275126785> that switch is": i know
18:25:41FromDiscord<odexine> reread my message
18:26:15FromDiscord<jmgomez> Well, there is people trying to improve things rather than just complaining here and forgot about it: https://github.com/nim-lang/Nim/issues/22720
18:26:45FromDiscord<leorize> I wish them luck
18:26:59FromDiscord<leorize> this wouldn't be the first time someone started an initiative
18:27:11FromDiscord<odexine> i'm looking to create another formatter for nim that is loosely based on nimpretty, i started a day ago or so
18:27:49FromDiscord<odexine> In reply to @odexine "i'm looking to create": loosely as in i'm reading a few papers of prettifying architectures and basing off of that instead of nimpretty's arch
18:28:03FromDiscord<jmgomez> My point is if someone wants to help, there are means. Im trying to do my part as others are too. Of course, this is not an obligation or anything but just saying that those complains can become actions
18:28:11FromDiscord<odexine> maybe i'll also further use leorize's treesitter parser instead but that might not be too good
18:29:02FromDiscord<leorize> there are some very bad nim that it can't parse
18:29:56FromDiscord<odexine> i might just go up to the lexer and not parse but im also not too sure about that approach
18:29:58FromDiscord<sOkam! 🫐> In reply to @odexine "i'm looking to create": please make it take a .cfg file custom for itself, and also take ideas from clangd-format. its the best formatting tool out there
18:30:01FromDiscord<leorize> other than that it already parses most of the compiler
18:30:03FromDiscord<odexine> though i should just do it and see
18:30:10FromDiscord<odexine> In reply to @heysokam "please make it take": i know
18:30:14FromDiscord<odexine> i know about the config file i mean
18:30:30FromDiscord<odexine> i also know about clang format but im not sure what to "take from it"
18:30:46FromDiscord<sOkam! 🫐> well the customization aspect of almost everything
18:30:58FromDiscord<odexine> unsure what config format i'll be using for this but i am deffo not going to use nimscript...
18:31:06FromDiscord<Chronos [She/Her]> In reply to @mratsim "Is it dead? People": Well, if it isn't yet, it will be soon bc Elon is gonna put Twitter behind a paywall :p
18:31:09FromDiscord<sOkam! 🫐> most formatters end up becoming nazis of formatting just by simply not having customization as a first class usecase
18:31:12FromDiscord<leorize> you do need the parser to recognize nim structures↵(@odexine)
18:31:14FromDiscord<odexine> In reply to @heysokam "most formatters end up": i know about that
18:31:32FromDiscord<odexine> In reply to @leorize "you do need the": i know but i'm just wondering if i need to
18:32:04FromDiscord<sOkam! 🫐> In reply to @odexine "unsure what config format": toml? yaml? or were you thinking of just cfg
18:32:22FromDiscord<odexine> In reply to @heysokam "toml? yaml? or were": i will NOT take yaml no thanks, toml maybe but not sure either, maybe just ini
18:32:55FromDiscord<sOkam! 🫐> why do people hate yaml so much? haven't found a single issue with it yet, but maybe im just newb
18:33:02FromDiscord<odexine> because it is a pain to parse
18:33:08FromDiscord<odexine> even if i dont need to parse it anymore
18:33:18FromDiscord<sOkam! 🫐> ic
18:33:28FromDiscord<odexine> its a pain to deal with in general
18:33:37FromDiscord<sOkam! 🫐> In reply to @odexine "i will NOT take": ini as in cfg like nim.cfg?
18:33:44FromDiscord<odexine> ini as in ini
18:33:45FromDiscord<leorize> some parsers even let you run arbitrary code inside yaml
18:33:50FromDiscord<leorize> so some bad rep come from that
18:35:40*xet7 joined #nim
18:39:06arkanoidmratsim: hi! Thanks for developing Synthesis. Do you think it can be used to build hierachical state machines?
19:07:39NimEventerNew thread by giaco: Which tools do you use to code in Nim?, see https://forum.nim-lang.org/t/10507
19:21:08*blop_ joined #nim
19:21:28FromDiscord<voidwalker> any clue how I would add to a `seq[seq[string]]` an `openArray[string]` ?
19:22:43FromDiscord<leorize> you have to merge them into one seq first
19:22:52FromDiscord<leorize> sequtils have a flatten proc for that iirc
19:24:01FromDiscord<voidwalker> not sure why I would neet to flatten ?
19:24:07FromDiscord<voidwalker> (edit) "neet" => "need"
19:25:31FromDiscord<leorize> an `openArray[string]` expects a single array of `string`
19:25:38FromDiscord<Chronos [She/Her]> You want a nested seq in an openArray
19:25:43FromDiscord<Chronos [She/Her]> A flat openArray
19:25:52FromDiscord<leorize> ohhhhh
19:25:54FromDiscord<leorize> my bad
19:25:58FromDiscord<Chronos [She/Her]> Unless you mean you want `openArray[openArray[string]]`
19:25:58FromDiscord<leorize> I misread your stuff
19:25:59FromDiscord<voidwalker> I wwant to add the openArray to the seq[seq[]], not the other way around
19:26:01FromDiscord<leorize> just add `@`
19:26:06FromDiscord<Chronos [She/Her]> Oh wait ah
19:26:10FromDiscord<leorize> it will convert it to seq
19:26:13FromDiscord<Chronos [She/Her]> Sorry brain is dead
19:26:25FromDiscord<Chronos [She/Her]> I thought you needed `toSeq` to that?
19:26:32FromDiscord<Chronos [She/Her]> Or is that just for iterators
19:26:35FromDiscord<leorize> `toSeq` is for iterators
19:26:44FromDiscord<leorize> `@` is the operator for non-iterators
19:27:03FromDiscord<voidwalker> https://media.discordapp.net/attachments/371759389889003532/1154499048636686436/image.png
19:27:04FromDiscord<voidwalker> like this ?
19:27:44FromDiscord<voidwalker> `invalid type: 'lent openArray[string]' in this context: 'iterator (a: seq[openArray[string]]): lent openArray[string]{.inline, noSideEffect, gcsafe, locks: 0.}' for proc`
19:27:59FromDiscord<Chronos [She/Her]> In reply to @leorize "`toSeq` is for iterators": Good to know
19:28:07FromDiscord<voidwalker> (edit) "`invalid" => "`/nim-1.6.14/lib/system/iterators.nim(233, 19) invalid"
19:28:17*Mister_Magister joined #nim
19:29:45FromDiscord<voidwalker> oh wait the error was for something else
19:30:52FromDiscord<voidwalker> sent a code paste, see https://play.nim-lang.org/#ix=4H0V
19:31:03FromDiscord<voidwalker> rows being for the moment a ` rows: seq[openArray[string]]`
19:34:52FromDiscord<voidwalker> It's a seq[seq[string]] structure that I want to be able to construct by passing in array[seq[]] or seq[seq[]] or seq[array[]] (of string)
19:49:10FromDiscord<boom_bang> In reply to @chronos.vitaqua "https://nim-lang.org/docs/nimc.html#compiler-select": still confuddled
19:52:11FromDiscord<sOkam! 🫐> In reply to @boom_bang "still confuddled": how are you compiling right now?
19:52:13FromDiscord<Chronos [She/Her]> @boom_bang well, what compiler do you want to use?
19:55:52FromDiscord<boom_bang> i downloaded mingw
19:57:16FromDiscord<Chronos [She/Her]> Nim should be using that automatically if it's installed on the system already
19:57:35FromDiscord<sOkam! 🫐> nim uses mingw automatically, and it also installs it
19:57:57FromDiscord<sOkam! 🫐> (edit) "nim uses mingw automatically, and it also installs it ... " added "when using choosenim"
19:59:15FromDiscord<boom_bang> i had to redownload mingw
19:59:22FromDiscord<boom_bang> because fsr my old version stopped working
20:02:58*Mister_Magister_ joined #nim
20:03:34*Mister_Magister quit (Ping timeout: 244 seconds)
20:06:43*Mister_Magister joined #nim
20:07:42*Mister_Magister_ quit (Ping timeout: 244 seconds)
20:11:28*Mister_Magister quit (Ping timeout: 258 seconds)
20:12:26*Mister_Magister joined #nim
20:19:24*Amun-Ra quit (Ping timeout: 240 seconds)
20:20:47*jkl quit (Quit: Gone.)
20:24:23*oz quit (Ping timeout: 246 seconds)
20:24:27FromDiscord<n00nehere> In reply to @mratsim "Is it dead? People": every instance is now broken
20:29:09FromDiscord<.aingel.> In reply to @voidwalker "and a whole bunch": What rant / post is this? Just curious
20:30:43FromDiscord<voidwalker> @.aingel. https://forum.nim-lang.org/t/10312#68553
20:31:23FromDiscord<_gumbercules> I wouldn't call that really random or nonsensical
20:31:42*Amun-Ra joined #nim
20:31:53FromDiscord<_gumbercules> Whether you agree with Andreas or not is another matter but what they said makes sense in the given context
20:32:15FromDiscord<_gumbercules> That doesn't mean it's true or untrue, but it's definitely not nonsensical or random
20:32:33FromDiscord<.aingel.> This makes me like nim more
20:32:45FromDiscord<.aingel.> Tbh I keep naming my branches master too cause it's just so ridiculous
20:33:06FromDiscord<voidwalker> I agree with him as well, it's just that some people, not on the nim forums, saw it as a bad omen for the language
20:33:14FromDiscord<.aingel.> Yeah I feel you
20:33:21FromDiscord<.aingel.> Also I feel bad that he feels down about things in general
20:34:53FromDiscord<_gumbercules> People are constantly looking for something to complain about so they don't have to look at themselves. Similar deal with the many people out there who need to consistently find reasons that allow them to paint themselves as a victim.
20:34:57FromDiscord<.aingel.> It's hard to tell in the future anyways what will take off or not. Python was around for a long time before it picked up. I don't think people thought that ruby would be as dead as it is now 10 years ago
20:35:28FromDiscord<_gumbercules> In reply to @.aingel. "Also I feel bad": Well we don't know this is the case - they made a strong statement about their feelings re: mankind overall but that doesn't infer that they are depressed or feeling down about things in general.
20:35:42FromDiscord<.aingel.> The whole git push origin master thing is just ridiculous, especially cause they changed it in response to some "current event" which is just ridiculous, so I get where he is coming from
20:36:03FromDiscord<.aingel.> In reply to @_gumbercules "Well we don't know": Idk losing hope in humanity in general is a negative statement
20:36:39FromDiscord<_gumbercules> Sure but that doesn't mean that he's depressed - I don't have much faith in humanity in its present state either but that doesn't mean I'm depressed
20:36:59FromDiscord<_gumbercules> In fact I'm not depressed at all - quite the contrary
20:37:27FromDiscord<_gumbercules> In reply to @.aingel. "The whole git push": Which current event was this?
20:37:50FromDiscord<.aingel.> I won't get into it here but you can look up the timing and figure it out I guess
20:38:23FromDiscord<.aingel.> I think there's a lot of time for nim to catch on more as a language
20:38:27FromDiscord<_gumbercules> Well, all I'll say re the master / slave subject is that the word slave comes from the word slav
20:38:49FromDiscord<_gumbercules> So if you wan to know who the original slaves were, they weren't African or American
20:39:50FromDiscord<_gumbercules> I highly doubt people really impacted by slavery are feeling much better because Github renamed the default branch from master to main - but what do I know
20:39:55*Mister_Magister quit (Ping timeout: 264 seconds)
20:55:57*ox joined #nim
20:58:26*jmdaemon joined #nim
21:01:20*azimut quit (Remote host closed the connection)
21:01:29FromDiscord<toma400> sent a long message, see http://ix.io/4H1v
21:01:40FromDiscord<raynei486> In reply to @_gumbercules "So if you want": Did the Romans enslave so many eastern europeans that they just called them slav
21:01:51*azimut joined #nim
21:02:21FromDiscord<_gumbercules> was actually the Spanish Muslims
21:03:15FromDiscord<_gumbercules> Eastern Europeans have been the world's doormat though for quite some time
21:03:26FromDiscord<_gumbercules> Still to this day - just look at Ukraine
21:03:34FromDiscord<raynei486> In reply to @_gumbercules "was actually the Spanish": hmm didn't Islam start way after roman empire fell
21:03:39FromDiscord<raynei486> In reply to @_gumbercules "Eastern Europeans have been": unfortunately
21:03:41FromDiscord<_gumbercules> anyway - dont' want to verge too far into off-topic here
21:04:19FromDiscord<_gumbercules> In reply to @raynei486 "hmm didn't Islam start": I'm just talking about where the word originated from not necessarily who was the first person subjugated by another human
21:04:58FromDiscord<_gumbercules> the first person to be called a slave though was definitely a Slavic person and it definitely happened way before the transatlantic slave trade
21:04:58FromDiscord<raynei486> ah
21:06:03FromDiscord<_gumbercules> slavery is horrible no matter where it occurs but IME Github's move was more of an attempt to signal virtue than actually help solve any real problem
21:06:34FromDiscord<_gumbercules> B=ut I mean - Github is not unique in exhibiting this type of behavior. Lots of people and organizations engage in the same type of behavior pretty consistently these days.
21:06:42FromDiscord<_gumbercules> (edit) "B=ut" => "But"
21:11:20FromDiscord<Chronos [She/Her]> What features should a text component library have, anyone got ideas?
21:12:08FromDiscord<Chronos [She/Her]> Text component library meaning components associated with certain formatting, or for having translatable keys for example
21:13:39FromDiscord<.aingel.> Is this for a TUI?
21:13:58FromDiscord<Chronos [She/Her]> It'll be agnostic but a TUI is one place it can be used
21:14:16FromDiscord<Chronos [She/Her]> Like I could use it in a game for example, or in a TUI
21:19:51*advesperacit quit ()
21:22:02FromDiscord<Chronos [She/Her]> Huh does std/with have this issue? `Expressions will be evaluated only one time (by create anonymous variable).`
21:22:20FromDiscord<Chronos [She/Her]> Read from https://github.com/khchen/chain which is 2 years old so maybe outdated but idk
21:23:49*xet7 quit (Remote host closed the connection)
21:56:26FromDiscord<voidwalker> sent a code paste, see https://play.nim-lang.org/#ix=4H1I
21:56:27FromDiscord<voidwalker> Can someon explain what is wrong with this code please
22:01:15FromDiscord<Elegantbeef> @voidwalker `newTableBox` takes `openArray[(int, string)]` you're passing `seq[(int, string)]` and `seq[seq[string]]`
22:02:05FromDiscord<voidwalker> ElegantBeef, I was just thinking I'm gonna quit nim if you're not around anymore lol
22:02:16FromDiscord<voidwalker> It takes `headers: openArray[(int, string)], rows: seq[openArray[string]]`
22:02:41FromDiscord<Elegantbeef> Whoops you're partially right
22:02:46FromDiscord<Elegantbeef> `openArray` cannot be inside a container
22:02:58FromDiscord<voidwalker> what conatiner ?
22:03:03FromDiscord<Elegantbeef> change that to `seq[seq[string]` or use a concept
22:03:41FromDiscord<voidwalker> well the whole idea was that I could be able to take in both arrays/seq structure when constructing the object
22:03:54FromDiscord<Elegantbeef> Time for a concept
22:03:55*Mister_Magister joined #nim
22:04:19FromDiscord<mratsim> In reply to @arkanoid "<@570268431522201601>: hi! Thanks for": Yes, just have state machines calling lower level state machines
22:05:49FromDiscord<voidwalker> In reply to @Elegantbeef "Time for a concept": I don't do concepts, I'm a simpleton, you should know that by now : )
22:06:11FromDiscord<Elegantbeef> Well then make an overload
22:06:37FromDiscord<voidwalker> I am really curious how it would look with a concept. Aren't you ? : D
22:06:59FromDiscord<Elegantbeef> Lol
22:07:09FromDiscord<voidwalker> You are the only person that understands this stuff
22:08:42FromDiscord<Elegantbeef> PS you should name it `initTableBox`
22:08:51FromDiscord<Elegantbeef> Or even better `init` and take the typedesc as the first parameter
22:08:55FromDiscord<Elegantbeef> https://play.nim-lang.org/#ix=4H1P
22:08:56FromDiscord<Elegantbeef> But there you go conceptized
22:10:03FromDiscord<voidwalker> erm, I didn't name it, trying to improve this sorry ass only tui widgets lib we have :\ https://github.com/enthus1ast/illwillWidgets/blob/master/src/illwillWidgets.nim
22:10:32FromDiscord<Elegantbeef> I don't really care who named it `new` indicates heap allocations
22:10:49FromDiscord<Elegantbeef> Well it indicates the object is heap allocated
22:11:08FromDiscord<voidwalker> and it isn't ?
22:11:25FromDiscord<Elegantbeef> `type MyObj = object` is not heap allocated no
22:11:58FromDiscord<Elegantbeef> I was of course being hyperbolic, if it's not your code, it's not your problem
22:13:07FromDiscord<voidwalker> well, if I can make some improvements, I will PR it
22:15:07FromDiscord<voidwalker> you wouldn't happen to have experience with TUIs ?
22:16:17FromDiscord<Elegantbeef> A bit
22:18:14FromDiscord<voidwalker> How would you see a real TUI lib coming to nim ? Porting one ? Maybe from rust or go. Or wrapping one (all the good ones are c++)
22:19:18FromDiscord<Elegantbeef> They're relative primitive so I'd write it from scratch
22:20:00FromDiscord<voidwalker> primitive ? you mean they are easy to write ?
22:20:36FromDiscord<Elegantbeef> For the most part, yes
22:22:04FromDiscord<voidwalker> I couldn't find any books on how to design one, except this: https://nick-black.com/htp-notcurses.pdf
22:22:49arkanoidmratsim: k, thanks
22:24:37FromDiscord<voidwalker> thanks beef, that concept code actually works with all combos of seq/array
22:25:11FromDiscord<voidwalker> a bit unfortunate you need a concept for it, but what can you do
22:29:30FromDiscord<Elegantbeef> Overload 😄
22:30:09FromDiscord<.aingel.> @ElegantBeouf Why can't he use openArray
22:30:35FromDiscord<.aingel.> I was just reading about openarray and it says it can be used when you want to accept a seq or an array
22:31:45FromDiscord<.aingel.> Oh I see cause of seq[openArray[string]]
22:36:23FromDiscord<.aingel.> What about nimwave
22:36:32FromDiscord<.aingel.> https://github.com/ansiwave/nimwave
22:37:18FromDiscord<.aingel.> It seems pretty low level
22:38:34*ox is now known as oz
22:48:29FromDiscord<voidwalker> yeah, it's built with a forked illwave for low level operations. I didn't use it to try to make some widgets cause it has no documentation, no simple examples
23:07:07*qwestion joined #nim
23:28:22FromDiscord<.aingel.> I remember reading a thread somewhere were people were saying there were no examples, probably on the nim forums, but idk doesn't the readme now have a basic example?
23:29:47*droidrage joined #nim
23:37:58FromDiscord<thugshaker.online> is it just me or is the nim docs like absoloutely useless 99% of the time becuase a lot of the stuff either doesn't work or throws errors, or both
23:38:27FromDiscord<Elegantbeef> Docs work for me
23:38:51FromDiscord<Riddle> what throws errors?
23:40:17*derpydoo quit (Ping timeout: 255 seconds)
23:40:29FromDiscord<keithdaustin> I wouldn't call them useless, they're just not necessarily written in a way that's easy to understand if you don't have a lot of low level programming knowledge (imo). Most of the time I've taken issue with something in the docs it's ended up being me making a typo or misunderstanding something
23:40:43FromDiscord<millymox> Any guide/tutorial on making a nim package?
23:40:52FromDiscord<millymox> Like how to set it up intially
23:42:07FromDiscord<keithdaustin> I think there is a tutorial in the nimble GitHub repo? I just went through creating and publishing a package not long ago and I'm pretty sure that's where I found the info
23:43:14FromDiscord<keithdaustin> https://github.com/nim-lang/nimble right in the readme
23:46:02FromDiscord<millymox> Thank you!