00:05:35 | FromDiscord | <millymox> Figured it ou |
00:05:37 | FromDiscord | <millymox> Out |
00:05:41 | FromDiscord | <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:35 | NimEventer | New thread by Millymox: How to Properly Wait for a JS Async Event in Nim?, see https://forum.nim-lang.org/t/10502 |
00:35:12 | FromDiscord | <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:09 | FromDiscord | <millymox> In reply to @juancarlospaco "Literally at top of": I am not working with the DOM. |
00:55:48 | FromDiscord | <leorize> it's just calling a callback |
00:56:17 | FromDiscord | <leorize> I don'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:47 | FromDiscord | <leorize> then just `app.on("ready"): proc () = <your proc>` |
01:11:04 | FromDiscord | <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:55 | FromDiscord | <millymox> sent a code paste, see https://play.nim-lang.org/#ix=4GWq |
01:24:30 | FromDiscord | <millymox> In reply to @leorize "then just `app.on("ready"): proc": Figured it out thank you a lot |
01:24:42 | FromDiscord | <Elegantbeef> should probably be `cstring` |
01:28:47 | FromDiscord | <kots> In reply to @user2m "where can I find": This should be it: https://nim-lang.org/docs/manual.html#pragmas |
01:29:22 | FromDiscord | <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:16 | FromDiscord | <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:49 | FromDiscord | <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:02 | FromDiscord | <xerxemi> (edit) "hander" => "handler" |
02:42:28 | FromDiscord | <Elegantbeef> `sym`s are looked up identifiers so they might be wrong |
02:46:50 | FromDiscord | <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:39 | FromDiscord | <Elegantbeef> iterate tree replace any node that is `sym` for `ident` |
02:47:59 | FromDiscord | <xerxemi> crop https://media.discordapp.net/attachments/371759389889003532/1154247622199083018/57MsgIOQ.jpg https://media.discordapp.net/attachments/371759389889003532/1154247622480117870/eh5CaP2z.jpg |
02:48:54 | FromDiscord | <xerxemi> In reply to @Elegantbeef "iterate tree replace any": how to convert Sym to Ident? |
02:49:51 | FromDiscord | <Elegantbeef> `yourSym = ident($yourSym)` |
02:49:57 | FromDiscord | <xerxemi> ah |
03:01:23 | FromDiscord | <xerxemi> literally identical now? https://media.discordapp.net/attachments/371759389889003532/1154250997288411156/9rh4dOBX.jpg https://media.discordapp.net/attachments/371759389889003532/1154250997544275998/i9y9Wi9g.jpg |
03:02:22 | FromDiscord | <xerxemi> but it still doesn't work what |
03:03:47 | FromDiscord | <Elegantbeef> Compiler errors are helpful |
03:03:53 | FromDiscord | <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:06 | FromDiscord | <xerxemi> In reply to @Elegantbeef "Compiler errors are helpful": it doesn't error that's the weird part |
03:04:14 | FromDiscord | <xerxemi> it just gives me different values |
03:05:03 | * | derpydoo quit (Quit: derpydoo) |
03:05:29 | FromDiscord | <Elegantbeef> So then look at the `repr` |
03:10:01 | FromDiscord | <xerxemi> looks like it's not writing x, y, and z https://media.discordapp.net/attachments/371759389889003532/1154253169577164830/tL73Prmk.jpg |
03:10:52 | FromDiscord | <xerxemi> wait a sec |
03:18:03 | FromDiscord | <xerxemi> the "Call" Node is outside the StmtList in the macro AST↵while in the handwritten one it's inside |
03:18:10 | FromDiscord | <xerxemi> ehh |
03:20:47 | FromDiscord | <xerxemi> In reply to @Elegantbeef "So then look at": 🤦 ↵tysm for your help https://media.discordapp.net/attachments/371759389889003532/1154255878875271199/Qa0I4wcV.jpg |
03:58:04 | FromDiscord | <millymox> How’s the speed of nim generated JavaScript code compared to normal JavaScript code? |
04:00:56 | termer | Has anyone used c2nim recently? |
04:01:05 | termer | Trying to process a file, I'm getting a macro error |
04:01:23 | FromDiscord | <Elegantbeef> I've used it recently it's very finicky of course 😄 |
04:02:21 | FromDiscord | <Elegantbeef> @.elcritch has done a lot of contributions to it aswell, so there's a few that can use it |
04:02:45 | termer | millymox Completely unreadable |
04:02:52 | termer | and extremely space-inefficient |
04:02:57 | termer | The first part is to be expected |
04:03:04 | termer | if you've ever looked at generated Nim C code, it's the same story |
04:03:17 | termer | as for size, that's always been prohibitive for me |
04:03:26 | termer | That and I suspect that it's slow due to the way the outputted code works |
04:03:32 | FromDiscord | <.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:03 | termer | Is this in reference to Nim JS |
04:04:08 | termer | which params do you use |
04:04:26 | termer | echo "hi" produces a 85 line file on -d:danger |
04:06:55 | FromDiscord | <Elegantbeef> Elcritch was talking in regard to c2nim |
04:07:05 | termer | Oh |
04:07:11 | termer | Which options do you use? |
04:07:21 | termer | It would save me some time if it worked |
04:07:29 | termer | although I suspect some of it won't work because the code I'm converting is bizarre |
04:07:49 | termer | Not related to that, has anyone here used Atlas? Is it something I should actually use? |
04:07:50 | FromDiscord | <Elegantbeef> personally I always run c2nim on gcc -E'd code |
04:07:58 | FromDiscord | <Elegantbeef> Elcritch also has used atlas 😄 |
04:10:39 | termer | How do you actually setup a project with it |
04:10:47 | termer | Last time I used it, it prompted me to create a workspace |
04:10:53 | termer | wasn't sure what to do when I just wanted a single project |
04:11:14 | FromDiscord | <Elegantbeef> Fairly certain the entire point is that you setup a workspace |
04:11:21 | FromDiscord | <Elegantbeef> It only makes sense for projects that have dependencies |
04:13:00 | termer | My project will have dependencies |
04:13:08 | termer | I want to make sure they can take advantage of a lockfile |
04:13:13 | FromDiscord | <Elegantbeef> So then you make a workspace and add the deps |
04:13:36 | FromDiscord | <Elegantbeef> Atlas is all about making a workspace containing all your dependencies |
04:13:38 | termer | would the actual code need to be in a subdoir |
04:13:40 | termer | *subdir |
04:13:45 | FromDiscord | <Elegantbeef> Yes |
04:13:54 | termer | That's a bit annoying but not too bad I suppose |
04:13:59 | FromDiscord | <Elegantbeef> Damn you and your IRC cannot make a graphical representation |
04:14:00 | termer | do I still use nimble to init the project in the subdir |
04:14:10 | termer | You have images and I see the links to them |
04:14:13 | FromDiscord | <Elegantbeef> Sure it works fine for making a nimble file |
04:14:24 | termer | It all still works on Nimble files, right? |
04:14:48 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4GWU |
04:14:51 | FromDiscord | <Elegantbeef> Yes it still uses nimble files |
04:14:56 | FromDiscord | <Elegantbeef> Though it does have some differences |
04:15:07 | termer | YourDep, would those be the dependencies included through nimble or what |
04:15:10 | FromDiscord | <Elegantbeef> Like apparently it has different version selectors you can use |
04:15:18 | FromDiscord | <Elegantbeef> `atlas install dep` i think |
04:15:21 | FromDiscord | <Elegantbeef> or `atlas clone dep` |
04:15:31 | termer | woowee |
04:16:02 | FromDiscord | <Elegantbeef> It's completely separate from nimble, aside from using the nimble file of course |
04:19:58 | FromDiscord | <millymox> In reply to @termer "millymox Completely unreadable": Yeah it is completely unreadable lol |
04:20:10 | FromDiscord | <millymox> It’s not too bad with -d:release |
04:20:35 | termer | I fear performance problems more than anything |
04:21:22 | FromDiscord | <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:57 | termer | I 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:58 | FromDiscord | <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:05 | termer | What are you trying to do with it |
04:22:52 | FromDiscord | <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:13 | FromDiscord | <millymox> I would just use pure JS but I’ve already done that |
04:23:15 | FromDiscord | <millymox> And nim is fun |
04:23:17 | FromDiscord | <millymox> So why not |
04:23:34 | termer | Have you considered doing some of the complex stuff with WASM |
04:23:49 | termer | I would stick with JS/TS for a frontend application, especially if you're using a UI framework |
04:25:55 | FromDiscord | <millymox> In reply to @termer "Have you considered doing": Ive considered yes |
04:29:56 | FromDiscord | <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:12 | termer | Why is Atlas not present in ~/.nimble/bin with choosenim |
04:40:17 | termer | how do I actually get atlas |
04:43:53 | FromDiscord | <nnsee> In reply to @termer "how do I actually": copy the nim binary to `atlas` in that directory |
04:45:26 | termer | are you saying to copy it manually |
04:45:31 | termer | I was hoping to not need to do that |
04:46:24 | FromDiscord | <nnsee> as in, `cp ~/.nimble/bin/{nim,atlas}` |
04:46:51 | FromDiscord | <nnsee> choosenim doesn't copy the proxyexe binary to `atlas` for some reason |
04:47:18 | FromDiscord | <nnsee> you can also run it manually from the actual toolchain dir |
04:48:46 | FromDiscord | <Elegantbeef> `nimble install atlas` 😄 |
04:49:34 | FromDiscord | <nnsee> or that. but 2.0 already technically comes with it installed, even via choosenim, choosenim just doesn't expose it |
04:50:06 | FromDiscord | <Elegantbeef> Right but it's outdated and has broken parts |
04:50:27 | FromDiscord | <.elcritch> The atlas that ships with the Nim releases is really out of date -- it's changed a lot |
04:50:40 | termer | nimble install atlas doesn't do it |
04:51:02 | termer | It 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:37 | FromDiscord | <odexine> well its not atlas' fault but choosenim |
05:15:47 | FromDiscord | <odexine> choosenim is outdated and does not create the shim binary for atlas |
05:23:08 | FromDiscord | <_gumbercules> Nimble and chooseenim should just be deprecated |
05:23:14 | FromDiscord | <_gumbercules> choosenim even |
05:24:01 | FromDiscord | <nnsee> what would be the alternative for choosenim? |
05:24:14 | FromDiscord | <_gumbercules> something new that isn't terrible |
05:24:24 | FromDiscord | <nnsee> so something that doesn't exist yet? |
05:24:41 | FromDiscord | <_gumbercules> I suppose - I'm not sure if anyone has authored an alternative yet |
05:24:52 | FromDiscord | <Elegantbeef> gitnim exists but is linux only |
05:25:10 | FromDiscord | <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:11 | FromDiscord | <_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:49 | FromDiscord | <_gumbercules> the former was created when they were like 15 years old or so |
05:26:25 | FromDiscord | <odexine> atlas is able to manage nim installations but i have never tried using it to |
05:26:39 | FromDiscord | <odexine> choosenim should rather be forked and made community managed |
05:26:43 | FromDiscord | <_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:47 | FromDiscord | <odexine> it can be revamped over time |
05:26:59 | FromDiscord | <_gumbercules> choosenim should be renamed at the very least |
05:27:10 | FromDiscord | <odexine> nimble is perhaps a dead end and we already have atlas to replace it |
05:27:12 | FromDiscord | <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:23 | FromDiscord | <_gumbercules> because it's a shitty nod to fightclub |
05:27:34 | FromDiscord | <nnsee> I even bought getnim.com and getnim.org |
05:27:44 | FromDiscord | <_gumbercules> just fork it and make it better and call it something other than choosenim |
05:27:53 | FromDiscord | <odexine> In reply to @nnsee "I even bought getnim.com": wtf that must have been expensive |
05:27:54 | FromDiscord | <_gumbercules> and don't ask for permission IMO |
05:28:13 | FromDiscord | <nnsee> In reply to @odexine "wtf that must have": like 20 bucks? not exactly breaking the wallet |
05:28:19 | FromDiscord | <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:30 | FromDiscord | <_gumbercules> it sounds like they already did |
05:28:46 | FromDiscord | <_gumbercules> I mean - you don't need to ask permission to fork |
05:29:00 | FromDiscord | <_gumbercules> I think the asking permission thing was in regard to whether it could become a community maintaned project |
05:29:09 | FromDiscord | <_gumbercules> unless I'm mistaken @nnsee |
05:29:10 | FromDiscord | <nnsee> it wasn't like I asked for permission, rather I was asking about something technical |
05:29:17 | FromDiscord | <_gumbercules> ah okay |
05:29:22 | FromDiscord | <nnsee> and someone asked what exactly I was working on |
05:29:37 | FromDiscord | <_gumbercules> gotcha |
05:30:12 | FromDiscord | <_gumbercules> getnim is a better name than choosenim |
05:30:17 | FromDiscord | <sOkam! 🫐> What should be improved for choosenim? what is the issue with it? |
05:31:02 | FromDiscord | <sOkam! 🫐> In reply to @odexine "it is probably not": you mean that choosenim is abandoned? i had no idea about that 🤔 |
05:31:17 | FromDiscord | <odexine> if it's in dom's account, its abandoned |
05:31:28 | FromDiscord | <sOkam! 🫐> oh dom left, i see |
05:31:45 | FromDiscord | <odexine> In reply to @heysokam "What should be improved": current only issue is either bugs or that atlas isnt shimmed |
05:31:52 | FromDiscord | <odexine> i persoanlly am not aware of any more |
05:33:06 | FromDiscord | <Elegantbeef> No mac arm support |
05:33:07 | FromDiscord | <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:12 | FromDiscord | <_gumbercules> it simply sucks having a major component of the language's distribution pipeline being a cargo cult solution |
05:34:18 | FromDiscord | <_gumbercules> which both choosenim and nimble are |
05:34:47 | FromDiscord | <sOkam! 🫐> cargo cult? |
05:35:01 | FromDiscord | <_gumbercules> https://en.wikipedia.org/wiki/Cargo_cult_programming |
05:35:58 | FromDiscord | <sOkam! 🫐> ah your usual experience elitism. kk, i thought you were talking about cargo from rust |
05:36:28 | FromDiscord | <_gumbercules> yes experience elitism being I've been around dom since 2015 |
05:36:49 | FromDiscord | <_gumbercules> and was around when choosenim was written and when nimble was called babel |
05:37:27 | FromDiscord | <nnsee> why did dom leave anyways |
05:37:49 | FromDiscord | <_gumbercules> several reasons I reckon |
05:39:31 | FromDiscord | <_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:47 | FromDiscord | <_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:56 | FromDiscord | <_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:44 | FromDiscord | <_gumbercules> major drama erupted between the two and disruptek was banned |
05:45:15 | FromDiscord | <_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:47 | FromDiscord | <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:16 | advesperacit | you did (whether you meant to or not) call gumbercules elitist for using the term cargo cult programming |
05:48:21 | FromDiscord | <_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:11 | FromDiscord | <_gumbercules> In reply to @heysokam "First thing I did": you literally said "ah your usual experience elitism" |
05:49:41 | FromDiscord | <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:52 | advesperacit | That'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:11 | FromDiscord | <sOkam! 🫐> fair. my choice of words wasn't the best either |
05:54:01 | FromDiscord | <_gumbercules> sent a long message, see http://ix.io/4GX4 |
05:54:50 | FromDiscord | <Elegantbeef> I know you are, but what am I |
05:55:55 | FromDiscord | <_gumbercules> Sticks and stones man, sticks and stones |
05:56:53 | FromDiscord | <_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:14 | FromDiscord | <_gumbercules> if typing `beep` into a basic interperter counts I was probably doing it way earlier |
05:57:30 | FromDiscord | <nnsee> In reply to @_gumbercules "there used to be": that's a shame, i always had pleasant conversations with him |
05:57:34 | FromDiscord | <nnsee> Dom I mean |
05:57:48 | FromDiscord | <Elegantbeef> Hey 19 years ago i was eating dirt and wondering why it changed the flavour of my fingers |
05:57:58 | FromDiscord | <nnsee> why did it? |
05:58:15 | FromDiscord | <Elegantbeef> I mean I still eat dirt, I just don't wonder why anymore |
05:58:53 | FromDiscord | <_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:20 | FromDiscord | <nnsee> oh? |
05:59:42 | FromDiscord | <nnsee> would like to hear those if you don't mind speaking about it |
06:00:32 | FromDiscord | <_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:35 | FromDiscord | <_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:50 | FromDiscord | <_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:03 | FromDiscord | <_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:39 | FromDiscord | <_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:11 | FromDiscord | <_gumbercules> which is the other thing about dom - he was allowed to be an asshole but no one else was |
06:20:12 | NimEventer | New thread by namngrg: Using Result library, see https://forum.nim-lang.org/t/10503 |
06:21:02 | FromDiscord | <odexine> In reply to @NimEventer "New thread by namngrg:": ngl i dont understand the question |
06:22:24 | advesperacit | Thanks for sharing your views and opinions, gumbercules, it's been interesting to hear. |
06:22:30 | FromDiscord | <_gumbercules> sent a long message, see http://ix.io/4GXd |
06:23:45 | FromDiscord | <odexine> The kind who doesn’t try to understand others? |
06:23:55 | FromDiscord | <_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:07 | FromDiscord | <odexine> I wish I could verify what you say, even if I’m willing to trust you with this |
06:24:09 | FromDiscord | <_gumbercules> and I wish them the best |
06:24:38 | FromDiscord | <_gumbercules> probably gotta comb through IRC logs from uhhhh |
06:25:02 | FromDiscord | <_gumbercules> 2017 apparently - https://github.com/zacharycarter/nim-playground |
06:26:24 | FromDiscord | <_gumbercules> let's see if I can find the convo |
06:33:09 | FromDiscord | <_gumbercules> ugh so many convos |
06:33:50 | FromDiscord | <Elegantbeef> \You're welcome |
06:36:34 | FromDiscord | <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:52 | FromDiscord | <Langosta> `nimble install atlas` is also not functional unfortunately |
06:37:06 | FromDiscord | <Langosta> I guess build from source |
06:38:21 | FromDiscord | <Elegantbeef> `nimble install https://github.com/nim-lang/atlas` |
06:39:28 | FromDiscord | <Langosta> It worked! Beef, thank you for always being a homie |
06:39:42 | FromDiscord | <Langosta> even if you still eat dirt..... |
06:40:38 | FromDiscord | <Elegantbeef> It's also not tagged recently so you likely want `nimble install https://github.com/nim-lang/atlas@#head` |
06:41:07 | FromDiscord | <odexine> In reply to @alendrik "even if you still": What’s wrong with eating dirt, huh?? |
06:41:26 | FromDiscord | <Langosta> In reply to @odexine "What’s wrong with eating": cuz they didn't share with me 😭 |
06:41:51 | FromDiscord | <Langosta> He also keeps the secrets of why it changes my finger's color..... mystery man |
06:41:54 | FromDiscord | <_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:58 | FromDiscord | <odexine> There’s plenty of dirt for everyone |
06:42:03 | FromDiscord | <_gumbercules> or if I've moved the playground etc |
06:42:06 | FromDiscord | <odexine> In reply to @_gumbercules "2017 apparently - https://github.com/zacharycarter/": I’ll look into it too |
06:42:31 | FromDiscord | <_gumbercules> I remember at the time feeling like - fuck this, I'm not your employee dude |
06:42:33 | FromDiscord | <odexine> I wonder how old dom was at that point |
06:42:45 | FromDiscord | <odexine> Perhaps it was just young overexcitement |
06:42:46 | FromDiscord | <odexine> Or so |
06:42:58 | FromDiscord | <_gumbercules> but it's amusing looking back because if you questioned why dom hadn't fixed or improved nimble or whtatever |
06:43:40 | FromDiscord | <_gumbercules> and why he was working on his io game or whatever, it was war |
06:44:37 | FromDiscord | <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:42 | FromDiscord | <_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:14 | FromDiscord | <_gumbercules> without being asked if that was okay or anything, and then when I wasn't performing it was an issue haha |
06:45:52 | advesperacit | Whenever nimble gives me shit I can hear disrupteks parting words, it turns the anger into a chuckle |
06:47:41 | FromDiscord | <_gumbercules> he really did not like nimble |
06:48:49 | advesperacit | nimble may not have been a net-positive for the nim community |
06:50:45 | FromDiscord | <_gumbercules> yeah, I'm interested to see what the off-ramp looks like |
06:53:03 | FromDiscord | <_gumbercules> lol |
06:53:05 | FromDiscord | <_gumbercules> https://irclogs.nim-lang.org/10-12-2020.html#02:40:49 - just found that |
06:55:42 | FromDiscord | <toma400> I hear shit about Nimble all the time here, but am I the only one person who enjoys using it? 😅 |
06:56:04 | FromDiscord | <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:11 | advesperacit | I also enjoy it telling me I |
06:56:12 | FromDiscord | <Elegantbeef> It's partially usable |
06:56:12 | FromDiscord | <Elegantbeef> It's got a bunch of bugs and questionable design |
06:56:28 | advesperacit | 'm missing 'hg' when it doesn't understand an url |
06:56:41 | FromDiscord | <Elegantbeef> `nimble develop -g` doesnt work |
06:56:46 | FromDiscord | <Elegantbeef> `nimble c` also doesnt work as intended, though that's an easy fix |
06:59:15 | FromDiscord | <_gumbercules> In reply to @toma400 "I mean, I never": Nimble didn't have lockfiles until last year I think? |
07:00:04 | FromDiscord | <_gumbercules> So reproducible builds weren't really possible |
07:03:49 | FromDiscord | <_gumbercules> and then yeah, bugs, missing features, etc |
07:04:05 | FromDiscord | <_gumbercules> not to mention the program is pretty unintuitive |
07:04:20 | FromDiscord | <Elegantbeef> Status completely broke `nimble develop` and has refused to elaborate how to use the new feature |
07:04:33 | FromDiscord | <Elegantbeef> https://github.com/nim-lang/nimble/issues/1124 |
07:06:10 | FromDiscord | <_gumbercules> really glad I don't use nimble |
07:06:49 | FromDiscord | <_gumbercules> lol is status even aware of the issue? |
07:08:19 | FromDiscord | <Elegantbeef> That one is the most obtuse issue with nimble for me presently |
07:08:20 | FromDiscord | <Elegantbeef> That and the whole blocking an uninstall |
07:08:20 | FromDiscord | <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:48 | FromDiscord | <Chronos [She/Her]> In reply to @Elegantbeef "That and the whole": Yeah it's so irritating honestly |
07:09:02 | FromDiscord | <intellij_gamer> There's `nimble uninstall -i` but that breaks sometimes if one of the packages is somehow invalid |
07:09:20 | FromDiscord | <Chronos [She/Her]> It should work for us, not us work around it |
07:11:09 | advesperacit | One might expect that of a tool, but I guess the developers had a different viewpoint |
07:11:36 | FromDiscord | <Chronos [She/Her]> Which is bad design imo |
07:11:44 | FromDiscord | <Chronos [She/Her]> But hey, what do I know about design 🤷♀️ |
07:11:58 | advesperacit | Yea it's terrible and should be cast into the fire |
07:34:55 | FromDiscord | <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:17 | FromDiscord | <toma400> Or is it so broken that it needs complete rewrite? |
07:35:28 | FromDiscord | <odexine> In reply to @toma400 "Isn't it though open": Well I assume it would but no one seems to |
07:39:23 | FromDiscord | <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:48 | FromDiscord | <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:32 | FromDiscord | <toma400> (edit) "http://ix.io/4GXr" => "http://ix.io/4GXs" |
08:18:13 | * | ntat quit (Quit: leaving) |
08:37:04 | FromDiscord | <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:21 | FromDiscord | <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:27 | FromDiscord | <ieltan> glad i switched to atlas |
08:47:07 | FromDiscord | <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:34 | FromDiscord | <nnsee> but he seemed pleasant enough |
08:47:35 | FromDiscord | <odexine> “So it was YOU” |
08:47:46 | FromDiscord | <nnsee> nah, mine wasn't because of ssh |
08:47:53 | FromDiscord | <odexine> It was a joke :ChiguPien: |
08:48:22 | FromDiscord | <nnsee> it was a command injection in the functionality which created the container |
08:48:38 | NimEventer | New thread by jhgalino: For loop iteration variables, see https://forum.nim-lang.org/t/10504 |
08:48:47 | FromDiscord | <odexine> In reply to @nnsee "it was a command": ? How’d that work |
08:52:09 | FromDiscord | <nnsee> it was this commit iirc https://github.com/PMunch/nim-playground/commit/d3e25173090f78ca4fcab661f19972dcf28bb326 |
08:52:28 | FromDiscord | <nnsee> although, authored by PMunch... maybe it wasn't Dom who I was talking with |
08:53:04 | FromDiscord | <odexine> In reply to @nnsee "although, authored by PMunch...": Lol |
08:53:13 | FromDiscord | <nnsee> oh, I was taking with Dom about another security issue |
08:53:16 | FromDiscord | <nnsee> https://github.com/nim-lang/nimforum/security/advisories/GHSA-q3vh-x957-wr75 |
08:53:19 | FromDiscord | <nnsee> my bad |
08:53:33 | * | def- quit (Quit: -) |
08:53:45 | * | def- joined #nim |
09:22:09 | FromDiscord | <Phil> wait a second.... Oh god damnit I think I was an idiot.↵Macros also support overloading, right? |
09:23:37 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4GXR |
09:31:55 | FromDiscord | <sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4GXX |
09:32:07 | FromDiscord | <sOkam! 🫐> that's something I've wondered before, and always resort to different names |
09:33:25 | FromDiscord | <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:25 | FromDiscord | <Phil> sent a long message, see http://ix.io/4GXY |
09:35:52 | FromDiscord | <sOkam! 🫐> ic |
09:36:15 | FromDiscord | <sOkam! 🫐> dont you have to qualify still, if nim can see both in its current context? |
09:36:42 | FromDiscord | <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:12 | arkanoid | can nim type system help me if I need a string field of an object to be of len == 10 ? |
09:46:44 | FromDiscord | <odexine> Not really if you use the string type |
09:47:06 | FromDiscord | <odexine> Otherwise, array[10, char]? |
09:48:00 | arkanoid | odexing, I can use distinct, or concepts, whatever it's needed, but yeah I also was thinking about array[10, char] |
09:50:09 | arkanoid | the 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:26 | arkanoid | it's not a big problem |
09:53:28 | FromDiscord | <Phil> You mean becasue its a value type? |
09:53:51 | FromDiscord | <Phil> Because you could also allocate that on the heap so that you only copy refs around |
09:54:12 | FromDiscord | <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:18 | FromDiscord | <Phil> (edit) "Honestly this is more me wanting to understand the problem ... because" added "out of curiosity" |
09:56:54 | FromDiscord | <sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#ix=4GY4 |
09:57:45 | FromDiscord | <sOkam! 🫐> if you cannot change its size, it will be equivalent to a sized array, but with distinct you could borrow |
09:57:48 | arkanoid | Phil, 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:12 | arkanoid | so I wanted to make this change in an idiomatic way |
09:58:25 | FromDiscord | <sOkam! 🫐> sounds like a case for distinct 🤔 |
10:02:31 | FromDiscord | <odexine> sent a code paste, see https://play.nim-lang.org/#ix=4GY7 |
10:06:07 | FromDiscord | <Chronos [She/Her]> Trying t get my level editor done sigh |
10:11:36 | arkanoid | the I fail to see how the distinct string way forbids len =! 10 |
10:12:21 | arkanoid | "00112233445566778899".MyDistinctString is valid |
10:12:59 | arkanoid | I should forbid conversion except in the costructor |
10:13:51 | FromDiscord | <odexine> In reply to @arkanoid "I should forbid conversion": not possible without not exporting the type |
10:14:33 | arkanoid | ok, then array[10,char] seems a safer solution then |
10:25:20 | FromDiscord | <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:50 | FromDiscord | <raynei486> In reply to @arkanoid "can nim type system": since you're asking for type constraints I would recommend concepts |
11:11:56 | FromDiscord | <raynei486> they're cleaner imo |
11:12:37 | arkanoid | raynei486 yep but forcing a string to be of len 10 at runtime is a runtime thing |
11:12:58 | FromDiscord | <raynei486> ah then that's a different story |
11:12:59 | arkanoid | how can I use a concept to make a string type with len forced to 10 |
11:14:51 | FromDiscord | <raynei486> you can put arbitrary expressions that are required to be valid for the concept |
11:15:14 | FromDiscord | <raynei486> I don't think the new style concepts are documented but the old style still works |
11:15:21 | FromDiscord | <raynei486> https://nim-lang.org/docs/manual_experimental.html#concepts |
11:28:17 | arkanoid | I yet have to figure out how to wrap my head around concepts |
11:30:04 | arkanoid | coming 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:06 | arkanoid | for 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:31 | arkanoid | do 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:53 | FromDiscord | <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:17 | FromDiscord | <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:10 | arkanoid | vindaar, 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:19 | arkanoid | nervecenter, 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:36 | arkanoid | the 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:47 | FromDiscord | <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:23 | FromDiscord | <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:33 | FromDiscord | <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:14 | FromDiscord | <nervecenter> When I make a proc that takes a `var` parameter I put a lot of thought into it |
12:46:20 | FromDiscord | <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:27 | FromDiscord | <juh9870> (edit) "n" => "`n`" |
12:47:20 | FromDiscord | <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:18 | FromDiscord | <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:39 | FromDiscord | <_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:41 | FromDiscord | <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:54 | FromDiscord | <Chronos [She/Her]> Also I'm not even sure on how I'd implement it at a library level |
13:37:07 | FromDiscord | <Chronos [She/Her]> Except for passing the arguments to a proc, that's an issue |
13:38:29 | FromDiscord | <Chronos [She/Her]> Probably could create some shared memory manually ig but that feels a bit like hm behaviour |
13:43:39 | FromDiscord | <simply.acr0> how in the fuck do i make my modules work 💔 help!!! |
13:44:50 | FromDiscord | <demotomohiro> https://nim-lang.github.io/Nim/manual.html#modules |
13:46:26 | FromDiscord | <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:43 | FromDiscord | <swag_1337> In reply to @simply.acr0 "how in the fuck": print("hello world") |
13:47:29 | FromDiscord | <odexine> In reply to @swag_1337 "does anyone know how": your question is ambiguous |
13:47:51 | FromDiscord | <odexine> "run them" importing a module will run it as well |
13:48:48 | FromDiscord | <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:07 | FromDiscord | <simply.acr0> great |
13:49:10 | FromDiscord | <odexine> if you want multiple, `import modules/[<file 1>, <file 2>, ...]` |
13:49:16 | FromDiscord | <swag_1337> print("hellu world") |
13:49:34 | FromDiscord | <simply.acr0> cool lang |
13:49:37 | FromDiscord | <simply.acr0> confusing syntax!!! |
13:49:42 | FromDiscord | <odexine> what? |
13:49:48 | FromDiscord | <simply.acr0> i got it to work anyway |
13:49:54 | FromDiscord | <odexine> what is confusing?" |
13:51:53 | FromDiscord | <swag_1337> im about to ejaculate |
13:53:36 | FromDiscord | <simply.acr0> In reply to @odexine "what is confusing?"": syntax is a bit foreign |
13:53:37 | FromDiscord | <simply.acr0> to me |
13:53:54 | FromDiscord | <odexine> In reply to @swag_1337 "im about to ejaculate": can you not |
13:54:07 | FromDiscord | <odexine> In reply to @simply.acr0 "syntax is a bit": hm, what are you used to? what language are you from |
13:54:07 | FromDiscord | <swag_1337> In reply to @odexine "can you not": but im really close |
13:54:15 | FromDiscord | <swag_1337> he's arab |
13:55:10 | FromDiscord | <simply.acr0> 💀 |
13:55:18 | FromDiscord | <simply.acr0> shut up finnish monkey |
13:55:29 | FromDiscord | <simply.acr0> In reply to @odexine "hm, what are you": golang python |
13:55:31 | FromDiscord | <swag_1337> 😡 |
13:55:48 | FromDiscord | <odexine> In reply to @simply.acr0 "golang python": it should be similar-ish to python's import syntax then |
13:55:49 | FromDiscord | <swag_1337> do finnish/norwish people actually exist |
13:56:07 | FromDiscord | <simply.acr0> In reply to @odexine "it should be similar-ish": generally the syntax bugs me a bit |
13:56:34 | FromDiscord | <swag_1337> In reply to @swag_1337 "do finnish/norwish people actually": erm norwegian |
13:57:11 | FromDiscord | <odexine> In reply to @simply.acr0 "generally the syntax bugs": Do you mind elaborating as to why? |
13:57:43 | FromDiscord | <simply.acr0> uhuh idk |
13:57:47 | FromDiscord | <simply.acr0> proc |
13:57:51 | FromDiscord | <simply.acr0> could have been def or function |
13:58:56 | FromDiscord | <Chronos [She/Her]> Every language does it different lol |
13:59:13 | FromDiscord | <Chronos [She/Her]> If you're expecting a literal compiled python, you're better off with Cython :p |
13:59:43 | FromDiscord | <swag_1337> arabs |
13:59:56 | FromDiscord | <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:07 | FromDiscord | <Chronos [She/Her]> Takes a lot of getting used to, but it's nice |
14:00:09 | FromDiscord | <swag_1337> discord |
14:00:32 | FromDiscord | <odexine> In reply to @simply.acr0 "proc": there is a reason it isnt though? |
14:01:13 | FromDiscord | <swag_1337> @simply.acr0 istg there was someone named rika in gg/hacked |
14:02:44 | FromDiscord | <demotomohiro> When I start learning Nim after using C++, it took long time to get used with `varname: typename`. |
14:09:48 | arkanoid | I'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:00 | FromDiscord | <ieltan> In reply to @simply.acr0 "could have been def": well, i'm glad it's not done this way personally |
14:10:49 | FromDiscord | <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:54 | FromDiscord | <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:07 | FromDiscord | <ieltan> it really make sense to me and is quite elegant (but thats subjective) |
14:11:29 | FromDiscord | <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:37 | FromDiscord | <ieltan> it make sense because thats how textbook CS define those words too |
14:12:23 | FromDiscord | <ieltan> "method" comes up alot in OOP context, and i have never seen "procedure" used in a functional context either |
14:13:03 | FromDiscord | <ieltan> In reply to @chronos.vitaqua "(`method`s can actually be": well yes, what you should use depends on the usecase |
14:13:13 | FromDiscord | <ieltan> i'm just saying the syntax is good imo |
14:26:07 | FromDiscord | <Chronos [She/Her]> Yeah that's fair and I agree |
14:30:43 | FromDiscord | <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:14 | FromDiscord | <toma400> (and all differences except for less support for runtime reading of scripts (obvious thing for compiled lang) were so superior 🥰) |
14:31:25 | FromDiscord | <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:31 | FromDiscord | <Chronos [She/Her]> Well, the biggest pain |
14:31:48 | FromDiscord | <toma400> Funnily for me it wasn't, since I were always confused with Python's OOP, so rarely used it |
14:31:59 | FromDiscord | <toma400> Meanwhile Nim structs are so natural for me, I love them so much 🥰 |
14:32:17 | FromDiscord | <toma400> (edit) "were" => "was" |
14:35:14 | FromDiscord | <odexine> In reply to @ieltan ""method" comes up alot": well procedures dont really exist in a functional context |
14:42:38 | FromDiscord | <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:47 | FromDiscord | <Chronos [She/Her]> Nim does it much nicer and better tho imo |
14:44:07 | FromDiscord | <toma400> Yeah, depends how much of OO person you are. Glad that you get used to Nim's way tho ❤️ |
14:44:11 | FromDiscord | <toma400> (edit) "get" => "got" |
14:45:46 | FromDiscord | <Chronos [She/Her]> Yeah, it's great haha |
14:46:08 | FromDiscord | <Chronos [She/Her]> Kinda want an easy to do project that'll be enjoyable to do tbh but not sure |
14:46:17 | FromDiscord | <Chronos [She/Her]> Nearly all of my projects do big things :p |
14:46:36 | FromDiscord | <Chronos [She/Her]> I guess I could make a Minecraft proxy since I already made a library for parsing packets and stuff |
14:49:26 | FromDiscord | <toma400> In reply to @chronos.vitaqua "Nearly all of my": Haha, that's fate I share heavily 😅 |
14:49:55 | FromDiscord | <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:17 | FromDiscord | <Chronos [She/Her]> That's fair, I am also doomed with the curse of overengineering lol |
14:50:31 | FromDiscord | <Chronos [She/Her]> Example: Map format here |
14:50:32 | FromDiscord | <Chronos [She/Her]> https://gist.github.com/Yu-Vitaqua-fer-Chronos/6c93818b5c61adac0c252b7ea5dcc034 |
14:50:43 | FromDiscord | <Chronos [She/Her]> Still need to implement it in the first place :p |
14:51:45 | FromDiscord | <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:56 | FromDiscord | <toma400> In reply to @chronos.vitaqua "https://gist.github.com/Yu-Vitaqua-fer-Chronos/6c93": Quite neat system tho |
14:52:12 | FromDiscord | <Chronos [She/Her]> Thanks! :D |
14:52:21 | FromDiscord | <Chronos [She/Her]> In reply to @toma400 "I feel like Minecraft": I'm not at that stage yet thankfully xD |
14:52:37 | FromDiscord | <Chronos [She/Her]> Though there was times I was tempted to make something like Adventure for Nim, no point for it currently |
14:55:03 | FromDiscord | <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:35 | FromDiscord | <Chronos [She/Her]> Yeah that's fair lol |
14:55:43 | FromDiscord | <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:05 | FromDiscord | <Chronos [She/Her]> As such is the way of a neurodivergent |
14:57:31 | FromDiscord | <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:46 | FromDiscord | <Chronos [She/Her]> I think this fits since it is for Nim :p |
15:00:24 | FromDiscord | <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:36 | FromDiscord | <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:22 | FromDiscord | <toma400> Oh, nice, was this bound to some graphical library, or tried to be as agnostic as possible? |
15:12:44 | FromDiscord | <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:02 | FromDiscord | <Chronos [She/Her]> (Games, CLI programs, etc) |
15:22:29 | FromDiscord | <n00nehere> anyone know what "nimeval" is? |
15:22:39 | FromDiscord | <n00nehere> i get an error saying that i miss it while installing ratel |
15:27:14 | FromDiscord | <thugshaker.online> sent a long message, see http://ix.io/4GZM |
15:27:20 | FromDiscord | <n00nehere> yes |
15:27:40 | FromDiscord | <n00nehere> iirc someone already made some |
15:28:10 | FromDiscord | <boom_bang> gotta do this quick cuz i'm in school |
15:28:19 | FromDiscord | <boom_bang> how do you switch the external compiler to a different one |
15:28:25 | FromDiscord | <Chronos [She/Her]> In reply to @thugshaker.online "I was wondering ": You can even make them in Rust lol |
15:29:08 | FromDiscord | <Chronos [She/Her]> In reply to @boom_bang "how do you switch": https://nim-lang.org/docs/nimc.html#compiler-selection |
15:29:45 | FromDiscord | <thugshaker.online> In reply to @chronos.vitaqua "You can even make": What |
15:29:48 | FromDiscord | <thugshaker.online> Why would anyone do this |
15:29:51 | FromDiscord | <thugshaker.online> (edit) "this" => "that" |
15:30:09 | FromDiscord | <Chronos [She/Her]> In reply to @thugshaker.online "What": Some people like Rust and what it provides them |
15:30:29 | FromDiscord | <Chronos [She/Her]> I don't like Rust personally but point is you can make them in nearly any compiled language |
15:31:05 | FromDiscord | <millymox> sent a code paste, see https://play.nim-lang.org/#ix=4GZN |
15:35:20 | * | Mister_Magister quit (Quit: bye) |
15:35:58 | FromDiscord | <Chronos [She/Her]> Stupid idea: What if we compile every stdlib module for use in Nimscript |
15:36:02 | FromDiscord | <Chronos [She/Her]> Every single one |
15:36:27 | FromDiscord | <Chronos [She/Her]> Then also have tcc to allow for compiling code using `importc` |
15:51:47 | FromDiscord | <.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:25 | FromDiscord | <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:31 | FromDiscord | <millymox> No particular guide though |
15:54:18 | FromDiscord | <.aingel.> Gotcha, thanks! |
15:54:56 | FromDiscord | <.aingel.> I'm kinda unclear too how the importc import pragmas work actually |
15:55:18 | FromDiscord | <.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:22 | FromDiscord | <Chronos [She/Her]> `importc` is easy imo, it just imports a function with the same signature |
15:55:34 | FromDiscord | <.aingel.> Why do you need the header file then |
15:55:36 | FromDiscord | <Chronos [She/Her]> `header` is just for specifying the path of the header file when compiling |
15:55:51 | FromDiscord | <Chronos [She/Her]> In reply to @.aingel. "Why do you need": Still uses a C compiler underneath |
15:55:58 | FromDiscord | <.aingel.> Okay |
15:56:06 | FromDiscord | <.aingel.> Makes sense |
15:56:10 | FromDiscord | <Chronos [She/Her]> Yeah aha |
15:56:53 | NimEventer | New thread by Millymox: How to add nim intellisense to a imported JavaScript object?, see https://forum.nim-lang.org/t/10506 |
15:57:06 | FromDiscord | <.aingel.> What if you just do .importc. without anything else |
15:57:16 | FromDiscord | <.aingel.> Does it just try and import a function with the same name? |
15:58:16 | FromDiscord | <Chronos [She/Her]> Yep |
15:58:41 | FromDiscord | <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:34 | FromDiscord | <.aingel.> Right |
16:08:29 | FromDiscord | <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:10 | FromDiscord | <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:04 | FromDiscord | <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:40 | FromDiscord | <n00nehere> In reply to @n00nehere "anyone know what "nimeval"": ^ |
16:50:02 | FromDiscord | <Chronos [She/Her]> In reply to @choltreppe "Is there a webserver/framework": Websockets, perhaps? |
16:50:22 | FromDiscord | <Chronos [She/Her]> Iirc prologue has support for websockets |
16:50:29 | FromDiscord | <Chronos [She/Her]> Tho not exactly events |
16:57:28 | FromDiscord | <voidwalker> So it seems I cannot modify a `result` by calling a proc that takes its type as a `var` |
16:57:54 | FromDiscord | <voidwalker> Anyway around this, so I don't have to duplicate code in the `newThing`, and also `addToThing`? |
16:58:11 | FromDiscord | <odexine> In reply to @voidwalker "So it seems I": ? can you elaborate |
16:58:43 | FromDiscord | <voidwalker> trying to make illwillwidgets a tad nicer, and I have this |
16:59:21 | FromDiscord | <voidwalker> sent a code paste, see https://play.nim-lang.org/#ix=4H0e |
16:59:40 | FromDiscord | <voidwalker> (edit) "https://play.nim-lang.org/#ix=4H0e" => "https://play.nim-lang.org/#ix=4H0f" |
17:00:00 | FromDiscord | <voidwalker> ah wait |
17:00:22 | FromDiscord | <voidwalker> hm my bad, there was some other error |
17:00:27 | FromDiscord | <voidwalker> mixed up int/string order |
17:04:57 | FromDiscord | <odexine> okay haha thats good |
17:05:11 | * | krux02 quit (Ping timeout: 255 seconds) |
17:05:18 | FromDiscord | <voidwalker> haven't touched code in 2-3 months. gaming pathology : ( |
17:06:57 | FromDiscord | <voidwalker> I wonder if there's any guides/writeups about wrapping a c++ library that uses classes heavily |
17:07:03 | FromDiscord | <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:23 | FromDiscord | <voidwalker> woot, aren't PCs like .. free now ? |
17:07:56 | FromDiscord | <millymox> I wish |
17:08:10 | FromDiscord | <voidwalker> I mean you can get a used one 3-4 gens old ,for next to nothing |
17:08:33 | FromDiscord | <millymox> True true |
17:12:45 | FromDiscord | <Chronos [She/Her]> In reply to @voidwalker "I wonder if there's": Nim UE5 does a lot of that tbf |
17:16:53 | FromDiscord | <voidwalker> I cannot extract know how from code, I need know how first |
17:29:21 | FromDiscord | <.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:35 | FromDiscord | <.aingel.> Not a whole lot of write ups about nim in general since the userbase is still small |
17:29:58 | FromDiscord | <.aingel.> So for stuff especially about 'using classes heavily' you'll have to probably look at examples |
17:30:24 | FromDiscord | <.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:27 | FromDiscord | <.aingel.> Just my guess! |
17:32:01 | FromDiscord | <voidwalker> How many years until we have enough userbase for tui and torrent libs ? : ) |
17:34:20 | FromDiscord | <.aingel.> You can try wrapping libtransmission since it's in C |
17:34:21 | FromDiscord | <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:34 | FromDiscord | <odexine> if you can find people willing to work on it sure |
17:37:05 | FromDiscord | <voidwalker> Well, there's a huge graveyard of old nim projects that never got anywhere. Much wasted (mostly solo) effort |
17:38:39 | Amun-Ra | yes |
17:38:50 | FromDiscord | <odexine> that doesnt mean much for "people willing to work on nim itself" |
17:40:47 | FromDiscord | <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:57 | FromDiscord | <voidwalker> just a few of the things I needed in my random projects ideas |
17:41:20 | FromDiscord | <odexine> halonium isnt modern? |
17:41:26 | FromDiscord | <odexine> i forgot the exact name |
17:41:58 | FromDiscord | <voidwalker> `Status↵↵This library is mostly converted from the Python selenium codebase as of ~Dec 2019.` |
17:42:06 | FromDiscord | <voidwalker> (edit) "`Status↵↵This" => "`Status↵A browser automation engine written in Nim translated from Python.↵This" |
17:42:39 | FromDiscord | <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:41 | FromDiscord | <odexine> "non barebones" iirc most tuis are intentionally barebones? i dont know why |
17:44:13 | FromDiscord | <.aingel.> I think python has some cool tui thing |
17:44:16 | FromDiscord | <voidwalker> barebones as in, hacked together simply/buggy widgets, if any |
17:44:17 | FromDiscord | <.aingel.> Textual |
17:44:26 | FromDiscord | <voidwalker> everyone has some cool tui thing except nim |
17:44:52 | FromDiscord | <.aingel.> Be the change u want to see |
17:45:01 | FromDiscord | <odexine> not really |
17:46:01 | FromDiscord | <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:04 | FromDiscord | <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:21 | FromDiscord | <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:23 | FromDiscord | <jmgomez> About the ecosystem, help to improve it |
17:46:47 | FromDiscord | <voidwalker> I find the TUI framework concept incredibly complicated to understand. And I found no books to read on |
17:47:00 | FromDiscord | <.aingel.> Are u writing like a torrent client in nim |
17:47:21 | FromDiscord | <.aingel.> With transcoding of some sort? |
17:47:33 | FromDiscord | <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:45 | FromDiscord | <.aingel.> U can wrap libtorrent |
17:47:49 | FromDiscord | <.aingel.> (edit) "libtorrent" => "libtransmission" |
17:47:56 | FromDiscord | <.aingel.> With futhark, it will do everything for you |
17:48:04 | FromDiscord | <.aingel.> libtransmission is in c |
17:48:05 | FromDiscord | <voidwalker> come on, libtransmission is obsolete |
17:48:10 | FromDiscord | <.aingel.> Why |
17:48:16 | FromDiscord | <.aingel.> transmission is a very popular client |
17:48:36 | FromDiscord | <voidwalker> oh wait it's not |
17:48:58 | FromDiscord | <.aingel.> https://github.com/transmission/transmission/tree/main/libtransmission |
17:49:15 | FromDiscord | <voidwalker> yeah the thing is, I actually wanted some custom torrent hacks that I can use |
17:49:39 | FromDiscord | <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:10 | FromDiscord | <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:24 | FromDiscord | <.aingel.> Are u doing streaming downloading? |
17:50:56 | FromDiscord | <.aingel.> Wait I guess not if u were talking about a linux iso |
17:51:00 | FromDiscord | <voidwalker> that was one of the potential use cases, yeah, but that's not a hack, it's a common feature |
17:51:12 | FromDiscord | <.aingel.> Yeah |
17:51:22 | FromDiscord | <.aingel.> What is the custom feature that you are looking for then |
17:51:42 | FromDiscord | <voidwalker> ghost leeching and stuff |
17:52:15 | FromDiscord | <voidwalker> also to give it an http interface for access to files |
17:55:24 | FromDiscord | <.aingel.> In reply to @voidwalker "ghost leeching and stuff": Oh noo |
17:55:44 | FromDiscord | <voidwalker> oh no, internet morality police : P |
17:56:11 | FromDiscord | <Chronos [She/Her]> Ghost leeching? |
17:56:21 | FromDiscord | <Chronos [She/Her]> As in not doing the uh |
17:56:25 | FromDiscord | <Chronos [She/Her]> Peer sharing thing? |
17:56:35 | FromDiscord | <.aingel.> Not reporting your download stats |
17:56:40 | FromDiscord | <.aingel.> It's cheating on private trackers |
17:56:55 | FromDiscord | <voidwalker> well actually what I wanted is more than that, downloading a torrent without even being a member on the tracker |
17:57:00 | FromDiscord | <Chronos [She/Her]> I don't understand that really, don't torrent much- |
17:57:22 | FromDiscord | <Chronos [She/Her]> In reply to @voidwalker "well actually what I": Ah well, good luck- |
17:57:50 | FromDiscord | <voidwalker> It's possible, been tested to work |
18:02:25 | FromDiscord | <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:48 | FromDiscord | <odexine> that requires people willing to take that initiative |
18:04:05 | FromDiscord | <voidwalker> And we need some more cool finished apps in nim so we can show off. Nitter is not enough |
18:05:05 | FromDiscord | <odexine> easier said than done? |
18:06:00 | FromDiscord | <fowl.mouth> How do you finish a project? 🤔 I don’t do that lol |
18:07:43 | FromDiscord | <Chronos [She/Her]> In reply to @voidwalker "And we need some": Easier said than done + Nitter is just dead now rip |
18:11:57 | FromDiscord | <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:41 | FromDiscord | <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:22 | FromDiscord | <jmgomez> Nim has problems, yes. Instead of pointing at then what about building the community/tools you want to see? |
18:14:06 | FromDiscord | <mratsim> In reply to @chronos.vitaqua "Easier said than done": Is it dead? People keep using it and running their own instance |
18:14:13 | FromDiscord | <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:33 | FromDiscord | <mratsim> I'd like better Nim vscode |
18:14:54 | FromDiscord | <odexine> nimsuggest is a major bottleneck that no one seems to be really that willing to touch |
18:15:09 | FromDiscord | <voidwalker> A wiki platform where people can post articles on how to achieve various things with nim. Like scrape a webpage. |
18:15:21 | FromDiscord | <odexine> there are already wiki pages |
18:15:23 | FromDiscord | <leorize> the solution is in limbo for so long it's a meme now |
18:15:25 | FromDiscord | <odexine> there's tomohiro's page |
18:15:36 | FromDiscord | <odexine> https://internet-of-tomohiro.netlify.app/nim/faq.en.html |
18:16:07 | FromDiscord | <voidwalker> Yeah that's tomohiro's wiki, he is the author of all that. It's not a community wiki |
18:16:25 | FromDiscord | <odexine> he takes snippets from this channel and incorporates it into the wiki |
18:16:29 | FromDiscord | <leorize> technically the nim repo have a community-editable wiki |
18:16:37 | FromDiscord | <leorize> just that not many actually use/maintain it |
18:16:42 | FromDiscord | <leorize> it's world editable iirc |
18:16:55 | FromDiscord | <voidwalker> no, nobody uses/sees that, we need https://wiki.nim-lang.org |
18:17:06 | FromDiscord | <voidwalker> with a big link on the main page |
18:17:15 | FromDiscord | <voidwalker> Like https://wiki.freepascal.org/ has |
18:17:17 | FromDiscord | <jmgomez> In reply to @odexine "https://internet-of-tomohiro.netlify.app/nim/faq.en": yes, Demo docs should be promoted |
18:18:14 | FromDiscord | <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:23 | FromDiscord | <voidwalker> (edit) "Also a bug/project bounty ... could" added "platform" |
18:18:58 | FromDiscord | <voidwalker> Like this list here, https://github.com/nim-lang/needed-libraries/issues |
18:19:24 | FromDiscord | <mratsim> In reply to @leorize "the solution is in": And it had bounties and grants |
18:20:05 | FromDiscord | <voidwalker> Also, we need nim coding streams, there's barely any on youtube, besides the tutorial/intro ones |
18:20:24 | FromDiscord | <odexine> we HAVE HAD NIM CODING STREAMS |
18:20:36 | * | ntat quit (Quit: leaving) |
18:21:08 | FromDiscord | <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:41 | FromDiscord | <sOkam! 🫐> or maybe not lack, but just pointing that there could be more effort towards it |
18:21:47 | FromDiscord | <odexine> yes this has been known as a problem for years |
18:21:55 | FromDiscord | <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:54 | FromDiscord | <leorize> there are only a handful that can make their way around that mess anyways↵(@mratsim) |
18:23:08 | FromDiscord | <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:53 | FromDiscord | <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:19 | FromDiscord | <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:27 | FromDiscord | <leorize> soon i'll crash the party with nim-sys and you can get even more frustrated |
18:24:37 | FromDiscord | <odexine> because status isnt (is not willing?) to use the -d:asyncbackent switch |
18:24:37 | FromDiscord | <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:47 | FromDiscord | <odexine> (edit) "-d:asyncbackent" => "-d:asyncbackend" |
18:24:48 | FromDiscord | <sOkam! 🫐> most people just write some test project and quit for other langs |
18:24:53 | * | jkl joined #nim |
18:25:07 | FromDiscord | <sOkam! 🫐> without thinking of their own future even |
18:25:21 | FromDiscord | <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:27 | FromDiscord | <voidwalker> and functionally |
18:25:37 | FromDiscord | <odexine> In reply to @voidwalker "<@259277943275126785> that switch is": i know |
18:25:41 | FromDiscord | <odexine> reread my message |
18:26:15 | FromDiscord | <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:45 | FromDiscord | <leorize> I wish them luck |
18:26:59 | FromDiscord | <leorize> this wouldn't be the first time someone started an initiative |
18:27:11 | FromDiscord | <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:49 | FromDiscord | <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:03 | FromDiscord | <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:11 | FromDiscord | <odexine> maybe i'll also further use leorize's treesitter parser instead but that might not be too good |
18:29:02 | FromDiscord | <leorize> there are some very bad nim that it can't parse |
18:29:56 | FromDiscord | <odexine> i might just go up to the lexer and not parse but im also not too sure about that approach |
18:29:58 | FromDiscord | <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:01 | FromDiscord | <leorize> other than that it already parses most of the compiler |
18:30:03 | FromDiscord | <odexine> though i should just do it and see |
18:30:10 | FromDiscord | <odexine> In reply to @heysokam "please make it take": i know |
18:30:14 | FromDiscord | <odexine> i know about the config file i mean |
18:30:30 | FromDiscord | <odexine> i also know about clang format but im not sure what to "take from it" |
18:30:46 | FromDiscord | <sOkam! 🫐> well the customization aspect of almost everything |
18:30:58 | FromDiscord | <odexine> unsure what config format i'll be using for this but i am deffo not going to use nimscript... |
18:31:06 | FromDiscord | <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:09 | FromDiscord | <sOkam! 🫐> most formatters end up becoming nazis of formatting just by simply not having customization as a first class usecase |
18:31:12 | FromDiscord | <leorize> you do need the parser to recognize nim structures↵(@odexine) |
18:31:14 | FromDiscord | <odexine> In reply to @heysokam "most formatters end up": i know about that |
18:31:32 | FromDiscord | <odexine> In reply to @leorize "you do need the": i know but i'm just wondering if i need to |
18:32:04 | FromDiscord | <sOkam! 🫐> In reply to @odexine "unsure what config format": toml? yaml? or were you thinking of just cfg |
18:32:22 | FromDiscord | <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:55 | FromDiscord | <sOkam! 🫐> why do people hate yaml so much? haven't found a single issue with it yet, but maybe im just newb |
18:33:02 | FromDiscord | <odexine> because it is a pain to parse |
18:33:08 | FromDiscord | <odexine> even if i dont need to parse it anymore |
18:33:18 | FromDiscord | <sOkam! 🫐> ic |
18:33:28 | FromDiscord | <odexine> its a pain to deal with in general |
18:33:37 | FromDiscord | <sOkam! 🫐> In reply to @odexine "i will NOT take": ini as in cfg like nim.cfg? |
18:33:44 | FromDiscord | <odexine> ini as in ini |
18:33:45 | FromDiscord | <leorize> some parsers even let you run arbitrary code inside yaml |
18:33:50 | FromDiscord | <leorize> so some bad rep come from that |
18:35:40 | * | xet7 joined #nim |
18:39:06 | arkanoid | mratsim: hi! Thanks for developing Synthesis. Do you think it can be used to build hierachical state machines? |
19:07:39 | NimEventer | New 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:28 | FromDiscord | <voidwalker> any clue how I would add to a `seq[seq[string]]` an `openArray[string]` ? |
19:22:43 | FromDiscord | <leorize> you have to merge them into one seq first |
19:22:52 | FromDiscord | <leorize> sequtils have a flatten proc for that iirc |
19:24:01 | FromDiscord | <voidwalker> not sure why I would neet to flatten ? |
19:24:07 | FromDiscord | <voidwalker> (edit) "neet" => "need" |
19:25:31 | FromDiscord | <leorize> an `openArray[string]` expects a single array of `string` |
19:25:38 | FromDiscord | <Chronos [She/Her]> You want a nested seq in an openArray |
19:25:43 | FromDiscord | <Chronos [She/Her]> A flat openArray |
19:25:52 | FromDiscord | <leorize> ohhhhh |
19:25:54 | FromDiscord | <leorize> my bad |
19:25:58 | FromDiscord | <Chronos [She/Her]> Unless you mean you want `openArray[openArray[string]]` |
19:25:58 | FromDiscord | <leorize> I misread your stuff |
19:25:59 | FromDiscord | <voidwalker> I wwant to add the openArray to the seq[seq[]], not the other way around |
19:26:01 | FromDiscord | <leorize> just add `@` |
19:26:06 | FromDiscord | <Chronos [She/Her]> Oh wait ah |
19:26:10 | FromDiscord | <leorize> it will convert it to seq |
19:26:13 | FromDiscord | <Chronos [She/Her]> Sorry brain is dead |
19:26:25 | FromDiscord | <Chronos [She/Her]> I thought you needed `toSeq` to that? |
19:26:32 | FromDiscord | <Chronos [She/Her]> Or is that just for iterators |
19:26:35 | FromDiscord | <leorize> `toSeq` is for iterators |
19:26:44 | FromDiscord | <leorize> `@` is the operator for non-iterators |
19:27:03 | FromDiscord | <voidwalker> https://media.discordapp.net/attachments/371759389889003532/1154499048636686436/image.png |
19:27:04 | FromDiscord | <voidwalker> like this ? |
19:27:44 | FromDiscord | <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:59 | FromDiscord | <Chronos [She/Her]> In reply to @leorize "`toSeq` is for iterators": Good to know |
19:28:07 | FromDiscord | <voidwalker> (edit) "`invalid" => "`/nim-1.6.14/lib/system/iterators.nim(233, 19) invalid" |
19:28:17 | * | Mister_Magister joined #nim |
19:29:45 | FromDiscord | <voidwalker> oh wait the error was for something else |
19:30:52 | FromDiscord | <voidwalker> sent a code paste, see https://play.nim-lang.org/#ix=4H0V |
19:31:03 | FromDiscord | <voidwalker> rows being for the moment a ` rows: seq[openArray[string]]` |
19:34:52 | FromDiscord | <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:10 | FromDiscord | <boom_bang> In reply to @chronos.vitaqua "https://nim-lang.org/docs/nimc.html#compiler-select": still confuddled |
19:52:11 | FromDiscord | <sOkam! 🫐> In reply to @boom_bang "still confuddled": how are you compiling right now? |
19:52:13 | FromDiscord | <Chronos [She/Her]> @boom_bang well, what compiler do you want to use? |
19:55:52 | FromDiscord | <boom_bang> i downloaded mingw |
19:57:16 | FromDiscord | <Chronos [She/Her]> Nim should be using that automatically if it's installed on the system already |
19:57:35 | FromDiscord | <sOkam! 🫐> nim uses mingw automatically, and it also installs it |
19:57:57 | FromDiscord | <sOkam! 🫐> (edit) "nim uses mingw automatically, and it also installs it ... " added "when using choosenim" |
19:59:15 | FromDiscord | <boom_bang> i had to redownload mingw |
19:59:22 | FromDiscord | <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:27 | FromDiscord | <n00nehere> In reply to @mratsim "Is it dead? People": every instance is now broken |
20:29:09 | FromDiscord | <.aingel.> In reply to @voidwalker "and a whole bunch": What rant / post is this? Just curious |
20:30:43 | FromDiscord | <voidwalker> @.aingel. https://forum.nim-lang.org/t/10312#68553 |
20:31:23 | FromDiscord | <_gumbercules> I wouldn't call that really random or nonsensical |
20:31:42 | * | Amun-Ra joined #nim |
20:31:53 | FromDiscord | <_gumbercules> Whether you agree with Andreas or not is another matter but what they said makes sense in the given context |
20:32:15 | FromDiscord | <_gumbercules> That doesn't mean it's true or untrue, but it's definitely not nonsensical or random |
20:32:33 | FromDiscord | <.aingel.> This makes me like nim more |
20:32:45 | FromDiscord | <.aingel.> Tbh I keep naming my branches master too cause it's just so ridiculous |
20:33:06 | FromDiscord | <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:14 | FromDiscord | <.aingel.> Yeah I feel you |
20:33:21 | FromDiscord | <.aingel.> Also I feel bad that he feels down about things in general |
20:34:53 | FromDiscord | <_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:57 | FromDiscord | <.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:28 | FromDiscord | <_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:42 | FromDiscord | <.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:03 | FromDiscord | <.aingel.> In reply to @_gumbercules "Well we don't know": Idk losing hope in humanity in general is a negative statement |
20:36:39 | FromDiscord | <_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:59 | FromDiscord | <_gumbercules> In fact I'm not depressed at all - quite the contrary |
20:37:27 | FromDiscord | <_gumbercules> In reply to @.aingel. "The whole git push": Which current event was this? |
20:37:50 | FromDiscord | <.aingel.> I won't get into it here but you can look up the timing and figure it out I guess |
20:38:23 | FromDiscord | <.aingel.> I think there's a lot of time for nim to catch on more as a language |
20:38:27 | FromDiscord | <_gumbercules> Well, all I'll say re the master / slave subject is that the word slave comes from the word slav |
20:38:49 | FromDiscord | <_gumbercules> So if you wan to know who the original slaves were, they weren't African or American |
20:39:50 | FromDiscord | <_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:29 | FromDiscord | <toma400> sent a long message, see http://ix.io/4H1v |
21:01:40 | FromDiscord | <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:21 | FromDiscord | <_gumbercules> was actually the Spanish Muslims |
21:03:15 | FromDiscord | <_gumbercules> Eastern Europeans have been the world's doormat though for quite some time |
21:03:26 | FromDiscord | <_gumbercules> Still to this day - just look at Ukraine |
21:03:34 | FromDiscord | <raynei486> In reply to @_gumbercules "was actually the Spanish": hmm didn't Islam start way after roman empire fell |
21:03:39 | FromDiscord | <raynei486> In reply to @_gumbercules "Eastern Europeans have been": unfortunately |
21:03:41 | FromDiscord | <_gumbercules> anyway - dont' want to verge too far into off-topic here |
21:04:19 | FromDiscord | <_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:58 | FromDiscord | <_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:58 | FromDiscord | <raynei486> ah |
21:06:03 | FromDiscord | <_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:34 | FromDiscord | <_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:42 | FromDiscord | <_gumbercules> (edit) "B=ut" => "But" |
21:11:20 | FromDiscord | <Chronos [She/Her]> What features should a text component library have, anyone got ideas? |
21:12:08 | FromDiscord | <Chronos [She/Her]> Text component library meaning components associated with certain formatting, or for having translatable keys for example |
21:13:39 | FromDiscord | <.aingel.> Is this for a TUI? |
21:13:58 | FromDiscord | <Chronos [She/Her]> It'll be agnostic but a TUI is one place it can be used |
21:14:16 | FromDiscord | <Chronos [She/Her]> Like I could use it in a game for example, or in a TUI |
21:19:51 | * | advesperacit quit () |
21:22:02 | FromDiscord | <Chronos [She/Her]> Huh does std/with have this issue? `Expressions will be evaluated only one time (by create anonymous variable).` |
21:22:20 | FromDiscord | <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:26 | FromDiscord | <voidwalker> sent a code paste, see https://play.nim-lang.org/#ix=4H1I |
21:56:27 | FromDiscord | <voidwalker> Can someon explain what is wrong with this code please |
22:01:15 | FromDiscord | <Elegantbeef> @voidwalker `newTableBox` takes `openArray[(int, string)]` you're passing `seq[(int, string)]` and `seq[seq[string]]` |
22:02:05 | FromDiscord | <voidwalker> ElegantBeef, I was just thinking I'm gonna quit nim if you're not around anymore lol |
22:02:16 | FromDiscord | <voidwalker> It takes `headers: openArray[(int, string)], rows: seq[openArray[string]]` |
22:02:41 | FromDiscord | <Elegantbeef> Whoops you're partially right |
22:02:46 | FromDiscord | <Elegantbeef> `openArray` cannot be inside a container |
22:02:58 | FromDiscord | <voidwalker> what conatiner ? |
22:03:03 | FromDiscord | <Elegantbeef> change that to `seq[seq[string]` or use a concept |
22:03:41 | FromDiscord | <voidwalker> well the whole idea was that I could be able to take in both arrays/seq structure when constructing the object |
22:03:54 | FromDiscord | <Elegantbeef> Time for a concept |
22:03:55 | * | Mister_Magister joined #nim |
22:04:19 | FromDiscord | <mratsim> In reply to @arkanoid "<@570268431522201601>: hi! Thanks for": Yes, just have state machines calling lower level state machines |
22:05:49 | FromDiscord | <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:11 | FromDiscord | <Elegantbeef> Well then make an overload |
22:06:37 | FromDiscord | <voidwalker> I am really curious how it would look with a concept. Aren't you ? : D |
22:06:59 | FromDiscord | <Elegantbeef> Lol |
22:07:09 | FromDiscord | <voidwalker> You are the only person that understands this stuff |
22:08:42 | FromDiscord | <Elegantbeef> PS you should name it `initTableBox` |
22:08:51 | FromDiscord | <Elegantbeef> Or even better `init` and take the typedesc as the first parameter |
22:08:55 | FromDiscord | <Elegantbeef> https://play.nim-lang.org/#ix=4H1P |
22:08:56 | FromDiscord | <Elegantbeef> But there you go conceptized |
22:10:03 | FromDiscord | <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:32 | FromDiscord | <Elegantbeef> I don't really care who named it `new` indicates heap allocations |
22:10:49 | FromDiscord | <Elegantbeef> Well it indicates the object is heap allocated |
22:11:08 | FromDiscord | <voidwalker> and it isn't ? |
22:11:25 | FromDiscord | <Elegantbeef> `type MyObj = object` is not heap allocated no |
22:11:58 | FromDiscord | <Elegantbeef> I was of course being hyperbolic, if it's not your code, it's not your problem |
22:13:07 | FromDiscord | <voidwalker> well, if I can make some improvements, I will PR it |
22:15:07 | FromDiscord | <voidwalker> you wouldn't happen to have experience with TUIs ? |
22:16:17 | FromDiscord | <Elegantbeef> A bit |
22:18:14 | FromDiscord | <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:18 | FromDiscord | <Elegantbeef> They're relative primitive so I'd write it from scratch |
22:20:00 | FromDiscord | <voidwalker> primitive ? you mean they are easy to write ? |
22:20:36 | FromDiscord | <Elegantbeef> For the most part, yes |
22:22:04 | FromDiscord | <voidwalker> I couldn't find any books on how to design one, except this: https://nick-black.com/htp-notcurses.pdf |
22:22:49 | arkanoid | mratsim: k, thanks |
22:24:37 | FromDiscord | <voidwalker> thanks beef, that concept code actually works with all combos of seq/array |
22:25:11 | FromDiscord | <voidwalker> a bit unfortunate you need a concept for it, but what can you do |
22:29:30 | FromDiscord | <Elegantbeef> Overload 😄 |
22:30:09 | FromDiscord | <.aingel.> @ElegantBeouf Why can't he use openArray |
22:30:35 | FromDiscord | <.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:45 | FromDiscord | <.aingel.> Oh I see cause of seq[openArray[string]] |
22:36:23 | FromDiscord | <.aingel.> What about nimwave |
22:36:32 | FromDiscord | <.aingel.> https://github.com/ansiwave/nimwave |
22:37:18 | FromDiscord | <.aingel.> It seems pretty low level |
22:38:34 | * | ox is now known as oz |
22:48:29 | FromDiscord | <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:22 | FromDiscord | <.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:58 | FromDiscord | <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:27 | FromDiscord | <Elegantbeef> Docs work for me |
23:38:51 | FromDiscord | <Riddle> what throws errors? |
23:40:17 | * | derpydoo quit (Ping timeout: 255 seconds) |
23:40:29 | FromDiscord | <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:43 | FromDiscord | <millymox> Any guide/tutorial on making a nim package? |
23:40:52 | FromDiscord | <millymox> Like how to set it up intially |
23:42:07 | FromDiscord | <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:14 | FromDiscord | <keithdaustin> https://github.com/nim-lang/nimble right in the readme |
23:46:02 | FromDiscord | <millymox> Thank you! |