<< 15-09-2021 >>

00:46:46FromDiscord<gogolxdong (liuxiaodong)> Anyone working on chia?
00:58:25FromDiscord<@bracketmaster-5a708063d73408ce4> in nim, I had an array of functions that returned numbers.↵I then wanted to
00:58:47FromDiscord<@bracketmaster-5a708063d73408ce4> debug one of the functions and had one of the functions in the array print something
00:59:01FromDiscord<@bracketmaster-5a708063d73408ce4> nim then complained that one of the functions in the array had side effect
00:59:15FromDiscord<@bracketmaster-5a708063d73408ce4> refused to compile, saying arrays must have the same types
00:59:33FromDiscord<Elegantbeef> Do you have the code?
01:00:36FromDiscord<@bracketmaster-5a708063d73408ce4> not off hand - could probably push to git
01:00:42FromDiscord<@bracketmaster-5a708063d73408ce4> git -\> gitlab
01:03:44FromDiscord<leorize> use debugEcho
01:03:54FromDiscord<leorize> the normal echo has side-effect
01:04:33FromDiscord<Elegantbeef> Alternatively make a typedef of the procedure
01:04:33FromDiscord<Elegantbeef> then convert the first value to it
01:13:52FromDiscord<@bracketmaster-5a708063d73408ce4> http://ix.io/3yUc
01:14:44FromDiscord<@bracketmaster-5a708063d73408ce4> typedef of the procedure?
01:14:47FromDiscord<@bracketmaster-5a708063d73408ce4> how would that fix things?
01:15:17FromDiscord<Elegantbeef> https://play.nim-lang.org/#ix=3yUd
01:15:35FromDiscord<auxym> can a nim enum be used directly as a parameter to a C function (imported via `{.importc, header.}` that takes a C typedef enum? Or do I need to cast it to `cint` or something?
01:15:36FromDiscord<Elegantbeef> It converts a proc to a given typedef so it doesnt infer the array type from the first
01:15:48FromDiscord<Elegantbeef> It should be usable directly
01:15:53FromDiscord<auxym> yay
01:17:59FromDiscord<Elegantbeef> You can also pass bitsets to C seemlessly afaik
01:18:09FromDiscord<Elegantbeef> And convert the C bitsets from them
01:18:45FromDiscord<Elegantbeef> IE if you get `Up | Left | Right` if you have `set[YourEnum]`
01:18:58*arfy is seriously making a more nim-ish wrapping over the top of nimbass.
01:19:06arfyer. seriously thinking about
01:26:12FromDiscord<Elegantbeef> To elaborate bracketmaster https://play.nim-lang.org/#ix=3yUe
01:29:44*neurocyte4 joined #nim
01:29:44*neurocyte4 quit (Changing host)
01:29:44*neurocyte4 joined #nim
01:30:17FromDiscord<@bracketmaster-5a708063d73408ce4> why do you put {.nimcall .} at the end?
01:31:07FromDiscord<@bracketmaster-5a708063d73408ce4> also, how are you able to call YourProc on p2?
01:31:53*neurocyte quit (Ping timeout: 268 seconds)
01:31:53*neurocyte4 is now known as neurocyte
01:43:45FromDiscord<Elegantbeef> I'm converting it
01:54:45*arkurious quit (Quit: Leaving)
01:58:28FromDiscord<@bracketmaster-5a708063d73408ce4> you can convert one function to another?
01:58:35FromDiscord<@bracketmaster-5a708063d73408ce4> this seems kind of arbitrary...
02:04:27FromDiscord<Elegantbeef> In what way?
02:04:45FromDiscord<Elegantbeef> You're taking a `proc(a: int): int {.gcsafe.}` and converting it into `proc(a: int): int`
02:10:58FromDiscord<@bracketmaster-5a708063d73408ce4> it seems that nim doesn't really allow shadowing?
02:11:10FromDiscord<Elegantbeef> It does
02:11:11FromDiscord<impbox [ftsf]> it does?
02:11:51FromDiscord<@bracketmaster-5a708063d73408ce4> var a = 1↵var a = 2↵↵echo a
02:11:56FromDiscord<@bracketmaster-5a708063d73408ce4> not the way rust does I guess
02:12:00FromDiscord<Elegantbeef> It can only shadow in new scopes
02:12:17FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3yUl
02:12:35FromDiscord<@bracketmaster-5a708063d73408ce4> thx beef
02:12:46FromDiscord<Elegantbeef> There is even some magic to shadow in same scope
02:12:51FromDiscord<Elegantbeef> Atleast iirc
02:12:52FromDiscord<j-james> what's the syntax for returning the increment of a character?
02:13:00FromDiscord<Elegantbeef> "the increment"
02:13:09FromDiscord<impbox [ftsf]> c.succ
02:13:11FromDiscord<j-james> yeah, since it's an Ordinal type
02:13:45FromDiscord<impbox [ftsf]> https://nim-lang.org/docs/system.html#succ%2CT%2Cint
02:13:57FromDiscord<impbox [ftsf]> note that it doesn't mutate the variable
02:14:29FromDiscord<j-james> literally succ haha, i thought you were making a joke
02:14:30FromDiscord<j-james> thanks a lot
02:14:39FromDiscord<j-james> not mutating the variable was what i was looking for
02:14:47FromDiscord<impbox [ftsf]> dang `it.succ` would have been better
02:15:02FromDiscord<impbox [ftsf]> `succ(it)`
02:15:35FromDiscord<impbox [ftsf]> `succ(it)` and see what happens
02:23:45FromDiscord<@bracketmaster-5a708063d73408ce4> @elegantbeef\:matrix.org - what is the purpose of `block`/
02:23:56FromDiscord<Elegantbeef> Creates a new block
02:24:17FromDiscord<Elegantbeef> same as `{}` in languages with curlies
02:25:38FromDiscord<Elegantbeef> sent a code paste, see https://paste.rs/xhI
02:26:30FromDiscord<@bracketmaster-5a708063d73408ce4> ah
02:28:47FromDiscord<@bracketmaster-5a708063d73408ce4> can you also assign a proc to a?
02:28:56FromDiscord<@bracketmaster-5a708063d73408ce4> that is, could a block somehow return a function?
02:29:18FromDiscord<Elegantbeef> Of course as long as you use `someVal = proc` or `return proc`
02:34:23FromDiscord<@bracketmaster-5a708063d73408ce4> any nim libraries for cryptography?
02:34:34FromDiscord<@bracketmaster-5a708063d73408ce4> I wanted to do some ECC or RSA encryption
02:34:43FromDiscord<Elegantbeef> nimcrypto, openssl?
02:35:01FromDiscord<Elegantbeef> I dont know crypto whatsoever so dont know what's best
02:36:35FromDiscord<@bracketmaster-5a708063d73408ce4> ah
02:36:47FromDiscord<@bracketmaster-5a708063d73408ce4> nimcrypto just has hashing algos
02:37:02FromDiscord<@bracketmaster-5a708063d73408ce4> but no prime-number or elliptical-curve cryptography
02:40:29*rockcavera quit (Remote host closed the connection)
02:40:29FromDiscord<cabboose> I don't know C syntax; what's this\:↵`type TagPtr = (Node ptr, u16 idx)`
02:40:47FromDiscord<cabboose> is that saying tagptr is just a ptr to node as a u16 int?
02:41:22FromDiscord<cabboose> or tagptr is a u16 index to the reference of Node?
02:53:39FromDiscord<Elegantbeef> That's valid C syntax?!
02:54:02FromDiscord<cabboose> I dunno
02:54:04FromDiscord<cabboose> https://ieeexplore.ieee.org/abstract/document/9490347?casa_token=Pe0y6ibhbzQAAAAA:FwJO6N3uar79gGH5l5dQ6M2hkaB6buBNeVaWW8BPKvHTr4Wrdk8c_QxOsjcTonvLo3BY7Q4kOw
02:54:18FromDiscord<cabboose> See listing 1
02:54:34*Gustavo6046 quit (Quit: ZNC 1.8.2 - https://znc.in)
02:54:48*Gustavo6046 joined #nim
02:55:09FromDiscord<cabboose> I assumed it was C but I'm oblivious
02:56:16FromDiscord<cabboose> just pseudocode I guess; but then what type of value are they referencing with that line
02:56:18FromDiscord<Elegantbeef> well `u16` is used in Zig/Rust so maybe that's just a type alias of `(ptr Node, uint16)`?
02:57:13FromDiscord<cabboose> Ok so its just ptr Node as uint16
02:57:14FromDiscord<cabboose> right
02:57:24FromDiscord<cabboose> or a tuple
02:57:25FromDiscord<Elegantbeef> I'd say it's a tuple
02:57:29FromDiscord<cabboose> you mean
02:57:33FromDiscord<cabboose> right
02:57:33FromDiscord<cabboose> ofc
02:57:34FromDiscord<cabboose> cool
02:57:35FromDiscord<cabboose> thanks sxc
02:57:53FromDiscord<Elegantbeef> I could be wrong i dont have a degree in guessology
02:58:04FromDiscord<cabboose> Sounds like a fake degree
02:58:06FromDiscord<cabboose> but university these days
02:58:17FromDiscord<cabboose> I'd imagine its in the arts section
02:58:48FromDiscord<Elegantbeef> Hey i dont know the courses that post secondary offers
03:02:10FromDiscord<cabboose> and then am I able to disown the bitch later?
03:02:16FromDiscord<cabboose> sent a code paste, see https://play.nim-lang.org/#ix=3yUw
03:04:14FromDiscord<Elegantbeef> Dont know that answer
03:04:35FromDiscord<cabboose> Shameful
03:04:46FromDiscord<cabboose> You bring shame to Novoscotia
03:06:07FromDiscord<Elegantbeef> But i'm not from there
03:06:17FromDiscord<cabboose> still
03:06:20FromDiscord<cabboose> theyre disappointed in you
03:06:30FromDiscord<cabboose> I didnt say you should care
03:20:42*Gustavo6046 quit (Quit: ZNC 1.8.2 - https://znc.in)
03:25:14*Gustavo6046 joined #nim
03:47:06FromDiscord<cabboose> c++ try\_reclaim
03:47:11FromDiscord<cabboose> is that like an atomic dec
03:48:02FromDiscord<cabboose> what de fak
03:48:03FromDiscord<cabboose> what the hell is try\_reclaim
03:48:27FromDiscord<cabboose> image.png https://media.discordapp.net/attachments/371759389889003532/887545373072175225/image.png
03:48:37FromDiscord<cabboose> E9
03:49:06FromDiscord<cabboose> uwu
03:49:52FromDiscord<cabboose> so from what I understand is they are changing the pointer t back to tail.position i-1
03:50:03FromDiscord<cabboose> wait yeah
03:50:03FromDiscord<cabboose> that makes sense
03:50:03FromDiscord<cabboose> fuck you guys im awesome
03:51:09FromDiscord<cabboose> shit how am I going to do this
03:51:27FromDiscord<cabboose> I am not a very smart man
04:06:01*supakeen quit (Quit: WeeChat 3.2.1)
04:06:31*supakeen joined #nim
04:07:00FromDiscord<cabboose> Ok I'm up to E12
04:07:25FromDiscord<cabboose> what order of operations are they doing to turn el and t (both are pointers) into an enumerator?
04:07:38FromDiscord<cabboose> I'm guessing AdvAndInserted is 0 and AdvOnly is 1
04:07:52FromDiscord<cabboose> so is this an and bitwise operation?
04:08:04FromDiscord<cabboose> why is this in fucking gibberish
04:08:20FromDiscord<cabboose> Fuck it i'm going with that
04:08:23FromDiscord<cabboose> and I think I know why
04:08:46FromDiscord<cabboose> but I definitely don't
04:08:48FromDiscord<cabboose> I just 'think'
05:10:11*kayabaNerve_ quit (Ping timeout: 268 seconds)
06:17:57*xet7 quit (Remote host closed the connection)
06:18:55*xet7 joined #nim
06:37:31*xet7 quit (Remote host closed the connection)
06:38:26*xet7 joined #nim
06:38:52FromDiscord<Varriount> Zevv: How would one program an optimization pass into NPeg?
06:39:32FromDiscord<Varriount> Specifically, a pass to hoist common prefixes/suffixes from alternations.
06:47:18*max22- joined #nim
06:48:24*PMunch joined #nim
06:51:26PMunchHmm, is there a way to get nimcache from a macro?
06:53:18*tdc joined #nim
06:55:07*mdbauman quit (Read error: Connection reset by peer)
06:57:12FromDiscord<haxscramper> std/compilesettings
06:58:03PMunchOoh, perfect
07:19:44Zevvvarriount: id need to draw a picture for that
07:22:08Zevv basically you change a * v | a * w | b * x | b * y into a * (v | w) | b * (x | y)
07:22:23FromDiscord<Varriount> Yeah
07:26:50FromDiscord<Varriount> Zevv: Just thinking aloud here, but I was pondering what kind of compilation and/or runtime difference extracting common alternation prefixes, inlining all rules, then performing rule synthesis using a "longest common sequence/string" algorithm would have for large grammars.
07:27:50FromDiscord<Varriount> Essentially, simplifying the grammar as much as possible, inlining everything, then un-inlining everything.
07:29:28FromDiscord<Varriount> (un-inlining using a compression algorithm)
07:32:44arkanoidwhere are karax docs?
07:34:42*kayabaNerve joined #nim
07:35:28*Vladar joined #nim
08:11:14Zevvvarriount: in theory npeg could do this for you, this is for example how ragel works
08:11:47Zevvbut the poblem at this stage is that thee is no proper ast representation of the grammar that npeg can wok on
08:12:06Zevvthe gramma is compiled from nimnodes straight into the IR instructions
08:12:20Zevvthere are some peephole optimizations done, but thats it
08:12:48Zevvif it would have a proper inbetween AST, the code could reason about your grammar and make these optimiztations
08:14:18PMunchhttps://github.com/nim-lang/Nim/issues/18855
08:14:26PMunchThe bug that plagued me yesterday ^
08:17:18FromDiscord<Varriount> Zevv: What about just working with the Nim AST? Or would that be unwieldy?
08:18:24Zevv do *you* like working with nim ast?
08:18:57Zevvbut, shure that should be feasible
08:18:59FromDiscord<Varriount> ... not particularly.
08:21:19arkanoidPMunch, woa, that's a bad bug
08:21:53PMunchKinda hard to find the culprit as well when it manifested in a 2.5k lines of macro output :P
08:31:02arkanoidactually I have no idea how many human beings are actually able to dive into compiler internals nowadays
08:31:21FromDiscord<Elegantbeef> Hopefully more
08:31:57FromDiscord<cabboose> Some people are too busy diving into other peoples internals smh
08:32:10FromDiscord<cabboose> why wont humanity evolve
08:33:00arkanoidhow does nimble handles multi-artifacts output?
08:33:41arkanoidI am trying to setup a nimble project that outputs both a C backend and a JS frontend, sharing some code
08:34:13arkanoidI could surely wrap up custom tasks, but with that I lose automatic dependency installation
08:35:36FromDiscord<Rika> how does that work?
08:36:48arkanoidRika, is that question for me?
08:37:02FromDiscord<Rika> yes
08:37:58arkanoidwell, I have some nim code just for jester, some code just for karax, and some code (types and ops on them) shared between the two. Frontend is compiled with js backend, backend is compiled with C backend
08:38:19NimEventerNew thread by Rforcen: High precission -> f1024, see https://forum.nim-lang.org/t/8428
08:38:28arkanoidI think is the typical nim integration for webapps, question is how to handle it with nimble
08:38:47arkanoid"nimble build" should build not one but two artifacts with different backends
08:39:32FromDiscord<Rika> no way other than task
08:40:17FromDiscord<Rika> cant you dep resolve in a task anyway?
08:41:13arkanoidRika how?
08:42:04arkanoidI'm trying to declare "backend" and "bin" vars inside the task itself and then call "buildTask()", but it says that buildTask() does not exists
08:42:24arkanoidIn a forum post I've read that tasks are really macros for <taskName>Task() proc
08:43:13FromDiscord<Rika> you cant hook into "nimble build"
08:43:43arkanoidwell, that's a show stopper
08:44:23FromDiscord<Rika> feature request on nimble repo it is then
08:45:18FromDiscord<Rika> i believe usually backend and frontend are different packages
08:46:01PMunchHow can I get the path of the current file in a macro?
08:46:32FromDiscord<Rika> the caller?
08:47:08FromDiscord<fwsgonzo> sent a code paste, see https://play.nim-lang.org/#ix=3yVs
08:47:09FromDiscord<Rika> currentSourcePath?
08:47:27FromDiscord<Elegantbeef> You dont give a name to `iterator`
08:47:31FromDiscord<Rika> sent a code paste, see https://play.nim-lang.org/#ix=3yVt
08:47:43FromDiscord<Elegantbeef> Or of course a type
08:51:11arkanoidRika, frontend and backend are different packages when shared code is not part of the game, but nim enables this
08:51:25arkanoidI could surely split into three packages: backend, frontend and shared
08:51:44FromDiscord<Rika> you can just import the backend in the frontend and the frontend in the backend probably
08:51:49arkanoidbut I feel like fragmenting something that could stay together
08:52:02PMunchYes, currentSourcePath was what I was looking for. Thanks Rika :)
08:52:10FromDiscord<Rika> i dont see any reason for code to be shared between them though
08:52:12FromDiscord<fwsgonzo> In reply to @Rika "what is the second": It's going to be an iterator to a Token
08:52:22FromDiscord<Rika> you need to specify that
08:52:36FromDiscord<Rika> `(... iter: iterator(): Token) -> ...`
08:52:57FromDiscord<Rika> not sure if this is 100% correct but its p much there
08:53:27*max22- quit (Quit: Leaving)
08:53:33arkanoidRika, isn't sharing code between js and c the main advantage of nim for web apps? I mean, the kstring karax type has been invented just for that
08:54:09FromDiscord<impbox [ftsf]> also not having to write JS
08:54:12FromDiscord<impbox [ftsf]> or C
08:54:41FromDiscord<fwsgonzo> thank you @Rika
08:54:42FromDiscord<Rika> i dont know, i dont know of a scenario where both the backend and frontend need to know of something
08:54:46FromDiscord<Rika> types?
08:54:48FromDiscord<Rika> models?
08:55:04FromDiscord<Rika> in which case they should be in a shared module
08:55:12FromDiscord<Rika> imo
08:55:13FromDiscord<impbox [ftsf]> api definitions
08:55:32FromDiscord<Rika> api definitions can go in the backend, i dont see why the frontend cannot import that?
08:55:38FromDiscord<saem> Models, validation, API, anything end to end
08:55:55FromDiscord<impbox [ftsf]> they can both import the same thing?
08:55:56FromDiscord<Rika> In reply to @Rika "you can just import": i said here
08:56:36FromDiscord<Rika> i have a lot of modules that import each other, you just need to place the imports on strategic lines
08:56:37FromDiscord<Rika> or /we
08:56:39FromDiscord<Rika> w/e
08:56:42arkanoidSharing the type system is huge thing, and also mapping it to a db via norm is another huge thing
08:56:51FromDiscord<impbox [ftsf]> ohh sorry i missed the part about splitting them into separate modules
08:56:54FromDiscord<impbox [ftsf]> (edit) "ohh sorry i missed the part about splitting them into separate ... modules" added "nimble"
08:56:59FromDiscord<impbox [ftsf]> just keep them in the same module?
08:57:06FromDiscord<impbox [ftsf]> (edit) "just keep them in the same ... module?" added "nimble"
08:57:08FromDiscord<Rika> the issue with that is nimble
08:57:13FromDiscord<Rika> as elaborated above
08:57:17FromDiscord<Rika> how would you build both of them
08:57:27FromDiscord<Rika> in a task? as said then you would lose dep resol.
08:57:27FromDiscord<impbox [ftsf]> `nimble backend` `nimble frontend`
08:57:49arkanoidimpbox, the original question was about my problem is setting up a single nimble project to build both frontend and backend for a webapp. Tipically this is called multi-artifact build
08:58:09FromDiscord<impbox [ftsf]> gotcha, yeah i use tasks for that
08:59:04FromDiscord<impbox [ftsf]> @Rika what is the dep resol you lose?
08:59:09FromDiscord<impbox [ftsf]> nimble dependencies?
08:59:18FromDiscord<impbox [ftsf]> you want to specifiy different deps for frontend and backend?
08:59:35FromDiscord<Rika> In reply to @arkanoid "I could surely wrap": here
09:01:46FromDiscord<impbox [ftsf]> sounds like make is desired and unfortunately nimble isn't a replacement for all of make yet
09:10:52FromDiscord<cabboose> Can't seem to build hcparse via nimble @haxscramper, are there any tricks?
09:11:01FromDiscord<cabboose> [haxscramper](https://matrix.to/#/@haxscramper:matrix.org)\:
09:11:34FromDiscord<fwsgonzo> I read the 128-bit integer PR, and the problem with not adding this fundamental type to the language as early as possible is that you will eventually have to do it anyway when you want to support an actual 128-bit architecture
09:11:43FromDiscord<cabboose> get type mismatches in hmisc
09:12:15FromDiscord<fwsgonzo> I understand that "not everything has to be in the standard libraries", but if the computer is 128-bit then the whole language gets weird when a register value is (at present) a package you have to import using nimble
09:12:47FromDiscord<Rika> prolly best to mention that in the pr comments
09:15:44FromDiscord<haxscramper> I'm currently in process of blowing it up
09:15:59FromDiscord<cabboose> delightful
09:16:30FromDiscord<haxscramper> I will fix it when nim stable comes out and I can get stuff in CI working again
09:16:49FromDiscord<haxscramper> Because 1.6 breaks so much compilation
09:17:08FromDiscord<cabboose> fair
09:17:09FromDiscord<haxscramper> You just get compilation errors on isntall, or there is a nimble issue?
09:18:00FromDiscord<cabboose> sent a code paste, see https://play.nim-lang.org/#ix=3yVB
09:19:23FromDiscord<haxscramper> Yeah
09:19:35FromDiscord<haxscramper> This is a pure 1.6 breakage
09:20:12FromDiscord<cabboose> Reckon itll work if I downgrade to 1.4.8?
09:22:28FromDiscord<haxscramper> Then you will most likely run into my idiocy, so for now you can save yourself trouble until I properly fix this
09:24:17FromDiscord<haxscramper> Btw type mismatch errors at its finest
09:25:13FromDiscord<cabboose> wE'Re iN tHe FuTuRe
09:29:14*kayabaNerve quit (Ping timeout: 260 seconds)
09:29:19*max22- joined #nim
09:31:01*kayabaNerve joined #nim
10:24:34FromDiscord<dom96> so here is a fun problem, as soon as you upgrade to new Nimble you will not be able to use old Nim compilers https://github.com/nim-lang/nimble/issues/940
10:29:26*Guest85 joined #nim
10:29:59*Guest85 quit (Client Quit)
10:30:08PMunchOuch, that's not great
10:30:37PMunchHe's using 1.5.1 though, how fresh does the compiler have to be?
10:30:56PMunchHmm createDir doesn't work on compile-time, is there a compile-time equivalent?
10:31:04FromDiscord<dom96> 1.6/devel. There is a patch that allows the Nim compiler to read these new directories
10:31:49FromDiscord<dom96> so in the end I think we will need to find a way to get this working without a compiler patch
10:32:50PMunchI don't see why it treats that as an invalid module name
10:33:02PMunchThe -0.0.0 part should already make it invalid, no?
10:34:01FromDiscord<dom96> It's because of the `-a6dfb9de705011f6d04902493cac04a4f20a0435`
10:34:19FromDiscord<dom96> old Nim expects `pkgName-ver`
10:34:23PMunchYeah I get that, but why doesn't it error out on -0.0.0
10:34:26FromDiscord<dom96> new Nim expects `pkgName-ver-hash`
10:34:30PMunchAh, so there is already a patch to allow -ver
10:34:35FromDiscord<dom96> yeah
10:34:40PMunchI see
10:35:03PMunchHow does it parse the version part?
10:35:18PMunchIs it possible to trick it with -0.0.0_a6dfb9de705011f6d04902493cac04a4f20a0435
10:35:30FromDiscord<dom96> possibly
10:36:33FromDiscord<dom96> maybe it's time to completely redesign this folder structure
10:37:23FromDiscord<dom96> and just put it in `~/.nimble/2/` or something
10:38:04FromDiscord<dom96> in an ideal world Nim wouldn't have any special parsing rules for `pkgName-ver`
10:38:35PMunchHmm, that is also possible
10:38:48PMunchBut then you need to handle the old and the new packages
10:39:49PMunchWell this is annoying. I query nimcacheDir to figure out where to store some cache files. But that directory isn't created by the time my macro is evaluated
10:40:11PMunchAnd I can't call createDir from a macro..
10:42:43FromDiscord<dom96> staticExec("mkdir") 😄
10:45:42PMunchYeah, but I also need it to work on Windows (and Mac, but I assume they use mkdir)
10:45:57PMunchSo I need to implement the same kind of logic that lives in createDir
10:46:47FromDiscord<dom96> maybe you should just write a Nim program and then `staticExec("nim c -r myappThatCreatesDirAndOtherStuff.nim")`
10:49:13PMunchI already have an external Nim program, this was intended to cache the output of that one :P
10:49:26PMunchIt would be silly to have a separate program that only exists to create directories..
10:56:32PMunchHuh, Windows apparently also uses mkdir
11:00:51*leth joined #nim
11:03:22lethI'm reading up on procedure calling, but there is no mention of calling a procedure using <procedure: ...>, and the passing of statements contra expressions to procedures.
11:07:03PMunchleth, not quite sure what you mean
11:07:44lethI'm trying to understand how the syntax for using statements an argument list looks.
11:07:55leths/an/in an/
11:09:24lethas when passing an anonymous procedure as an argument., and how the syntax looks for using a template in an argument list, where that template takes say a block of statements as an argument.
11:18:08PMunchWell templates just rewrites code, so as long as what they spit out is valid using them inside an argument list should be valid (although you might need some parenthesis to ensure that Nim only parses what you intended)
11:19:15lethSure, but what is the syntax for using a template in an argument list, and what rules dictates that syntax. These are the sort of questions I'm interested in answering.
11:21:15lethhow would the syntax look for a call to a procedure that takes 3 arguments look when called with the third argument expressed as template that takes a block of 2 statements?
11:21:24FromDiscord<Rika> It’s elaborated in the experimental manual
11:21:28FromDiscord<Rika> Do notation
11:21:40lethwhere is the experimental manual?
11:21:56FromDiscord<Rika> Documentation
11:22:04FromDiscord<Rika> Website
11:23:39lethI can only see the language manual there, link?
11:24:19PMunchHmm, is there no way of creating a new warning/error kind?
11:24:43PMunchI would want to have a warning that can be promoted to an error by the normal switch..
11:24:54PMunchOr silenced in the normal way
11:26:56FromDiscord<haxscramper> In reply to @dom96 "maybe it's time to": I don't even understand why Araq decided it is acceptable to merge this pile breakages before new release
11:27:09FromDiscord<Rika> In reply to @leth "I can only see": Replace “manual” with “manual_experimental” in the link
11:27:27FromDiscord<haxscramper> bobbef was too busy and could not write down what he broke explicitly, but merging it
11:27:39FromDiscord<haxscramper> Especially right before new version of nim comes out
11:28:15lethRika: Thank you!
11:30:51FromDiscord<haxscramper> Well, status wanted it, so it was enough to inconvenience everyone else
11:31:42FromDiscord<haxscramper> Not like there is anything anyone could do, except they wanted to spend lifetime tracking everything they slipped in under disguise of the "lockfiles" PR
11:32:28FromDiscord<haxscramper> Arguing against it is like trying to force Google to do something - basically pointless, they could argue in favor of any feature
11:32:39FromDiscord<haxscramper> But still, this is a horrible precedent
11:33:05FromDiscord<haxscramper> Not blaming reviewers, and as I said blaming status is pointless, but still, pretty annoying
11:33:39FromDiscord<haxscramper> (edit) "they" => "status"
11:53:40*Gustavo6046 quit (Ping timeout: 240 seconds)
11:59:51*Gustavo6046 joined #nim
12:06:02*supakeen quit (Quit: WeeChat 3.2.1)
12:06:13*max22- quit (Ping timeout: 268 seconds)
12:06:25*Gustavo6046 quit (Ping timeout: 252 seconds)
12:06:30*supakeen joined #nim
12:10:37*Gustavo6046 joined #nim
12:11:51*xet7 quit (Remote host closed the connection)
12:12:51*xet7 joined #nim
12:15:29*rockcavera joined #nim
12:15:29*rockcavera quit (Changing host)
12:15:29*rockcavera joined #nim
12:22:57*arkurious joined #nim
12:47:33*pro joined #nim
12:52:43*jmiven quit (Quit: reboot)
12:55:47FromDiscord<dom96> yeah :/
13:07:09PMunchI mean this has to be fixed before the release
13:07:25PMunchIt would totally negate the whole point of choosenim wouldn't it?
13:07:54PMunchInstall one package with the newest Nim version and suddenly you can't go back to older versions without removing said packages
13:11:04FromDiscord<xflywind> My nimble has been broken for some time. I can only install package by URL.
13:11:14FromDiscord<xflywind> https://media.discordapp.net/attachments/371759389889003532/887686998645674024/unknown.png
13:12:25FromDiscord<xflywind> build Nim from nightlies
13:12:26FromDiscord<cabboose> someone should plant a balls folder in your user directory
13:13:12FromDiscord<cabboose> Ive been using the older nimble to install packages, is that going to cause issues?
13:13:31FromDiscord<cabboose> I'm still using devel nim
13:18:39FromDiscord<Gumber aka Zachary Carter> Guess I'm sticking with 1.4.8 till all this gets sorted out 🙂
13:19:36*pro quit (Quit: WeeChat 3.2)
13:22:15FromDiscord<xflywind> It seems to download a json file from a 404 website
13:22:19FromDiscord<xflywind> https://media.discordapp.net/attachments/371759389889003532/887689787857846302/unknown.png
13:23:01FromDiscord<xflywind> https://irclogs.nim-lang.org/packages.json
13:36:08PMunchWhat?! Why does it try to download from there?
13:38:52FromDiscord<xflywind> https://github.com/nim-lang/nimble/blob/795704833ddfd0cdaefb45c60551d3ea205279ef/src/nimblepkg/config.nim#L27
13:38:56*arkanoid quit (Ping timeout: 268 seconds)
13:41:24*arkanoid joined #nim
13:53:59FromDiscord<xflywind> I see, just I cannot download packages.json from https://github.com/nim-lang/packages/raw/master/packages.json
13:54:50FromDiscord<xflywind> and https://nim-lang.org/nimble/packages.json is too outdated
14:01:03FromDiscord<dom96> @xflywind you must have run the nimble test suite which failed after it modified your nimble.cfg
14:03:02*max22- joined #nim
14:04:26FromDiscord<xflywind> I didn't run the nimble test suit. The first link failed for me is caused by my internet probably. The second link is already broken. The third link works for me but the info is too outdated.
14:04:56*FromDiscord quit (Remote host closed the connection)
14:05:09*FromDiscord joined #nim
14:05:21FromDiscord<dom96> well I've seen this happen before and it was because the nimble.cfg in ~/.config/nimble or wherever it is had custom URLs
14:05:24FromDiscord<dom96> so check if that exists
14:06:04FromDiscord<Gumber aka Zachary Carter> they just linked to the source with those URLs in it though...
14:06:07FromDiscord<Gumber aka Zachary Carter> those URLs are coming from the source
14:06:22FromDiscord<dom96> In reply to @cabboose "Ive been using the": nope, but at this point I'm even afraid to upgrade it
14:07:00FromDiscord<Rika> damn thats bad
14:07:00FromDiscord<Gumber aka Zachary Carter> https://github.com/nim-lang/nimble/blob/master/src/nimblepkg/config.nim#L26-L28 @dom96
14:07:40FromDiscord<dom96> In reply to @Gumber "https://github.com/nim-lang/nimble/blob/master/src/": Line 26 has https://github.com/nim-lang/packages/raw/master/packages.json, so why doesn't that work?
14:07:56FromDiscord<Gumber aka Zachary Carter> because they're in China
14:08:26FromDiscord<dom96> ahh, well, there we go 🙂
14:08:31FromDiscord<Gumber aka Zachary Carter> but I mean still
14:08:37FromDiscord<Gumber aka Zachary Carter> it begs the question why the other two are even in there
14:08:43FromDiscord<Gumber aka Zachary Carter> if they're not working / outdated
14:08:47FromDiscord<dom96> yeah, we need to either remove those files or keep them relatively up to date
14:12:20*PMunch quit (Quit: Leaving)
14:19:01FromDiscord<xflywind> Actually I use phone to share WI-FI with my PC, so that may be the reason (DNS stuff etc). Not because I'm banned.
14:20:23FromDiscord<dom96> Nimble should definitely also give a warning when one of the URLs cannot be accessed
14:25:24FromDiscord<dom96> In reply to @cabboose "Ive been using the": nope, it's probably best to do this until the new Nimble is released. Seems like the issue described above needs to be fixed at the very least.
14:29:14FromDiscord<Gumber aka Zachary Carter> Oh my bad, I figured firewall or some crap
14:35:42FromDiscord<Rika> how do you downgrade nimble?
14:36:25FromDiscord<cabboose> see that plug in the back of your computer?
14:36:26FromDiscord<cabboose> pull it
14:36:28FromDiscord<cabboose> done
14:37:03FromDiscord<Rika> can i do that but for my life
14:37:29FromDiscord<haxscramper> I don't think choosenim supports downgrading any part separately
14:37:37FromDiscord<haxscramper> You can do `nimble install nimble`
14:37:48FromDiscord<haxscramper> `[email protected]`
14:38:05FromDiscord<haxscramper> Ah, well, `13.1` had a version hack from Araq, IIRC it has some problems with isntall as well
14:38:06FromDiscord<Rika> ok, just asked for reference
14:38:08FromDiscord<haxscramper> Then 0.13.0
14:38:39FromDiscord<cabboose> I've been going into my 1.4.8 toolchain bin and using the nimble there manually
14:39:12FromDiscord<Rika> mans crazy
14:39:36FromDiscord<cabboose> I am hurting \:')
14:44:46FromDiscord<Rika> just do what hax said and u will not be hurting
14:44:51*Vladar quit (Quit: Leaving)
14:45:22FromDiscord<cabboose> I am in bit manipulation hell
14:45:28FromDiscord<cabboose> I dont understand this rubbish
14:49:41FromDiscord<Rika> stop twiddlin them bits
14:51:06FromDiscord<cabboose> 🍝
14:52:55FromDiscord<haxscramper> `raise Defect(nil)`
14:54:15FromDiscord<haxscramper> Actually no, sorry, this code is not correct
14:54:16FromDiscord<haxscramper> `raise (ref Defect)(nil)`
14:55:45FromDiscord<cabboose> image.png https://media.discordapp.net/attachments/371759389889003532/887713303751696415/image.png
14:55:48FromDiscord<tandy> sent a code paste, see https://paste.rs/kZ2
14:56:48FromDiscord<Rika> In reply to @tandy "how do i avoid": can you be more specific on your overload? instead of object use SubmissionPayload?
14:56:51FromDiscord<cabboose> exclude the dumphook from utils?
14:57:14FromDiscord<cabboose> just don't import the dumphookz
14:57:44FromDiscord<cabboose> or use module name method syntax
14:57:44FromDiscord<cabboose> like
14:57:45FromDiscord<cabboose> jsony.dumpHooks(hookers)
14:57:45FromDiscord<tandy> i use that overload for a couple of different custom types so i dont htink so↵(@Rika)
14:57:56FromDiscord<Rika> use a "union generic"
14:57:58FromDiscord<tandy> so id do `proc jsony.dumpHook ...`?
14:58:04FromDiscord<cabboose> or import utils except dumpHooks
14:58:10FromDiscord<Rika> `Sub...load or MoreObjects or MoreObjectss"
14:58:12FromDiscord<Rika> (edit) "MoreObjectss"" => "MoreObjectss`"
14:58:39FromDiscord<cabboose> oh
14:58:39FromDiscord<cabboose> right its a hook ofc im dead beat stupid
14:58:40FromDiscord<tandy> the thing is i need the dump hook
14:58:40FromDiscord<cabboose> wait
14:58:41FromDiscord<cabboose> you're using dumphooks from both modules?
14:58:43FromDiscord<cabboose> WHY?!
14:58:43FromDiscord<tandy> `or` or `|` ?↵(@Rika)
14:58:47FromDiscord<Rika> he is not
14:58:55FromDiscord<Rika> both work tandy
14:58:58FromDiscord<tandy> nop, i dont want the default jsony dumphooks
14:58:59FromDiscord<Rika> i personally use or
14:59:01FromDiscord<Rika> some people use |
14:59:15FromDiscord<tandy> this is probably the best solution then↵(@Rika)
14:59:35FromDiscord<cabboose> you could also define the jsony hooks before importing utils
14:59:44FromDiscord<cabboose> I remember running into a similar problem
14:59:47FromDiscord<tandy> the hooks are in utils
14:59:53FromDiscord<tandy> i import them from utils so i can use them
15:00:16FromDiscord<tandy> or maybe the issue is because i import jsony in utils
15:00:21FromDiscord<tandy> but i dont really need it
15:00:31FromDiscord<cabboose> oh is this not a system module
15:00:31FromDiscord<tandy> nah that didnt solve it
15:00:34FromDiscord<cabboose> am i retarded
15:00:56FromDiscord<Rika> cab you need a rest do ya
15:01:26FromDiscord<cabboose> yes
15:02:44FromDiscord<cabboose> it's literally easier to just fix it ourselves than explain
15:02:50FromDiscord<cabboose> i'm sure it's something simple but annoying
15:02:55FromDiscord<cabboose> but my eyes are bleeding
15:03:07FromDiscord<Rika> did u read what i said
15:03:15FromDiscord<Rika> u need a rest u sound cranky
15:03:53FromDiscord<cabboose> ;\_; I go do things for now; I am definitely incapable
15:13:28FromDiscord<tandy> does nim suport circular dependencies yet
15:13:39FromDiscord<tandy> imports i mean
15:13:43FromDiscord<cabboose> there is experimental support
15:13:51FromDiscord<tandy> hmm
15:13:53FromDiscord<cabboose> you have to turn it on
15:13:53FromDiscord<tandy> ok il try it
15:14:13FromDiscord<cabboose> like rub it (but actually search the experimental features, it's there somewhere)
15:18:55*stkrdknmibalz quit (Quit: WeeChat 3.0.1)
15:19:03FromDiscord<tandy> https://nim-lang.org/docs/manual_experimental.html
15:19:06FromDiscord<tandy> couldnt see it here
15:22:04FromDiscord<cabboose> Hmm maybe I'm actually wrong; might have been they were working on it?
15:22:15FromDiscord<haxscramper> https://github.com/nim-lang/Nim/pull/18818
15:22:23FromDiscord<haxscramper> They are working on it right now
15:22:29FromDiscord<haxscramper> Actually there are two alternative implementations
15:23:08FromDiscord<haxscramper> https://github.com/nim-lang/Nim/pull/18822
15:23:42FromDiscord<tandy> hmm i guess il wait
15:23:57FromDiscord<haxscramper> THis probably won't make even in 1.8
15:24:03FromDiscord<haxscramper> Well, that is my prediction
15:24:10FromDiscord<haxscramper> certainly not for 1.6
15:24:57FromDiscord<tandy> is there a timeline ?
15:25:06FromDiscord<tandy> the milestones dont seem to be updated anymore
15:26:41FromDiscord<haxscramper> who knows
15:26:48FromDiscord<tandy> lole
15:26:59FromDiscord<haxscramper> No, I have not seen any concrete timeline
15:27:10FromDiscord<haxscramper> Like, I thought RC 1.6 is our closes goal
15:27:20FromDiscord<haxscramper> But then they jumped lazy semcheck like it is the main part
15:27:30FromDiscord<haxscramper> ARC/ORC is for 2.0 supposedly
15:27:46FromDiscord<haxscramper> IC is in the intermediate state, I have no idea what is going on anymore
15:28:04FromDiscord<haxscramper> I wrote RFC for nimble, but after "status lockfile PR" I can just scratch it
15:28:19FromDiscord<haxscramper> Well, nimble changes are not so dramantic
15:28:24FromDiscord<haxscramper> But I have to account for the shit fallout
15:28:25FromDiscord<cabboose> status libp2p and chronos have to be refactored to be orc/arc friendly pretty sure
15:28:44FromDiscord<leorize> they can just switch to cps \:p
15:28:51FromDiscord<haxscramper> tooling relied on IC
15:28:51FromDiscord<cabboose> that's probably eating a lot of time
15:28:57FromDiscord<haxscramper> So no timeline for tooling improvements
15:29:00FromDiscord<tandy> damn
15:29:05FromDiscord<tandy> tooling really is the big one
15:29:14FromDiscord<haxscramper> well, who uses nimsuggest yeah
15:29:21FromDiscord<haxscramper> not like it is the most complained feature
15:29:24FromDiscord<tandy> i wish nimsuggest supported js target too
15:29:27FromDiscord<haxscramper> cyclic imports are better
15:29:49FromDiscord<haxscramper> More needed
15:29:56FromDiscord<haxscramper> what else
15:30:04FromDiscord<haxscramper> concepts are "sometimes later IDK"
15:30:08FromDiscord<haxscramper> also no timeline
15:30:10FromDiscord<haxscramper> view types
15:30:20FromDiscord<leorize> i have personally given up on seeing packed ast working
15:30:29FromDiscord<haxscramper> they apparently exist, but I don't know what is going on
15:30:42FromDiscord<haxscramper> Well, I can comment on C and C++ interop, because that's what I'm working on
15:30:50FromDiscord<@bracketmaster-5a708063d73408ce4> on the topic of imports, inside file2.nim, I do, `import file1; export file1`
15:31:00FromDiscord<haxscramper> On nimble because I wrote RFC for it
15:31:09FromDiscord<haxscramper> And on better docgen, but right now I'm waiting for 1.6 breakages
15:31:12FromDiscord<tandy> sounds like a lack of communication mainly atm?
15:31:25FromDiscord<haxscramper> tell me someting I don't know
15:31:30FromDiscord<haxscramper> yes
15:31:34FromDiscord<@bracketmaster-5a708063d73408ce4> file one has a bunch of things in it, like type1, type2, proc1, proc2, that it exports
15:31:35FromDiscord<leorize> well there used to be bi-weekly nim meetings
15:31:41FromDiscord<haxscramper> Well, let me quote you another rant of mine
15:31:42FromDiscord<haxscramper> to save time
15:31:48FromDiscord<leorize> and then it's gone
15:32:00FromDiscord<tandy> why not anymore?
15:32:25FromDiscord<tandy> this is kinda sad cos i love nim \:X
15:32:54FromDiscord<@bracketmaster-5a708063d73408ce4> can I have export file1 also export all the exported symbols inside file1?
15:33:02FromDiscord<haxscramper> https://irclogs.nim-lang.org/28-06-2021.html#13:55:06
15:33:06FromDiscord<haxscramper> IRC here
15:33:13FromDiscord<Rika> In reply to @@bracketmaster-5a708063d73408ce4 "can I have export": ...does it not do that bracket?
15:34:05FromDiscord<haxscramper> to figure out what is going on you have to rely on the people who are here for a long time
15:34:22FromDiscord<haxscramper> and they will quickly come up with a "latest news digest" for you
15:35:09FromDiscord<tandy> i agree with you
15:35:36FromDiscord<tandy> understand that writing a blog post once a month can be hard though, doesnt nim get financial contributions so they can pay a contributor to do this?
15:36:21FromDiscord<tandy> idealy devs will keep milestones up to date, and the writer can summarise it
15:36:46FromDiscord<haxscramper> ffs, it does not have to be a "blog post once a month"
15:36:57FromDiscord<tandy> oh mb
15:36:58FromDiscord<haxscramper> I would be satisfied with quick checklist of promised features
15:37:06FromDiscord<haxscramper> Or what they are working on
15:37:44FromDiscord<haxscramper> ● We are planning to release nim 1.6 in the next month↵● Plan to add support for X Y Z↵● Right now there are some issues with Q, we are working on it before our release
15:37:44FromDiscord<tandy> how often?
15:37:53FromDiscord<haxscramper> Once a month?
15:38:06FromDiscord<haxscramper> Or at least with some frequency
15:38:06FromDiscord<tandy> yeah i mean thats a blog post
15:38:11FromDiscord<haxscramper> Not like this bi-weekly
15:38:15FromDiscord<leorize> I proposed using github project to communicate
15:38:16FromDiscord<tandy> but it doesnt need to be big yeah
15:38:22FromDiscord<haxscramper> meeting that does not exist now
15:38:24FromDiscord<leorize> and it worked for a week or two
15:39:04FromDiscord<tandy> yeah i like that method too
15:39:05FromDiscord<haxscramper> I would be satisfied with anything
15:39:29FromDiscord<tandy> do we need to email araq or something?
15:39:41FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3yYB
15:39:52FromDiscord<haxscramper> we have nim forum with "announcements" section
15:40:54FromDiscord<haxscramper> the problem is not how, we are not cavemen so I guess we can figure someting out, the problem is complete lack for interest in explaining clearly what they want to do in genral
15:40:55FromDiscord<haxscramper> like fusion
15:41:00FromDiscord<haxscramper> omg, this is an absolute farce
15:41:25FromDiscord<dom96> IMO tooling should be number 1 priority
15:41:43FromDiscord<haxscramper> the idea was tolerable, but it just died nowhere and it's rotting corpse annoys me every day
15:42:02FromDiscord<dom96> nimsuggest has been around for a long time and hasn't improved since the first release as far as I can tell
15:42:09FromDiscord<Rika> the issue at its core is that theres just not enough people here working
15:42:22FromDiscord<haxscramper> IC is crucial for some code analysis, for haxdoc, for general tooling, for compilation speeds
15:42:27FromDiscord<haxscramper> Did I forget anything?
15:42:30FromDiscord<leorize> you should try looking at the compiler
15:42:33FromDiscord<@bracketmaster-5a708063d73408ce4> What is IC?
15:42:34FromDiscord<haxscramper> lazy semcheck is needed for .. cyclic imports?
15:42:40FromDiscord<Rika> incremental compilation
15:42:48FromDiscord<@bracketmaster-5a708063d73408ce4> ah
15:43:05FromDiscord<@bracketmaster-5a708063d73408ce4> even though nim lacks IC, its still lightyears faster than rust
15:43:08FromDiscord<leorize> it's an undocumented mess that requires you to speak and breath nim to keep working on it without being insane
15:43:08FromDiscord<@bracketmaster-5a708063d73408ce4> in my experience
15:43:29FromDiscord<Rika> rust is a really low bar
15:43:35FromDiscord<@bracketmaster-5a708063d73408ce4> sounds like most compilers
15:43:35FromDiscord<Rika> in terms of speed, i mean
15:43:41FromDiscord<leorize> one of IC feature is not really "fast compilation" IMO
15:44:10FromDiscord<cabboose> That was a fantastic read [haxscramper](https://matrix.to/#/@haxscramper:matrix.org)
15:44:13FromDiscord<cabboose> 10/10 rant
15:44:29FromDiscord<leorize> it's packedast, a serializable form of AST can be operated on by other tools
15:45:01FromDiscord<haxscramper> @dom96\: If #300 is not convincing enough to work on tooling first, I don't know what is
15:45:03FromDiscord<leorize> the idea is that compiler produce packedast, then tooling can read off that
15:45:30FromDiscord<leorize> its impl is stalled by now afaik
15:45:44FromDiscord<leorize> and ofc, the packedast module not having a single comment
15:46:00FromDiscord<leorize> such is typical of nim compiler code
15:46:48FromDiscord<@bracketmaster-5a708063d73408ce4> the best compiler code I've ever looked at has been scheme compiler code
15:46:53FromDiscord<@bracketmaster-5a708063d73408ce4> scheme compilers are really small
15:47:16FromDiscord<dom96> In reply to @haxscramper "<@132595483838251008>\: If #300 is": I'm surprised Status isn't pushing for tooling more
15:47:33FromDiscord<leorize> they just brided lockfiles in
15:47:45FromDiscord<haxscramper> "lockfiles"
15:47:49FromDiscord<leorize> they're pushing, but in the way they like
15:48:06FromDiscord<dom96> Having nice Cmd+Hover/Cmd+Click would be really amazing for everyone including their devs
15:48:30FromDiscord<cabboose> you mean cmd click that actually WORKS
15:48:38FromDiscord<dom96> of course
15:48:47FromDiscord<cabboose> once a million years I see something come from it
15:48:48FromDiscord<cabboose> and i get excited
15:48:56FromDiscord<cabboose> and then it dies the next second
15:49:02FromDiscord<haxscramper> I see something come out of it every time I use it
15:49:05FromDiscord<cabboose> but for those 3 seconds
15:49:08FromDiscord<haxscramper> usually it is a smoke from my CPU
15:49:09FromDiscord<cabboose> I feel like a productivity god
15:49:22FromDiscord<leorize> and tbh it's not like Nim doesn't have enough devs
15:49:28FromDiscord<dom96> I've had it disabled for years, it's just too annoying
15:50:06FromDiscord<leorize> it's that the compiler is pretty much impossible to get into if you don't look at it all day
15:50:38FromDiscord<tandy> true, but its beautiful
15:50:41FromDiscord<Rika> so someone has to put in that day to start commenting, and i wish i could
15:50:43FromDiscord<haxscramper> no
15:50:46FromDiscord<haxscramper> just kill me please
15:50:52FromDiscord<haxscramper> this abomination of a
15:51:02FromDiscord<@bracketmaster-5a708063d73408ce4> I feel like this convo is the beginning of neonim
15:51:13FromDiscord<dom96> I think you're all being a bit too harsh
15:51:18FromDiscord<Rika> fragmenting the community will not help
15:51:20FromDiscord<leorize> in a way it's already happened
15:51:28FromDiscord<leorize> just not in this chat
15:51:37NimEventerNew post on r/nim by switchitout: Is there a in-depth resource to learn about "sink" and "lent" annotations / ARC?, see https://reddit.com/r/nim/comments/post11/is_there_a_indepth_resource_to_learn_about_sink/
15:51:50FromDiscord<haxscramper> well, these problems are real, I don't see any that explicitly overblow anything↵(@dom96)
15:51:51FromDiscord<cabboose> Hahahahaha
15:51:56FromDiscord<haxscramper> No communication with anything
15:52:01FromDiscord<haxscramper> No comments for the main code base
15:52:06FromDiscord<cabboose> this newest post
15:52:09FromDiscord<cabboose> kind of relates
15:52:22FromDiscord<dom96> I agree that they are all real, but there is no need to call it an abomination
15:52:58FromDiscord<leorize> have you tried fixing a compiler bug lately?
15:53:00FromDiscord<haxscramper> well, sorry for using disturbing words
15:53:14FromDiscord<dom96> What's unclear is whether this is a problem with all compilers or just Nim's
15:53:28FromDiscord<haxscramper> O don't care what goes on in clang compoile
15:53:29FromDiscord<leorize> it's just nim
15:53:35FromDiscord<haxscramper> or in rust
15:53:36FromDiscord<haxscramper> or in scheme
15:53:36FromDiscord<haxscramper> or in idris
15:53:39FromDiscord<haxscramper> not my problem
15:53:43FromDiscord<haxscramper> I write nim, here and now
15:53:58FromDiscord<@bracketmaster-5a708063d73408ce4> Well, its good to be multilangual
15:54:03FromDiscord<@bracketmaster-5a708063d73408ce4> All compilers have their problems
15:54:07FromDiscord<Rika> thats not the point
15:54:11FromDiscord<haxscramper> ANd I work with nim compiler API
15:54:31FromDiscord<leorize> just look at zig, they used to be smaller than nim, and now their devs dwarfs nim size and scope
15:54:33FromDiscord<haxscramper> nim compiler API
15:55:03FromDiscord<@bracketmaster-5a708063d73408ce4> are you saying that zig has a better compiler dev community?
15:55:05FromDiscord<cabboose> Saying "all x and z have problems too" is a bad argument in any scenario
15:55:23FromDiscord<haxscramper> it's like saying that other package managers have some problems
15:55:24FromDiscord<haxscramper> so what
15:55:32FromDiscord<dom96> sure, I agree
15:55:35FromDiscord<@bracketmaster-5a708063d73408ce4> V also cam along fairly quickly, seems like V has a number of devs working on compiler internals
15:55:36FromDiscord<leorize> yes, better onboarding, better communication, etc.
15:55:49FromDiscord<dom96> I'm actually just curious how other compilers are
15:55:53FromDiscord<dom96> I'm not excusing anything
15:56:18FromDiscord<leorize> let's just say that nim is stagnating
15:56:19FromDiscord<haxscramper> they hyped in tons of people, quickly rewrote the compiler into something that is pleasant to work with, and their lead devs are super responsive to discussions
15:56:25FromDiscord<haxscramper> seems like that worked for them
15:56:39FromDiscord<leorize> we have unique features that keep users here
15:56:52FromDiscord<@bracketmaster-5a708063d73408ce4> how do you think V got the leads to be super responsive?
15:57:11FromDiscord<@bracketmaster-5a708063d73408ce4> Nim's macros originally brought me here
15:57:14FromDiscord<leorize> but half-assed, impl, right
15:57:20FromDiscord<@bracketmaster-5a708063d73408ce4> But I quickly found too many rough edges
15:57:27FromDiscord<@bracketmaster-5a708063d73408ce4> But I already wrote so much nim code
15:57:29FromDiscord<haxscramper> I mean ... they just people who engage in discussion with community
15:57:30FromDiscord<@bracketmaster-5a708063d73408ce4> So I guess I"m stuck
15:57:46FromDiscord<haxscramper> At least that's an impression I get from their discord
15:57:55FromDiscord<dom96> All their leads are also on Twitter
15:57:56FromDiscord<haxscramper> Of course they all have NIH syndrome
15:58:03FromDiscord<haxscramper> and you can get banned for shit-talking
15:58:07FromDiscord<haxscramper> but that is another topic
15:58:10FromDiscord<dom96> Which really helps drive engagement
15:58:15FromDiscord<leorize> as is typical of go devs \:p
15:58:34FromDiscord<tandy> NIH?
15:58:35FromDiscord<dom96> The amount of times I've tried to get Araq to answer HN/Reddit questions...
15:58:42FromDiscord<haxscramper> not invented here
15:59:37FromDiscord<haxscramper> we have a community manager, no?↵(@dom96)
15:59:39FromDiscord<haxscramper> miran
15:59:50*rockcavera quit (Remote host closed the connection)
15:59:53FromDiscord<haxscramper> At least someone described them like this
16:00:11FromDiscord<dom96> As far as I understand, yes.
16:00:21FromDiscord<cabboose> I always wondered if nim had a community manager; I thought nim did because I saw some posts
16:00:30FromDiscord<cabboose> but now that I'm more involved, I think it was a farce hahaha
16:00:39FromDiscord<cabboose> Feels more like the wild west
16:00:47FromDiscord<Rika> it is
16:00:52FromDiscord<Rika> not really feels because it is
16:00:56FromDiscord<dom96> and yet I still do a lot of tweeting ...
16:01:00FromDiscord<cabboose> A community manager is a useless position if there is no communication with the community on behalf of the devs
16:01:01FromDiscord<@bracketmaster-5a708063d73408ce4> @haxscramper\:matrix.org - are you considering moving to another language?
16:01:16FromDiscord<cabboose> which requires the devs to comm with the community manager
16:01:22FromDiscord<haxscramper> no, nim is a hack, but nothing else comes close with features I need
16:01:33FromDiscord<haxscramper> But that does not mean I like to work with this
16:01:36FromDiscord<@bracketmaster-5a708063d73408ce4> what features do you need?
16:01:40FromDiscord<cabboose> I don't think it's a matter of tweeting as much as it is about discussing what's happening
16:01:59FromDiscord<cabboose> like haxscramper was saying
16:02:01FromDiscord<dom96> Of course
16:02:07FromDiscord<haxscramper> macros, C++ interop, C interop, basic support for inheritace, tolerable stacktraces, access to compiler API via the same language
16:02:12FromDiscord<haxscramper> sum types
16:02:22FromDiscord<cabboose> But you have made contributions in bringing people in; I mean I got in through your book
16:02:30FromDiscord<@bracketmaster-5a708063d73408ce4> C++ interop in Nim isn't really great
16:02:40FromDiscord<@bracketmaster-5a708063d73408ce4> But that's probably C++'s fault more than anything else
16:02:42FromDiscord<cabboose> haxscramper is making it great
16:02:44FromDiscord<haxscramper> I"m working on it
16:02:50FromDiscord<haxscramper> "working"
16:02:53FromDiscord<haxscramper> just kill me please
16:02:56FromDiscord<dom96> Writing blog posts, getting people to write blog posts, setting up meetups, making merch
16:03:05FromDiscord<cabboose> Hows that blown bomb going
16:03:10FromDiscord<dom96> all things I'd expect a community manager to do, and to be fair miran does do multiple of those things
16:03:22FromDiscord<@bracketmaster-5a708063d73408ce4> Honestly, do any languages have great C++ interop?
16:03:33FromDiscord<@bracketmaster-5a708063d73408ce4> My whole position is avoid C++ like the plague
16:03:35FromDiscord<tandy> C++
16:03:46FromDiscord<@bracketmaster-5a708063d73408ce4> ahaha!!
16:03:49FromDiscord<haxscramper> alright, I'm done withnim
16:03:53FromDiscord<haxscramper> goodbye all
16:04:00FromDiscord<@bracketmaster-5a708063d73408ce4> wait
16:04:06FromDiscord<@bracketmaster-5a708063d73408ce4> you can't just leave us
16:04:14FromDiscord<dom96> but I also don't like discussing what someone does and doesn't do here like this
16:04:18FromDiscord<Rika> especially for C++...
16:04:31FromDiscord<haxscramper> so what do you propose↵(@dom96)
16:04:35FromDiscord<haxscramper> write a collective letter?
16:04:57FromDiscord<haxscramper> and where do you want to discuss this
16:05:01FromDiscord<@bracketmaster-5a708063d73408ce4> @haxscramper\:matrix.org - you can design your own lang
16:05:02FromDiscord<haxscramper> official nim real-time chat
16:05:06FromDiscord<enthus1ast> maybe do not thing about issues, but solutions
16:05:08FromDiscord<@bracketmaster-5a708063d73408ce4> if its good, maybe I'll join 😛
16:05:12FromDiscord<cabboose> I don't think miran has any fault if they are not informed by higher up whats happening internally to communicate it to the community
16:05:12FromDiscord<haxscramper> discussin about nim managemetn
16:05:22FromDiscord<cabboose> have you seen the RFCs for nim before?
16:05:50FromDiscord<enthus1ast> sometimes, but i'm not REALLY informed
16:06:05FromDiscord<cabboose> I mean; there's a lot of lovely solutions on there
16:06:08FromDiscord<enthus1ast> [Edit](https://discord.com/channels/371759389889003530/371759389889003532/887730759027269673): maybe do not think about issues, but solutions
16:06:14FromDiscord<cabboose> and some of them
16:06:15FromDiscord<cabboose> are almost
16:06:15FromDiscord<cabboose> ancient
16:06:16FromDiscord<cabboose> almost
16:06:16FromDiscord<haxscramper> you have to be, otherwise you are out of the loop in this community
16:06:20FromDiscord<haxscramper> have to be informed
16:06:41FromDiscord<haxscramper> like read all of this random discussions where Araq shares his opinon on stdlib evolution
16:06:53FromDiscord<Rika> a lot of them are "solved" and have agreed-upon solutions
16:06:54FromDiscord<haxscramper> then there aare multiple RFC
16:06:55FromDiscord<haxscramper> fusion
16:06:56FromDiscord<haxscramper> some random crap
16:06:57FromDiscord<Rika> jsut a matter of impl
16:07:08FromDiscord<haxscramper> and then nobody knows how stdlib evolves
16:07:11FromDiscord<haxscramper> have you heard of atlast?
16:07:13FromDiscord<haxscramper> atlas\
16:07:19FromDiscord<enthus1ast> nope
16:07:20FromDiscord<cabboose> ?
16:07:30FromDiscord<haxscramper> planned nim tool to bundle stdlib packages together
16:07:38FromDiscord<Rika> atlas is that thing for compiler to rely on packages right
16:07:39FromDiscord<cabboose> Ahyeah
16:07:48FromDiscord<haxscramper> idk if this is announced, but they worked on it for some time
16:07:56FromDiscord<haxscramper> it is even merged
16:07:57FromDiscord<cabboose> I remember seeing it somewhere
16:07:58FromDiscord<Rika> barely anyone knows about it
16:08:02FromDiscord<haxscramper> it is for internal use though
16:08:52*rockcavera joined #nim
16:08:52*rockcavera quit (Changing host)
16:08:52*rockcavera joined #nim
16:10:23FromDiscord<haxscramper> it also does not help that a lot of nim features are started in an intermediate experimental state
16:10:32FromDiscord<haxscramper> and they hang in there for idk how long
16:10:39FromDiscord<haxscramper> letting community be the test suite is kind of
16:11:08FromDiscord<haxscramper> "important packages" is basically - "nim compiler is valid if it can comile package X Y and Z"
16:11:16FromDiscord<haxscramper> and then core devs PR fixes to these packages
16:11:19FromDiscord<dom96> @haxscramper I would suggest chatting with miran or Araq directly
16:11:20FromDiscord<haxscramper> so they can unblock compioler
16:11:23FromDiscord<haxscramper> compiler\
16:12:50FromDiscord<@bracketmaster-5a708063d73408ce4> @haxscramper\:matrix.org - have you considered dale?
16:12:50FromDiscord<@bracketmaster-5a708063d73408ce4> https://github.com/tomhrr/dale
16:12:52nrds<R2D299> itHub: 7"Lisp-flavoured C"
16:12:53FromDiscord<cabboose> Shouldn't there be someone here to be monitoring and communicating on behalf of the devs?
16:13:17FromDiscord<haxscramper> I have tens of thousands of SLOC of nim code
16:13:23FromDiscord<haxscramper> I'm not interested in switching now
16:14:00FromDiscord<haxscramper> also "lisp-flavored" anything makes be feel sick
16:14:12FromDiscord<@bracketmaster-5a708063d73408ce4> ok - not a lisp fan - I get it
16:14:20FromDiscord<haxscramper> Lisp is not aa language with good "flavor"
16:14:31FromDiscord<haxscramper> It is a language with good ideas
16:14:32FromDiscord<haxscramper> Like ast macros
16:14:32FromDiscord<@bracketmaster-5a708063d73408ce4> But if you want compilers that are nice to work on, lisp is really the only way to go
16:14:40FromDiscord<haxscramper> now
16:14:41FromDiscord<haxscramper> no\
16:14:48FromDiscord<@bracketmaster-5a708063d73408ce4> compilers written in lisp are pretty readable IMO
16:14:50FromDiscord<cabboose> m8 are you trying to poke the bear?
16:14:59FromDiscord<Yardanico> nice discussion going on in #main
16:15:03FromDiscord<haxscramper> the one way to go with good compilers is writing docs
16:15:21FromDiscord<haxscramper> Compiler is just a code base
16:15:25FromDiscord<haxscramper> If it is commented and explained it is better
16:15:29FromDiscord<haxscramper> Language does not matter
16:15:38FromDiscord<cabboose> It was all @cabboose ban him
16:16:38FromDiscord<cabboose> At the end of the day, the people who would be the most angry about the status quo would be the ones who care the most about it
16:16:39FromDiscord<leorize> if you ever want to cry, try touching nim's sigmatch
16:17:03FromDiscord<leorize> in particular, try figuring out how the information flow between sem \<-\> sigmatch
16:17:08FromDiscord<cabboose> Aiya
16:17:41FromDiscord<@bracketmaster-5a708063d73408ce4> In my experience, compilers aren't the paragon of documentation. I haven't touched Nim's compiler, but GCC for example is basically requires a few months of study before you can do anything useful with it
16:17:58FromDiscord<@bracketmaster-5a708063d73408ce4> But yeah, roadmaps for nim would be nice
16:18:01FromDiscord<Rika> but gcc is old as balls?
16:18:02FromDiscord<haxscramper> AND SO WHAT
16:18:27FromDiscord<haxscramper> there is a shit somehwere, good, now we can disregard every complaint?
16:18:38FromDiscord<haxscramper> let me count number of comment lines in nim compiler
16:19:05FromDiscord<cabboose> I think he's trying to antagonise you
16:19:07FromDiscord<haxscramper> also, there is no spec for typed AST
16:19:35*Vladar joined #nim
16:19:59FromDiscord<@bracketmaster-5a708063d73408ce4> well...
16:20:28FromDiscord<@bracketmaster-5a708063d73408ce4> I wasn't really -just trying to share some experience
16:20:53FromDiscord<haxscramper> well, the internals of a compiler is a niche compaint, we don't have thousands of nim users that work with compiler
16:21:01FromDiscord<haxscramper> But other features are communicated just as badly
16:21:25FromDiscord<leorize> we should have more than 3 people working on the compiler, at least
16:21:37FromDiscord<leorize> is it still 3? I don't know who is on paying roster nowadays
16:21:49FromDiscord<cabboose> This is what happens when a mans project explodes from an update
16:21:52FromDiscord<haxscramper> We are currently working on IC, ARC/ORC, Lazy semcheck, View types and other things
16:22:30FromDiscord<haxscramper> Well, I'm not much beter, hcparse/haxdoc are like "big new thing", but who knows their state
16:22:31FromDiscord<haxscramper> I certainly don't
16:22:47FromDiscord<haxscramper> For this I have to talk to a guy who writes my code
16:22:58FromDiscord<xflywind> Just araq and timothee work on compiler in recent months.
16:23:37*syl_ joined #nim
16:23:40*syl_ is now known as syl
16:24:13FromDiscord<haxscramper> It took me about a couple of months to get into compiler internals
16:24:39FromDiscord<haxscramper> And I had an absolute thermonuclear solution for working with unfamilliar code
16:24:40FromDiscord<haxscramper> sourcetrail/haxdoc
16:24:41FromDiscord<haxscramper> it worked then
16:26:46FromDiscord<xflywind> Add them to important packages?
16:27:01FromDiscord<haxscramper> no, thanks
16:27:13FromDiscord<haxscramper> This does not make any sense to me
16:27:16FromDiscord<haxscramper> compiler breaks code
16:27:32FromDiscord<haxscramper> now you specifically play around my code not to break it
16:27:52FromDiscord<haxscramper> Also this is not "important" package yet anyway
16:27:54FromDiscord<haxscramper> it is like
16:28:01FromDiscord<haxscramper> I tell everyone how good it is
16:28:26FromDiscord<haxscramper> and when 1.6 finally releases I will fix it for new version
16:28:32FromDiscord<leorize> one day nim will have the CI infra to test all packages
16:28:34FromDiscord<leorize> one day...
16:28:48FromDiscord<cabboose> I literally wanted it today
16:28:57FromDiscord<cabboose> And I am an impatient zoomer
16:28:59FromDiscord<cabboose> so this is unacceptable
16:29:09FromDiscord<@bracketmaster-5a708063d73408ce4> what is a zoomer?
16:29:11FromDiscord<haxscramper> https://www.hyrumslaw.com/
16:29:18FromDiscord<haxscramper> hyrim-style CI
16:29:30FromDiscord<haxscramper> dont' spec
16:29:58FromDiscord<haxscramper> just write all the code you can write and hope someone catches a bug
16:32:19FromDiscord<haxscramper> not like I know of a surefilre way to write a code without bugs
16:32:19FromDiscord<haxscramper> I would just write nim then myself
16:32:20FromDiscord<cabboose> the new generation of dopamine deprived human beings
16:32:21FromDiscord<cabboose> Besides not writing at all
16:34:09FromDiscord<leorize> my trick to less bugs is to test more
16:34:31FromDiscord<leorize> tests first, then make the simplest impl that will solve the problem
16:34:41FromDiscord<leorize> then you can think of fastify-ing it
16:34:45FromDiscord<dom96> why don't we have the infra to do that?
16:35:04FromDiscord<dom96> We can get more DO droplets if needed
16:35:28FromDiscord<haxscramper> sent a long message, see http://ix.io/3yYL
16:36:00FromDiscord<dom96> I also still have access to the gcc build farm which we used to test exotic architectures back in the nimbuild days
16:36:03FromDiscord<haxscramper> Also, some built-in features have severe limitations, like `method` being very slow etc. but those are minor complaints\`
16:36:20FromDiscord<haxscramper> `nkError` probably should not be added to this list
16:37:04FromDiscord<enthus1ast> i can imagine that if distrubuted as a container, some community members are willing to run automated tests↵(@dom96)
16:37:58FromDiscord<xflywind> That sounds hard to maintain.
16:38:08FromDiscord<Rika> a container?
16:38:15FromDiscord<dom96> In reply to @flywind "That sounds hard to": yep, that's always the problem
16:38:30FromDiscord<dom96> a CI infra for something as complex as a compiler really needs at least one full-time person IMO
16:38:49FromDiscord<enthus1ast> i mean the IC infrastructure as a container
16:38:55FromDiscord<enthus1ast> then the packets are pulled in and tested
16:39:08FromDiscord<enthus1ast> then containers for cross compilation
16:39:28FromDiscord<dom96> Sure, you could do this to resolve the capacity problem
16:39:54FromDiscord<dom96> afaik gitlab's CI makes this quite easy
16:41:42FromDiscord<haxscramper> I don't know how import it is really, but having no tool for code coverage is annoying
16:42:14FromDiscord<leorize> i wrote a coverage ci for nim somewhere
16:42:37FromDiscord<enthus1ast> You're talking about test coverage?
16:43:29FromDiscord<leorize> but the main issue is that gcov-style coverage is unaware of nim execution
16:44:08FromDiscord<haxscramper> https://github.com/nim-lang/Nim/pull/15827#issuecomment-906577116
16:44:24*leth quit (Read error: Connection reset by peer)
16:44:40FromDiscord<haxscramper> basically all tools to get runtime properties of the code are pain
16:45:11FromDiscord<haxscramper> painful to use and don't work with nim, and/or don't work with large code bases
16:45:18FromDiscord<haxscramper> Use outdated intermediate store formats
16:45:29FromDiscord<haxscramper> Or ad-hoc pretty printed formats
16:45:34FromDiscord<haxscramper> Can't really be integrated into anything
16:47:40FromDiscord<enthus1ast> I have absolutely no knowledge about this and maybe this is naive, but would it maybe possible to have an approach like AFL does it?
16:51:11FromDiscord<cabboose> The Australian Football League?
16:51:57FromDiscord<Rika> fuzzing?
16:52:17FromDiscord<enthus1ast> https://en.wikipedia.org/wiki/American_fuzzy_lop_(fuzzer)
16:52:25FromDiscord<Rika> "american fuzzy lop
16:52:26FromDiscord<Rika> yeah]
16:52:27FromDiscord<Rika> that
16:52:48FromDiscord<enthus1ast> i don't know exactly how it works, but it can somehow see all the code trees that where taken
16:53:50FromDiscord<Rika> i tried it
16:53:54FromDiscord<Rika> its not fast
16:53:57FromDiscord<Rika> (of course)
16:54:08FromDiscord<Rika> basically you feed it an input
16:54:09FromDiscord<leorize> https://github.com/alaviss/Nim/commits/coverage \<- my previous attempt at implementing coverage testing for nim
16:54:14FromDiscord<Rika> it uses that input to generate more inputs
16:54:26FromDiscord<Rika> and tests it on the binary, see if it crashes
16:54:44FromDiscord<leorize> i forgot why i stopped this stuff by now, but it's there if anyone is interested
16:54:49FromDiscord<enthus1ast> i do not mean in the fuzzing aspect, but "these code tests visit about 40% of all possible routes"
16:54:53FromDiscord<Rika> its good for looking for obscure parser bugs
16:55:00FromDiscord<Rika> but not good for logic issues
16:56:39FromDiscord<haxscramper> Code traces can be good if you have two examples - working and not.
16:56:47FromDiscord<haxscramper> And you run the code, and compare things
16:57:00FromDiscord<haxscramper> It is not a dealbreker
16:57:08FromDiscord<Rika> yeah it doesnt see if the output is correct
16:57:15FromDiscord<Rika> it just checks if it doesnt crash
16:57:46FromDiscord<leorize> PBT is the fuzzing for logic
16:58:02FromDiscord<haxscramper> Beef suggested to use all examples from the issues
16:58:06FromDiscord<Rika> pbt?
16:58:10FromDiscord<haxscramper> I tests as well
16:58:23FromDiscord<enthus1ast> a few years ago, i fuzzed std/asynchttpserver for fun
16:58:28FromDiscord<enthus1ast> found a lot of crashes
16:58:30FromDiscord<haxscramper> It was a discussion about this idiotic stale bot
16:58:43FromDiscord<leorize> property based testing↵(@Rika)
16:58:47FromDiscord<Rika> i see
16:58:50FromDiscord<Rika> ive heard of it
17:00:39*ozzz quit (Quit: Bye)
17:03:25*ozzz joined #nim
17:16:55FromDiscord<cabboose> sent a code paste, see https://play.nim-lang.org/#ix=3yZ1
17:17:09FromDiscord<cabboose> Is this true?
17:17:15FromDiscord<cabboose> in regards to 48-bit virtual addresses
17:17:31FromDiscord<leorize> you can read wikichips for that I guess
17:17:39FromDiscord<leorize> do they have references?
17:18:10FromDiscord<cabboose> Not for that claim hahaha
17:19:00FromDiscord<leorize> > ↵> except very recent Intel designs↵>
17:19:03FromDiscord<leorize> that's concerning
17:19:30FromDiscord<leorize> given that intel has only recently moved on from skylake
17:19:59FromDiscord<leorize> I guess you just have to test the property that they're trying to exploit to be sure
17:20:21FromDiscord<cabboose> Well does alignment have a cost to it?
17:20:34FromDiscord<leorize> yea
17:20:53FromDiscord<leorize> a lot of atomics and stuff only work on aligned address
17:21:14FromDiscord<leorize> though mratsim would have better sources for this
17:25:39FromDiscord<cabboose> Seems silly to try implement something on a cpu hack
17:25:53FromDiscord<cabboose> and else I only have the option of alignment
17:26:06FromDiscord<cabboose> so alignment it is
17:27:01FromDiscord<leorize> cpu hack is the basis of extremely high-performance computing
17:27:57FromDiscord<cabboose> I guess it can just be a switch that defaults to the cpu hack then?
17:28:22FromDiscord<leorize> I guess try to implement it as close to the authors design as possible
17:28:40FromDiscord<leorize> then try twiddling with the details after
17:29:29FromDiscord<cabboose> That's a funny one; their algorithm pseudocode is different from their article to their repo
17:29:29FromDiscord<cabboose> and then different to their cpp implementation
17:29:30FromDiscord<cabboose> hahahaha
17:29:46FromDiscord<cabboose> But yis I do as you say sensei
17:30:27FromDiscord<leorize> a lot of papers have this idea that you completely understand some of the underlying concepts
17:39:26FromDiscord<ValorZard> hey does anyone know what happened to Arne Döring
17:40:16FromDiscord<leorize> arne left nim for the most part
17:40:16FromDiscord<cabboose> well they do atomic fetchAdds which is supposed to increment the value of the 0'd bits so I assume they just do alignment
17:40:48FromDiscord<leorize> krux sometimes hang around in cps room but I haven't seen him lately
17:44:27FromDiscord<tandy> Coco kinda works
17:44:31FromDiscord<ValorZard> In reply to @leorize "arne left nim for": does anyone know why?
17:44:46FromDiscord<haxscramper> "kinda"
17:44:52FromDiscord<haxscramper> see #13 on their issue tracker
17:45:25FromDiscord<leorize> he got fed up with the lack of improvement to the compiler, and that his attempts were rejected
17:45:46FromDiscord<leorize> there's a lot more to it, but that's what on top of my head atm
17:47:08FromDiscord<ValorZard> I see. Are there plans to improve the complier?
17:47:35FromDiscord<tandy> a victim of things in the above discussion...?
17:47:45FromDiscord<cabboose> If you look at kruxs recent work looks like he's on Odin now \:x
17:47:55FromDiscord<leorize> yea
17:47:59FromDiscord<ValorZard> yeah thats actually where I ran into him
17:48:08FromDiscord<cabboose> he's doing work on their compiler \:/
17:48:19FromDiscord<leorize> he is not the first to leave, that is
17:48:29FromDiscord<ValorZard> oof is the leadership really that bad?
17:48:36FromDiscord<leorize> he is the first core dev to, though
17:49:18FromDiscord<haxscramper> In reply to @バロザード "oof is the leadership": There is a nuclear rant just above, though I probable made things sound overly dramatic
17:49:31FromDiscord<ValorZard> Ah
17:49:53FromDiscord<haxscramper> And it is mostly about lack of communication of where leadership wants to steer the language at the moment
17:50:30FromDiscord<haxscramper> Like it is not 1v1 fight for every PR at least, but general neglect of
17:50:44FromDiscord<haxscramper> idk, communication
17:50:54FromDiscord<ValorZard> Isee
17:54:00FromDiscord<haxscramper> https://forum.nim-lang.org/t/7983 stuff like this should be more common
17:55:11FromDiscord<deech> How do I `expandArc` with a qualified function, eg. `--expandArc:blah.myProc`?
17:55:25FromDiscord<leorize> you... don't
17:55:56FromDiscord<leorize> I believe expandArc works only on procs of the main unit
17:57:03FromDiscord<deech> Is there a way besides expandArc to see what's being destroyed or copied?
18:04:47FromDiscord<tandy> should i just fork jsony or is there a way to fix this?
18:04:47FromDiscord<tandy> sent a code paste, see https://play.nim-lang.org/#ix=3yZj
18:04:48FromDiscord<tandy> this worked for one hook, but my other more general hook is having the same error↵(@Rika)
18:05:03FromDiscord<cabboose> so like
18:05:04FromDiscord<cabboose> can you not do
18:05:20FromDiscord<cabboose> `jsony.dumpHook(s, v.get())`
18:05:25FromDiscord<Rika> make the more generic hooks less generic? can you do an example
18:05:30FromDiscord<Rika> no
18:05:31FromDiscord<Rika> he cant
18:05:36FromDiscord<Rika> dumpHook is not called by him
18:06:00FromDiscord<Rika> but "internally" by jsony
18:06:17FromDiscord<tandy> what im doing is telling jsony not to write to json where the type's field is an option none()↵(@Rika)
18:06:38FromDiscord<Rika> idk i think hooks for option are already defined
18:06:48FromDiscord<Rika> is there no docs on overriding default hooks?
18:06:56FromDiscord<cabboose> ... yeah there is
18:07:06FromDiscord<tandy> yeah but they dont skip none()s↵(@Rika)
18:07:32FromDiscord<cabboose> uhm
18:07:47FromDiscord<cabboose> fork it
18:07:47FromDiscord<cabboose> pretty sure you can tell jsony to do things like that
18:07:48FromDiscord<cabboose> well
18:07:51FromDiscord<cabboose> fuck it
18:07:51FromDiscord<cabboose> that rhymes
18:08:06FromDiscord<tandy> epic..
18:08:12FromDiscord<Rika> cab legit you're sounding strange
18:08:27FromDiscord<Rika> tandy might be helpful to raise the issue in the repo
18:08:36FromDiscord<haxscramper> Wouldn't this create invalid json?
18:08:39FromDiscord<Rika> theres a comma after tandy sorry
18:08:48FromDiscord<Rika> hax wdym?
18:08:48FromDiscord<cabboose> I wIlL eAt YoUr SoUl RiKa
18:08:49FromDiscord<haxscramper> `field: <skipped none(int)>`
18:08:54FromDiscord<Rika> `null`?
18:09:00FromDiscord<haxscramper> will make `"field":`
18:09:00FromDiscord<Rika> json has null doesnt it
18:09:03FromDiscord<cabboose> Okay i'm going to bed goodnight friends
18:09:04FromDiscord<haxscramper> And it should do `"field":null`
18:09:09FromDiscord<tandy> it would result in something like this↵{"field"\: ""}
18:09:18FromDiscord<tandy> where field is an option[string]
18:09:30FromDiscord<Rika> i thought when you mean skipped field you meant the field isnt put at all in the json
18:11:34FromDiscord<tandy> the union thing is to solve this same bug im having
18:11:35FromDiscord<tandy> yep, sorry
18:11:41FromDiscord<tandy> sent a code paste, see https://play.nim-lang.org/#ix=3yZl
18:12:34FromDiscord<haxscramper> at the very last
18:12:36FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3yZm
18:13:05FromDiscord<tandy> it does work, but for this other small dumpHook i get ambiguous call error
18:13:43FromDiscord<haxscramper> Alright, so you want to override some of the default hooks for already existing concrete types?
18:13:55FromDiscord<tandy> yes, for option[T]
18:14:04FromDiscord<tandy> this
18:14:32FromDiscord<haxscramper> You can try `import X except` with some of the jsony internals
18:14:33FromDiscord<tandy> btw this worked when i was using a hacky include
18:14:36FromDiscord<tandy> but i opted to remove that
18:15:11FromDiscord<haxscramper> can you send whole code then? I think it should be doable
18:15:26FromDiscord<Rika> how do you except an overloaded proc?
18:15:35FromDiscord<tandy> can i write `import jsony except dumpHook[T](s: var string, v: Option[T])`
18:16:10FromDiscord<haxscramper> no, I forgot that it is not possible
18:16:15FromDiscord<tandy> 1sec leme push
18:19:22FromDiscord<tandy> `nim c -r tests/lbTest`↵https://github.com/Listen2gether/website/blob/master/tests/lbTest.nim
18:19:54FromDiscord<tandy> apologies for the state of it, i just tried to fix this `include utils` problem today
18:20:00FromDiscord<tandy> in the middle of some other stuff
18:21:12FromDiscord<haxscramper> I want to murder someone
18:21:12FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3yZr
18:22:17FromDiscord<tandy> \:x
18:25:46FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3yZt
18:25:57FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3yZu
18:26:40FromDiscord<haxscramper> Importing from another module works as well
18:31:36FromDiscord<jakkn> sent a code paste, see https://play.nim-lang.org/#ix=3yZv
18:31:50*stkrdknmibalz joined #nim
18:33:12FromDiscord<jakkn> In reply to @Varriount "Some guesses (I have": Thanks, in the end it turns out compiling with `--noMain` is what caused the process to crash. Afaiu this prevents nim's GC from starting, and with no GC you get no strings.
18:36:25*max22- quit (Ping timeout: 260 seconds)
18:37:56FromDiscord<tandy> but the test doesnt compile ..
18:57:10FromDiscord<Goel> Is `.cfloat` a thing? To convert a number to its cfloat corrispetive just like `.cint`?
18:58:42FromDiscord<Rika> In C float is always 32 bits is it not
18:58:50FromDiscord<Rika> So you just need to always use float32
18:59:02FromDiscord<Rika> If you so desire you can make a type alias
18:59:30FromDiscord<@bracketmaster-5a708063d73408ce4> in nim, there was a way to make a type that can be either type a or type b
18:59:34FromDiscord<@bracketmaster-5a708063d73408ce4> I forget just how to do this
19:00:40FromDiscord<Goel> But .cfloat is implemented or not? I ask this because i have a weird behaviour on a Vector2 and i don't understand what is going on
19:01:08FromDiscord<@bracketmaster-5a708063d73408ce4> how might I make type a or type b?
19:02:38FromDiscord<tandy> i dont understand how you got it to work
19:02:48FromDiscord<Goel> `Vector2` from binding is an object that have two fields, `x` and `y` both being cfloat. If i create `var name: Vector2 = (2.0, 2.0)` it works, even though they are both float (of nim and not cfloat). If i try `var name: Vector2 = (2.cfloat, 2.cfloat)` its not recognized
19:02:59FromDiscord<tandy> sent a code paste, see https://play.nim-lang.org/#ix=3yZJ
19:04:09*max22- joined #nim
19:05:14FromDiscord<haxscramper> https://wandbox.org/permlink/NsnsT590ufn4neXM
19:05:35FromDiscord<haxscramper> well, I only fixed part that used jsony
19:05:43FromDiscord<haxscramper> Because don't want to fight "lockfile" for now
19:10:51*pjzz quit (Quit: WeeChat 2.3)
19:25:31FromDiscord<tandy> i dont see any changes except the way you import, could that be the solution?
19:26:32FromDiscord<haxscramper> I can't say for sure
19:26:44FromDiscord<haxscramper> The change wasn't intentional at least
19:30:57FromDiscord<tandy> hmm
19:31:03FromDiscord<tandy> il dig around later i gues
20:09:26FromDiscord<@bracketmaster-5a708063d73408ce4> I'm clearly messing up on array overloading in nim- but not sure where
20:09:26FromDiscord<@bracketmaster-5a708063d73408ce4> https://paste.debian.net/1211898/
20:11:22*stkrdknmibalz quit (Ping timeout: 260 seconds)
20:12:28FromDiscord<Gumber aka Zachary Carter> In reply to @@bracketmaster-5a708063d73408ce4 "I'm clearly messing up": https://play.nim-lang.org/#ix=3z04 compiles at least
20:13:18FromDiscord<Gumber aka Zachary Carter> you need the backticks around `[]`
20:13:34FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3z05
20:13:37FromDiscord<haxscramper> And you missed `depth:` everywhere
20:13:38FromDiscord<Gumber aka Zachary Carter> and I don't think the `type(Regfile.data)` for the return type was workling
20:14:01FromDiscord<haxscramper> `type(Regfile.data)` does not work, an not supported, yes
20:14:15FromDiscord<Gumber aka Zachary Carter> back to covid nap 🙂
20:46:44FromDiscord<SivadNai> In work today, Nim got me my first Security Alert email. Looks like I picked the wrong day to investigate the windows COM library
21:11:19*Vladar quit (Quit: Leaving)
21:32:57FromDiscord<auxym> what's up with `--checkAbi`, not available in 1.4.8?
21:35:00*tdc quit (Ping timeout: 268 seconds)
21:37:15*max22- quit (Quit: Leaving)
21:48:07arkanoidhow to wait with asyncjs?
22:03:53*Pyautogui joined #nim
22:04:38PyautoguiQuick question, is it possible to import enums with {.importc.}? If so, could someone give an example? I am trying to wrap a pdf writer lib.
22:05:03FromDiscord<Elegantbeef> What are the C enum values?
22:06:33PyautoguiNone where explicitly assigned in the header file. I have very little experience with C.
22:06:44PyautoguiSorry
22:07:33FromDiscord<Elegantbeef> What's the library/enum you're trying to wrap?
22:07:33Pyautoguihttps://pastebin.com/zaui0CM4
22:07:48Pyautoguihttps://github.com/AndreRenaud/PDFGen/
22:07:50nrds<R2D299> itHub: 7"Simple C PDF Writer/Generation library"
22:08:01FromDiscord<Elegantbeef> Well that just means they're 0 incremented eh?
22:08:17FromDiscord<Elegantbeef> So just map it to a nim enum?
22:09:54PyautoguiHow would I do that? I have little experience with wrapping C. Sorry
22:11:41PyautoguiJust use cint enum values?
22:12:39FromDiscord<Elegantbeef> https://play.nim-lang.org/#ix=3z0z afaik
22:12:45FromDiscord<auxym> Just define an enum in nim, and pass it to the C function. I'm doing exactly this ATM and it doesn't seem to cause any issue. Nim converts the enum to an int constant in generated C code, and gcc doesn't seem to mind implicit casting of int to enum or vice versa
22:13:07PyautoguiGot it. Thanks for the help
22:14:36arkanoidcan the "do notation" be used for args that are not the last one? For example I have "setTimeout(callback: proc(), delay: cint)" and I'd like to use the do notation when calling it
22:15:17arkanoidI mean, without writing a proc that swaps the args
22:16:15FromDiscord<Elegantbeef> You can use do for all args but there isnt presently a named do block afaik
22:17:11arkanoidfor all args?
22:17:34arkanoidsetTimeout() do:\necho "foo"\ndo: 3000 ?
22:19:36FromDiscord<fae> @PMunch thank you for writing the series on how to embed the nimscript interpreter in a nim application, it was a good read and very helpful
22:27:21federico3what is #main ?
22:27:33federico3Yardanico: were you looking for me?
22:28:02FromDiscord<Yardanico> I asked a question about licenses :)
22:28:19FromDiscord<Yardanico> Reposting from before:
22:28:31federico3found it
22:28:55FromDiscord<Yardanico> @federico3 you around? Can you please resolve some of my doubts about licenses? So far I thought that LGPL-3 is not suitable for languages where all modules are compiled into a single binary since one of the points of LGPL is the ability to swap the library after compilation so there won't be any difference between GPL and LGPL, but you use LGPL in some of your Nim projects - so with e.g. https://github.com/FedericoCeratto/nim-httpauth
22:29:52federico3you have to allow end users to replace the library if they one: one way is to provide sources so they can recompile it, another, less common, is to provide ways to relink the executable by sharing object files
22:30:56federico3(and if you provide the sources they don't have to be under a FLOSS licence necessarily, as long as the user can recompile the application)
22:43:16FromDiscord<Yardanico> exactly, so I don't understand how LGPL is different than GPL in that regard for Nim source libraries since they get statically compiled in
22:43:34FromDiscord<Yardanico> you'd have to provide the full source anyway
22:44:02federico3GPL would require the source to be provided under GPL
22:46:47federico3(I mean the sources of the codebase that is importing the LGPL library)
22:51:12FromDiscord<leorize> you can also just... gate it behind a server
22:51:28FromDiscord<leorize> if the user doesn't get their hands on the library, you don't have to provide anything
22:51:34FromDiscord<leorize> binary\
22:52:29FromDiscord<leorize> alternatively, it's not too hard to provide only objects to link to
22:52:52FromDiscord<leorize> Nim can generate a script and compiles and link, comment the link out and you got the objects
23:18:28*Pyautogui quit (Ping timeout: 252 seconds)
23:54:25*Pyautogui joined #nim
23:56:00FromDiscord<auxym> anyone have an idea why is nim passing `-march=x86-64` to gcc even if I use `--cpu:arm`?