<< 29-12-2019 >>

00:00:02*junland quit (Quit: %ZNC Disconnected%)
00:02:17*junland joined #nim
00:15:17*Hideki joined #nim
00:15:40*Hideki is now known as Guest43621
00:36:22*tane quit (Quit: Leaving)
01:14:14*leorize quit (Quit: WeeChat 2.6)
01:18:58*Guest43621 quit (Ping timeout: 260 seconds)
01:26:16*belamenso quit (Quit: Leaving)
01:39:27*ng0 quit (Quit: leaving)
01:54:44*Tyresc quit (Quit: WeeChat 2.7-dev)
01:55:23*dwdv quit (Ping timeout: 265 seconds)
02:02:55*Trustable quit (Remote host closed the connection)
02:13:00*jwm2241 joined #nim
02:14:19*jwm224 quit (Ping timeout: 250 seconds)
02:32:42*endragor joined #nim
02:36:24*jwm2241 is now known as jwm224
02:48:48*sealmove joined #nim
03:10:07*muffindrake quit (Ping timeout: 260 seconds)
03:12:12*muffindrake joined #nim
03:15:50*Hideki joined #nim
03:16:13*Hideki is now known as Guest59420
03:20:28*Guest59420 quit (Ping timeout: 258 seconds)
04:30:53skrylar[m]at the risk of bikeshedding, i wish nimble worked more like AUR
04:31:22disruptekfor those of us not familiar with AUR...?
04:32:07skrylar[m]its an arch thing; they have a list of community managed packages, each one has a dedicated manager and they post the pkgbuild manifest to a little git repo
04:32:56disruptekhow is that different from the packages.json file?
04:33:47skrylar[m]for one, the `.nimble` and `packages.json` are not even synchronized! i just checked to see if i could write a better release script on my side, and the data is different
04:33:53skrylar[m]packages.json has tags, .nimble doesn't
04:34:16disruptekrelease script?
04:34:22disruptek!repo bump
04:34:23disbothttps://github.com/disruptek/bump -- 9bump: 11a tiny tool to bump nimble versions 🍻 15 10⭐ 1🍴 7& 1 more...
04:34:34skrylar[m]in aur the build file you use on your machine is entirely the same as what goes online
04:34:49skrylar[m]but
04:35:55skrylar[m]i have never once gotten `nimble publish` to work.
04:36:48disruptekwell, i submitted a patch to improve `nimble publish`.
04:37:09skrylar[m]one time it botched the pull request, other times i get comments from background PRs it created and had to hand edit the json file (which is an internal concern a package author shouldn't even be bothered with knowing, but :/). i've maintained cargo crates and distro packages and never had these issues /shrug
04:37:48disruptekmy opinion of nimble is well documented, but at the risk of beating a dead horse...
04:37:51disruptek!repo nimph
04:37:52disbothttps://github.com/disruptek/nimph -- 9nimph: 11a nim package hierarchy manager from the future 🧚 15 40⭐ 2🍴 7& 1 more...
04:39:01skrylar[m]i don't really use package managers. i just have to deal with these headaches for other people ^^;
04:39:11disrupteki pity the fool.
04:39:36shashlickWhat's a good bug to fix today?
04:39:37skrylar[m]i usually just vendor them. makes for reliable builds
04:40:04shashlickHave too many big things to do that I cannot accomplish in one night
04:40:14disrupteknimph is apparently bug-free.
04:40:27shashlickAnd have had zero time to work on anything worth mention
04:40:38disruptekawww c'mon shashlick.
04:40:45disruptekeverything you work on is mentionable.
04:40:47shashlickSo - one bug for tonight
04:41:09skrylar[m]i've also fixed weird deep magic bugs with go (i have a patch in the hugo tree) and it was very annoying to find the root cause of a bug in deps because they didn't have modules yet and you had to basically guess which git hash corresponded to the deps for the build tree at that point in time which wasn't mentioned anywhere so you had to basically brute force it x_x
04:41:40shashlickSo what should it be
04:42:07disruptekskrylar: https://github.com/disruptek/nimph/issues/54
04:42:07disbotrecommend tagging when requirements change
04:42:36*endragor quit (Remote host closed the connection)
04:42:45skrylar[m]yeh. i've been thinking about fiddling with branch names for that
04:43:05skrylar[m]but using submodules gives you a pedigree of "this exact set of commits will result in a successful build"
04:43:36disruptekof course. but lockfiles are a simple solution as well.
04:43:44skrylar[m]if people make them sure
04:44:19disrupteknimph also knows when your requirements changed, so it could create lockfiles whenever that happens.
04:44:32disruptekmaybe that should be a feature.
04:45:06skrylar[m]was reflecting on how `master` is sort of a silly branch and considering relabeling them back to `trunk` along with using a branch for versions
04:45:27skrylar[m]`v1` `v1-trunk` `v1-stabilizing`
04:45:29disruptekshashlick: i can't think of a single problem i have with nimterop. but, i'm not a sophisticated user.
04:45:37*chemist69 quit (Ping timeout: 252 seconds)
04:46:01disruptekskrylar: i wanted to impl lockfiles inside git but i decided it was ultimately going to be too closed, especially to other tooling.
04:46:53skrylar[m]`{"foomodule": "git://sourcehut.com/skrylar/foomodule#somehash"}`
04:47:04disruptekshashlick: you could consider an automatic lmdb api. i am thinking of turning golden into a complete unittest framework.
04:47:40shashlickdisruptek: nimterop has a long road ahead of it - have some roadblocks (nested structs, multi-dimensional arrays, etc) which need a rearchitecture of the backend
04:47:46*chemist69 joined #nim
04:47:54shashlickonce I get across that, c++ will be next
04:48:11disruptekcomments... 😉
04:50:30shashlickdo you mean an lmdb wrapper?
04:50:35disruptekyeah.
04:50:42skrylar[m]isn't there one?
04:50:49disruptekyeah, but it's hand-coded.
04:51:08shashlickhttps://github.com/LMDB/lmdb/tree/mdb.master/libraries/liblmdb ?
04:51:33disrupteki think so.
04:51:49skrylar[m]its pretty neat
04:52:24disruptekyeah, i am thinking i will just support testament and unittest2 syntax, to start. then expand with a Third Way.
04:52:45*skrylar[m] is a bum who just outputs TAP these days
04:52:49disruptekbut this will give us a transition and a unification of data for regressions, etc.
04:52:57disruptekTAP is the right way to go.
04:54:32skrylar[m]i used to like gtest and friends, but then when i was poking around with perl/prove noticed that you don't need parallel test BS because the OS will do that if each suite is its own executable (which admittedly if you static link a lot, you waste a lot of space storing tests i guess)
04:54:47skrylar[m]the node people also made a fair share of tap formatters
04:55:01disrupteki really like ava, from the node world.
04:55:35skrylar[m]might take a look at it
04:56:06skrylar[m]my almost-2020 code uses `redo` and just builds each module and runs `prove` on it; so breaking a test is considered a hard failure
04:56:09disruptekit's pretty well thought-out.
04:56:17disruptek!repo avajs
04:56:19disbothttps://github.com/dlebedynskyi/ava-issue-1093 -- 9ava-issue-1093: 11code sample for https://github.com/avajs/ava/issues/1093 15 0⭐ 3🍴 7& 29 more...
04:56:31disruptek!repo avajs/ava
04:56:33disbothttps://github.com/avajs/ava -- 9ava: 11🚀 JavaScript test runner 15 17294⭐ 1167🍴 7& 19 more...
04:57:39disrupteki've been thinking about a good way to do code-coverage reports, too. might have that built-in.
04:57:39skrylar[m]have been resisting going back in to node stuff. its kind of ridiculous to have nim and python and javascript and lisp in one project
04:57:59disruptekagree; i really hate the js ecosystem.
04:58:16disruptekbut, i think there's a lot to take inspiration from, especially the failures.
04:59:02skrylar[m]i dont really hate js more than any other non-lisp; for me its just a case of you have "get what you are given" languages and then the ones that let you build upward as needed
04:59:20skrylar[m]almost every accepted language is a "get what you are given" and they then go through long tooth pulling sessions to do anything
04:59:50disruptekyes, it's annoying to have a glass ceiling before you even start.
05:00:01skrylar[m]"in five years we will finally have async/await and some poor version of coroutines the assembly nerds had throughout the early 90s and the lispers already made during their lunch hour"
05:02:47disruptekwhat's annoying is bikeshedding when there's no shed.
05:03:16skrylar[m]central planning: programmer edition :wink
05:03:21shashlickdisruptek: your lmdb wrapper is ready - at least for linux
05:03:30disruptekshashlick: what took you so long?
05:04:22shashlickhttp://ix.io/25Mh/nim
05:04:25shashlickfirst world problems
05:04:53disruptekhah, thank you! maybe it closes a golden bug with -d:danger.
05:05:57shashlickso it always uses git, so just use -d:lmdbStatic if you want static link, else no -d required
05:07:19disruptekah, cool.
05:08:45disruptekyay, my deps are already broken in 1.0.4.
05:10:38disrupteki will have to dump nimetry. oh well.
05:15:19disruptekthanks again, shashlick, i will have to rewrite for this. worth it, though!
05:17:04shashlicknp, have fun
05:17:13shashlickwonder if lmdb will compile on windows and osx tho
05:17:37disrupteki know it works on windows; not sure about osx.
05:18:30shashlickcompiles with mingw?
05:19:27disrupteki dunno, but i suppose it's rather critical that it does.
05:19:37disruptekwhatfer nimterop reasons.
05:21:58shashlickmore cause most of your users use mingw on windows
05:22:50disruptekwhat else does nim support on windows?
05:24:14shashlickpeople use visual studio but it isn't 100% tested
05:24:40shashlicki tested tcc a while ago, some issues there too
05:24:50shashlickrecent forum post about the intel compiler
05:24:59shashlickonly mingw is covered in our CI
05:25:08disrupteki thought tcc was deprecated, removed, and then restored. but still deprecated.
05:26:34shashlickyou mean in general or within nim
05:26:38disrupteknim
05:27:19*dddddd quit (Remote host closed the connection)
05:30:30shashlickall i know is that its been there for years, maybe to make a repl or standalone minimal distro, don't remember anymore
05:35:20*endragor joined #nim
05:40:23*endragor quit (Ping timeout: 258 seconds)
05:42:15*marmotini_ joined #nim
06:07:07*marmotini_ quit (Remote host closed the connection)
06:09:23*marmotini_ joined #nim
06:39:27Araqrepl
06:40:19shashlickgm
06:41:18shashlickjust replied on the PR #12950, ptal when you can
06:41:20disbothttps://github.com/nim-lang/Nim/pull/12950 -- 3Add getCompileOptionString() to get Nim config at compile time
07:05:17Araqshashlick: to fix the bootstrapping problem do this
07:05:23Araqcondsyms.nim
07:05:31Araq define "nimHasCompileSetting"
07:05:35Araqsystem.nim
07:05:46Araq when defined(nimHasCompileSetting):
07:05:53Araq # new magic procs here
07:06:59shashlickneat
07:07:11shashlickany tips on the segfault?
07:07:45AraqnewNode(nkBracket) # no type?
07:08:04Araq(and also no line information, not good)
07:08:55Araqbtw compileMultiSetting should be compileSettingSeq IMHO
07:09:47shashlicki tried `newNodeI(nkBracket, http://n.info)` and `result.typ = n.typ` but it still crashes
07:09:50shashlicki'll rename
07:10:15*solitudesf joined #nim
07:11:04sealmovereworked !nimitai
07:11:36sealmovethere is now lexing/parsing separation and expression language is isolated
07:11:55sealmoveexpression language has its own lexer/parser too
07:11:59Araqoh boy our exception tests are super hard to make green, good stuff
07:12:04sealmoveeverything is done with (n)peg
07:14:38AraqnewNodeIT(nkBracket, n.info, n.typ) should do it
07:17:16shashlicknope, still crashes
07:17:25*Hideki joined #nim
07:17:47Araqwhere does it crash?
07:17:48*Hideki is now known as Guest21451
07:17:58shashlickhttp://ix.io/25MO
07:18:35shashlickcalls to compileSetting work fine, but the first call to compileSettingSeq crashes as linked
07:20:42Araqwell the elements need to have a type too
07:21:19Araqresult.add newStrNode(nkStrLit, i) # wrong too
07:21:25*nsf joined #nim
07:22:01Araquh oh, exception handling is underspecified
07:22:07*Guest21451 quit (Ping timeout: 265 seconds)
07:22:31Araqand worse, the spec in my head says "uh, I dunno"
07:24:02shashlickya i cannot use newStrNodeT since n.typ is seq[string], not sure how to create a PType of string
07:24:45AraqgetSysType(c.graph, tyString)
07:24:48Araqor similar
07:25:33shashlickthere won't be any lineinfo tho right?
07:25:42shashlickor would it still be the same http://n.info?
07:28:58shashlickwell it worked!
07:40:44Zevvaraq: underspecified how?
07:42:58*solitudesf- joined #nim
07:43:14*solitudesf quit (Ping timeout: 240 seconds)
07:55:37*narimiran joined #nim
08:00:00*gmpreussner quit (Quit: kthxbye)
08:02:23*Vladar joined #nim
08:05:08*gmpreussner joined #nim
08:11:13*curtmack joined #nim
08:40:45AraqZevv: how to continue with a 'raise' inside an 'except'
08:41:03*NimBot joined #nim
08:54:49Zevvyeaah these are fun I guess :/
08:57:26*nsf quit (Quit: WeeChat 2.6)
08:58:07*ng0 joined #nim
09:00:03*solitudesf- quit (Quit: Leaving)
09:00:21*solitudesf joined #nim
09:00:40Zevvas much fun as handling exceptions during stack unwinding in destructors
09:02:26*solitudesf quit (Remote host closed the connection)
09:02:41*solitudesf joined #nim
09:09:32skrylar[m]i would probably say that is just a fatal error (unless the exception is captured within the destructor)
09:10:10skrylar[m]but i'm a derp and usually the only reason i want destructors is to take something out of a list or send a death notice to an external library
09:10:49skrylar[m]*finalizers
09:12:30shashlickAraq: how do you print the ast within the compiler? like dumpTree, etc in macros
09:18:07*solitudesf quit (Ping timeout: 258 seconds)
09:23:57*endragor joined #nim
09:25:09*oprypin_ quit (Quit: Bye)
09:25:39*oprypin joined #nim
09:27:49*oprypin quit (Client Quit)
09:27:57*oprypin joined #nim
09:29:37*endragor quit (Ping timeout: 258 seconds)
09:34:44*oprypin quit (Quit: Bye)
09:34:52*oprypin joined #nim
09:50:41*dwdv joined #nim
10:07:15*marmotin_ joined #nim
10:07:18*Vladar quit (Remote host closed the connection)
10:08:17*marmotini_ quit (Read error: Connection reset by peer)
10:20:24*endragor joined #nim
10:24:34shashlickAraq: another one - how do you represent hex values internally? If i save a hex value in a newIntNode, it becomes an int on render
10:30:38*marmotin_ quit (Remote host closed the connection)
10:32:06*marmotini_ joined #nim
10:47:01sealmoveConcept of hex only exists as a string
10:47:52sealmoveconcept of radix I mean
10:48:53shashlickwonder how nimpretty works then - if a user has 0x123, it will get rendered as an int?
10:50:39shashlicknope, nimpretty retains the hex value - how is it stored internally then?
11:06:36*narimiran quit (Ping timeout: 258 seconds)
11:17:50*ehmry quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
11:18:13*ehmry joined #nim
11:19:05*Hideki_ joined #nim
11:21:37*Vladar joined #nim
11:22:06Zevvgood question. In macro's my ints are just IntLit, but repr remembers its hexity
11:23:14*Hideki_ quit (Ping timeout: 240 seconds)
11:23:48*ehmry quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
11:24:15*ehmry joined #nim
11:27:00Zevvthere's magic flags in my nimnodes like nfBase16
11:39:02*nsf joined #nim
11:44:59*Hideki_ joined #nim
12:00:38*marmotini_ quit (Remote host closed the connection)
12:13:21*ehmry quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:13:48*ehmry joined #nim
12:14:02*Hideki_ quit (Remote host closed the connection)
12:14:47*Hideki_ joined #nim
12:19:18*Hideki_ quit (Ping timeout: 260 seconds)
12:19:56*ehmry quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:20:28*ehmry joined #nim
12:29:06*Hideki_ joined #nim
12:32:05*marmotini_ joined #nim
12:42:47*krux02 joined #nim
12:44:46*krux02 quit (Remote host closed the connection)
12:52:09skrylar[m]https://highlandjs.org/ this seems weirdly relevant, but i'm still trying to understand it to see if it has any actual nim use
12:54:01*Vladar quit (Quit: Leaving)
13:11:56skrylar[m]oh i kind of get it. they're doing trickery so you can use the same syntax to deal with callback chains as you do with futures or the like
13:34:52*dddddd joined #nim
13:35:23*marmotini_ quit (Remote host closed the connection)
13:43:36*marmotini_ joined #nim
13:46:26*detona joined #nim
13:46:39*detona left #nim (#nim)
13:46:54*Hideki_ quit (Remote host closed the connection)
13:47:40*Hideki_ joined #nim
13:48:22*Hideki_ quit (Remote host closed the connection)
13:48:33*marmotini_ quit (Ping timeout: 260 seconds)
13:48:35*Hideki_ joined #nim
13:58:06*marmotini_ joined #nim
13:59:19*marmotini_ quit (Remote host closed the connection)
14:05:35*marmotini_ joined #nim
14:06:35*marmotini_ quit (Remote host closed the connection)
14:09:03*marmotini_ joined #nim
14:10:24*marmotini_ quit (Remote host closed the connection)
14:20:29*solitudesf joined #nim
14:49:08*Trustable joined #nim
15:03:13*Hideki_ quit (Remote host closed the connection)
15:04:13*Hideki_ joined #nim
15:06:56*Hideki_ quit (Remote host closed the connection)
15:07:06*ng0_ joined #nim
15:07:10*Hideki_ joined #nim
15:10:13*ng0 quit (Ping timeout: 260 seconds)
15:10:35*tane joined #nim
15:21:22disruptekhearts and minds, people; hearts and minds!
15:27:18Zevvwhat does that even *mean*?
15:28:14disruptekit means today's mission is to win hearts and minds.
15:28:18disruptekby hook or by crook.
15:28:42disrupteki'm more of a crook with a penchant for hookers.
15:29:03disruptektoday we're going to make something amazing.
15:29:34disruptekthe question is, what.
15:32:28Zevvtoday is almost over
15:32:34ZevvIm no longer sober
15:32:38Zevvnot going to happen today
15:33:13disrupteknoooo!
15:35:05*marmotini_ joined #nim
15:36:06FromDiscord<exelotl> Tomorrow we are going to make something amazing
15:40:22disruptekhmm, i don't like this attitude.
15:42:05stefantalpalaruAraq: thank you for merging https://github.com/nim-lang/Nim/pull/12922. Can we get it backported to 1.0.x? I'd like to use it in production, but some of my colleagues are reluctant to use anything but official compiler releases.
15:42:05disbotgeneric stack trace overriding mechanism
15:45:19*marmotini_ quit (Remote host closed the connection)
15:49:30*ng0_ is now known as ng0
15:52:56*Hideki_ quit (Remote host closed the connection)
15:54:11lqdev[m]is it possible to cast a `ptr UncheckedArray[uint8]` to an `array[8, uint8]`?
15:55:52*Hideki_ joined #nim
15:56:50lqdev[m]for some reason, it crashes for me
15:57:34lqdev[m]right now I'm simply copying the data
15:58:11*marmotini_ joined #nim
15:59:10Trustable@lqdev[m]: I have for example this term in my code: cast[ptr int](cast[ref seq[int]](memory.addr)[registers[0]])[] Maybe this gives you an idea how to cast ist.
16:00:23*Hideki_ quit (Ping timeout: 260 seconds)
16:00:39disrupteklqdev: it's not clear that you're deref'ing.
16:01:29lqdev[m]disruptek: well, my intent is to get a view to a seq, but thinking it through a second time copying the value is probably a much wiser idea
16:12:50ZevvYeah, tomorrow would be good
16:13:10disruptekwhere are you staying at fosdem?
16:15:52ZevvI think I'll just drive up for the day
16:20:23*endragor quit (Remote host closed the connection)
16:22:32disruptekbooo
16:23:56ZevvI hear you
16:24:04Zevvbut reasons, both financial and practical
16:24:11*uu91 joined #nim
16:24:17disruptekfair enough.
16:24:40disruptekyou just live too close. 😁
16:24:48Zevvright. It's 2 hours and a bit
16:25:32ZevvSo I can leave here at 7.00 or so, get there, have a coffee and then its 10.00
16:26:32federico3Zevv: and friday evening?
16:26:39Zevvsorry
16:27:16*narimiran joined #nim
16:35:39*Hideki_ joined #nim
16:53:35*Hideki_ quit (Ping timeout: 268 seconds)
17:02:59*ptdel joined #nim
17:11:44lqdev[m]could someone tell me, is the thing I'm doing with `RawValue` and `Value` going to cause GC problems? https://github.com/liquid600pgm/rod/blob/master/src/rod/private/value.nim#L21
17:12:12lqdev[m]I suppose yes, because how does the GC know what is actually stored in the union?
17:15:05disruptekif that works, it's because the compiler is way smarter than me.
17:15:22lqdev[m]then it probably won't
17:15:33lqdev[m]but I suppose something like this could work: https://play.nim-lang.org/#ix=25PC
17:15:46disruptekhey, i'm just a useful idiot. you don't give the compiler enough credit.
17:16:04lqdev[m]I wonder, why the len(ty) < 32768 restriction is a thing
17:16:57disruptekvariant objects are limited to uint16 variants.
17:17:30Araqbenchmark results!
17:17:44disruptekwut
17:20:55AraqC++
17:20:55AraqSIGABRT: Abnormal termination.
17:21:01Araqer... ok?
17:21:28*endragor joined #nim
17:21:40lqdev[m]disruptek: but uint16 is 0..65535, not 0..32766.
17:21:55disruptekguess it's not uint.
17:21:59disruptekbecause araqlogic.
17:21:59Araqthe compiler produces a lookup table
17:22:05Araqyou don't want it to be big
17:22:14Araqthe limit doesn't matter much
17:22:31Araqso ... ok, C++ exceptions are broken and cannot be benchmarked
17:22:38disrupteknothing new here.
17:22:39lqdev[m]what's the lookup table for? I suppose fields that are available in a given variant?
17:22:48Araqthese are the results for the other exception mechanisms:
17:22:50disrupteknimph doesn't work on cpp.
17:22:59Araqsetjmp
17:23:02AraqElapsed: (seconds: 10, nanosecond: 587988800)
17:23:04Araqgoto
17:23:06AraqElapsed: (seconds: 8, nanosecond: 937499300)
17:23:52disrupteksounds like c++ is waaaay faster.
17:24:44disruptekincorrect answers delivered FAST.
17:26:43*endragor quit (Ping timeout: 260 seconds)
17:27:15*marmotini_ quit (Ping timeout: 258 seconds)
17:34:10*marmotini_ joined #nim
17:36:28yumaikasDoes anyone have any tips for splitting a jester router across multiple files?
17:38:17skrylar[m]i have heard from some old web vets that you don't really want to split the router, what you want to do is shove the logic out of the file with the router definition
17:39:00*FromGitter joined #nim
17:48:04yumaikasHrm...
17:48:53*marmotini_ quit (Ping timeout: 260 seconds)
17:51:19dom96what you should do is create a bunch of functions that take Jester's Request type and return a response
17:51:40dom96and then use the `resp` etc. templates in the jester route accordingly
17:55:28yumaikasLooks like you can add multiple match procs?
17:59:05FromGitter<zetashift> huh so the IRC bot was down
18:03:02Araqgoto
18:03:04AraqElapsed: (seconds: 9, nanosecond: 105410300)
18:03:06Araqsetjmp
18:03:08AraqElapsed: (seconds: 10, nanosecond: 468580100)
18:03:10AraqC++
18:03:12AraqElapsed: (seconds: 8, nanosecond: 158202300)
18:03:20AraqC++'s exception handling is hard to beat :P
18:03:40disruptekfair enough.
18:03:56Araqlet's better fix it
18:04:15FromGitter<Willyboar> and i wonder why the channel was so quiet
18:04:21Araqgoto beats setjmp by a fair margin though
18:04:26FromGitter<zetashift> yea me too hahaha
18:04:44FromGitter<zetashift> I was like, everyone still on holidays huh? Nope seesm the IRC bot was the only one
18:05:43disruptekwhat, the bot isn't logging?
18:05:47FromDiscord<exelotl> wow I finally got what a sink parameter is
18:05:50FromDiscord<exelotl> lol
18:06:16dom96This is why Nim's irc logs are the source of truth, amazingly NimBot is still incredibly reliable
18:06:24dom96and I haven't touched it in many years
18:06:36Araqit restarts
18:06:46FromGitter<zetashift> @disruptek, the bridge from Gitter <-> IRC was down
18:07:04dom96yes, and it does so too often, but that behaviour works very well
18:07:35disruptekgetting bored with nimph. not enough bugs.
18:07:41dom96Don't get why FromGitter can't do the same
18:08:15FromGitter<Willyboar> disruptek create a new bridge bot :)
18:08:23dom96yes please ^
18:08:41dom96if you do it well you might even be able to beat matter bridge shitty implementation and win lots of users
18:09:00disruptekfun, but not useful.
18:09:17dom96Very useful
18:09:50disruptekwould you rather have a bridge than a new unit test framework?
18:09:53FromGitter<Willyboar> if he'll make it i am sure he will beat matter shit
18:10:02*yumaikas just realized that the settings: macro creates a variable name settings
18:11:38dom96yes
18:12:18disruptekreally? that's the weak link in our tooling? a bridge?
18:13:04dom96no, the weak link in our tooling is a much better polished VS Code experience
18:13:07narimirandisruptek: how about making nimsuggest2, i.e. fixing memory leaks in nimsuggest? :)
18:13:29FromGitter<Willyboar> I think we need tools to attract more people to Nim
18:13:35dom96and yep, that includes nimsuggest being better. See even narimiran agrees with me :P
18:13:45narimiran:)
18:13:45Araqnobody likes nimsuggest
18:13:54disruptekbut, nimsuggest works fine for me. better than fine.
18:13:56*marmotini_ joined #nim
18:13:59dom96But FromDiscord is so annoying with its stupid paste behaviour that it really warrants a rewrite
18:14:05dom96and I doubt it would even take long
18:14:15Araqdom96, the question is though why does NimBot restart
18:14:16disruptekwhereas unittest2/testament does not work very well.
18:14:29dom96Araq, because it leaks memory, I haven't recompiled it in a long time
18:14:33Araqand can we claim "it's super stable" when it restarts occasionally
18:14:37FromGitter<Willyboar> @dom96 matterbridge supports disord too
18:14:47dom96Willyboar: yes, that is what FromDiscord is
18:15:03Araqdom96, huh? do you kill it when it takes up too much memory?
18:15:09dom96Araq, linux does
18:15:26yumaikasHow big is the code for matterbridge?
18:15:26narimirandom96: btw, i have not experienced severe memory leaks with neovim like i did previously with vscode. i guess leorize[m] did some magic :)
18:15:48FromGitter<Willyboar> https://github.com/42wim/matterbridge
18:16:03Araqyeah but linux does it after X gigabytes, played with some ulimits?
18:16:15dom96narimiran, I'm much more annoyed when nimsuggest gives no suggestions than about its memory leaks.
18:16:29dom96well, not even suggestions, I don't even use that, I just use go to definition
18:17:02dom96Often it works so slowly and badly that I wonder whether I'd be better off just writing something that runs nimgrep
18:17:11dom96at least then I'd get a good result 80% of the time and quickly
18:17:25Araqit's most a setup problem
18:17:37dom96to be fair though, even at my work the go to definition isn't perfect for Hack code
18:17:55Araqif nimsuggest happens to have received the proper project.nim
18:17:59disruptekthere are a lot of new fuzzy finders out there, if you feel like messing with vs code. i personally won't support it.
18:18:05Araqand it knows about 'nim js' then it works quite well
18:18:18disrupteki'm happy with it.
18:18:48dom96Araq, why would I play with ulimits? It works well. The leak needs to be fixed not Linux's behaviour.
18:19:23disrupteknimbot works. it does its job.
18:19:28narimirandisruptek: so, we still haven't found something interesting for you to work on? :) this is becoming harder than i initially thought :D
18:19:29Araqdom96, well strictly speaking the OOM killer could select a different process
18:20:10dom96true, but in practice it hasn't caused any problems
18:20:10disruptekAraq: if he recompiles nimbot for any reason, he is likely to improve the situation.
18:20:10Araqbut my point is more like "does it *only* restart because of leaks?"
18:20:31dom96true, that's a good question, and possibly not. It's possible there are some other crashes.
18:20:40dom96But it's not worth the time investment
18:20:57disrupteknarimiran: i like the idea of extending golden to do unit testing, too.
18:21:01dom96We're not writing software for SpaceX here
18:21:18disruptekit works fine.
18:21:23Araqdom96, agreed but it's not honest to claim "It's incredibly stable"
18:21:34Araqwhen its uptime can be measured in days
18:22:04Araqit works well enough, sure.
18:22:16disruptekmaybe it owes most of its reliability to the stability of the platform, but it's still reliable. even if it's reliably unable to run past X days.
18:22:52dom96It's incredibly stable in the sense that it requires no time from me to make sure it works
18:22:55dom96it just works (TM)
18:23:03dom96and has been working for the past, what, 8 years?
18:23:20disruptekmy favorite kind of software.
18:23:28dom96Maybe "incredibly stable" is the wrong words, but whatever :)
18:23:49FromGitter<Willyboar> what is your favourite kind of software dis?
18:24:06disruptekstuff i write and don't need to revisit for years and years.
18:24:24dom96Araq, now where crashes will becomes important is for my game, although i'm considering even creating a sort of cache to enable restarts for that
18:24:42dom96it will still be challenging to restart connections to the clients though
18:24:51dom96*become
18:25:08disruptektechnically, you can restart without closing ports.
18:25:28dom96but I doubt I will be able to lower crashes/restarts enough to have a reliable gaming experience
18:25:44disruptekarchitect for failure, then.
18:25:48dom96indeed
18:26:54dom96I think I will release the game first though, it's complex enough as it is already :)
18:26:55yumaikasWhy do to think you won't be able to get low enough crashes/restarts?
18:26:57disruptekwhat do we actually /need/ in nimland?
18:28:09dom96yumaikas, it's all a question of trade offs, I will likely spend more time fixing all the edge case crashes than just implementing a way to restart my server
18:28:40disrupteki probably have about 3 months before i wanna get on the road and take a job somewhere.
18:28:49disruptekneed a project or two to bang out in that time.
18:28:55FromGitter<Willyboar> come to build nimux together
18:29:01yumaikasOk.
18:29:11disrupteki just hate the web too much. 🤣
18:29:18FromGitter<Willyboar> :(
18:29:37disrupteki mean, seriously. it basically made me quit IT for like 12 years.
18:30:16FromGitter<Willyboar> build a CI
18:30:53FromGitter<Willyboar> I know there is a lot of them but sounds nice
18:31:38dom96Build a cool kernel in Nim
18:32:01yumaikasdom96: I'm still running into some issues trying to export routers?
18:32:05disrupteki've had this idea for building tests in the cloud, but i think even with deploying weave across lambda or something similarly silly... its all been done before and much better architected than anything i could come up with.
18:32:06dom96Willyboar: I built a CI in Nim in the past :)
18:32:35dom96yumaikas, you need to give more details than that :)
18:32:54yumaikasdisruptek: make a swanky terminal library
18:33:13FromGitter<Willyboar> dom96 you have build almost everything in Nim
18:33:25disruptekmaybe a new channels lib on weave.
18:34:02yumaikasdom96: I'm trying to figure out how to take the results of router routerName: and export them so that I can register them in a central file
18:34:15tanedisruptek, no ecosystem is complete without a decent graph library, including an implementation of the network simplex algorithm :)
18:34:29yumaikas`export routerName` doesn't work
18:34:32disruptekyeah, i tagged a few graph libs last night.
18:34:41disruptekall pretty crude, but we gotta start somewhere.
18:34:44yumaikasrouter routerName*: doesn't work
18:35:05dom96yumaikas, take a look at the examples in Jester's test folder: https://github.com/dom96/jester/blob/master/tests/alltest_router2.nim
18:35:07disruptekthing is, i'd rather use existing graph engines and just interface with them.
18:35:33dom96disruptek, seems like this could give you some inspiration https://github.com/nim-lang/needed-libraries/issues/
18:35:59tanedisruptek, sure, easy enough. as of now, only C++ and JVM based languages have something decent. I had a look at the CLR/C# ecosystem recently and noticed it has _nothing_ in that direction. It seems all people do on C# is write software that processes credit card numbers
18:37:05disruptekthere's a go graph lib called cayley that feels about right, but it was ridiculously broken when i tried to get it running.
18:37:09yumaikasdom96: Are routers exported by default?
18:37:26disruptekdgraph is a better choice, but i kinda want something embedded.
18:38:04dom96yumaikas, IIRC yes
18:38:06tanedisruptek, ah, this looks like graph-DBs
18:38:26*yumaikas needs to get to updating those jester-docs
18:38:30disruptekoh, you want to actually graph something?
18:38:36dom96disruptek, alternatively, look at Go/Rust/Python packages, sort by popularity, implement those that Nim is missing
18:39:04tanedisruptek, yeah :)
18:39:19tanedisruptek, graph as in graph G = (V,E)
18:40:05tanein C++ there's the boost graph library (BGL) and lemon, on the JVM there's jgrapht, and for some other platforms there's igraph, which sucks
18:41:23disrupteknlvm->jvm->jgrapht
18:42:14FromGitter<Willyboar> build something in the gui land
18:42:41tanewell, honestly, if I needed some graph algorithm I'd probably implement it with lemon in C++, wrap it in extern "C" and call it from whatever I was writing it, jgrapht is kinda slow
18:43:07dom96with Nim you don't even need extern "C" :D
18:43:40tanebut then I'd need to C++ backend, right?
18:43:45taneto=the
18:44:10dom96yep
18:47:32*chemist69 quit (Ping timeout: 260 seconds)
18:47:55*chemist69 joined #nim
18:49:20FromDiscord<exelotl> uhh is this a bug? https://play.nim-lang.org/#ix=25Qd
18:50:11Araqno, 'distinct' types have no fields
18:51:31FromDiscord<exelotl> ah, how would I solve this then?
18:52:12Araqdon't use 'distinct'
18:52:24dom96you can also convert the type AFAIK
18:53:50lqdev[m]@exelotl inherit your Surface* types from the base Surface?
18:54:19FromDiscord<Milerius> Hello
18:54:34lqdev[m]hi
18:56:15yumaikaso/
18:56:19FromDiscord<Milerius> I would like todo an official wrapper of: https://github.com/SanderMertens/flecs
18:56:19FromDiscord<Milerius>
18:56:19FromDiscord<Milerius> It's pure C99, but it's seem's that C2nim doesn't appreciate it a lot.
18:56:19FromDiscord<Milerius>
18:56:20FromDiscord<Milerius> What you will suggest to me for importing properly this library in nim and expose it to everyone ?
19:01:06FromDiscord<exelotl> lqdev[m]: more context: the type is imported from C, and it's important that I can cast between them, but also each type needs to be its own thing for overload resolution
19:01:10FromDiscord<Lantos> @disruptek what did you do for the 12 years out of it?
19:01:10FromDiscord<exelotl> https://github.com/exelotl/nim-tonc/blob/master/tonc/private/surface.nim
19:02:57disrupteki was a rare coin dealer and a mechanic/machinist with a mostly-porsche auto business.
19:04:15AraqMilerius: I would simply write an entity system for Nim instead, Nim deserves a native one
19:04:16FromGitter<Willyboar> and all of this because the web?
19:04:38Araqan ECS isn't hard to write
19:04:58FromDiscord<Lantos> I was going to suggest looking at the norm project or graphql project to work on but thats web stuff. What happened in web that did that made you swap to porsche auto business
19:05:02Araqand that "pure C99" shit usually reinvents destructors and inheritance
19:05:26FromGitter<Willyboar> i will think to dumb web too :)
19:06:02disrupteki'm a bit dubious of graphql.
19:06:03Araqbecause "meta programming" is that "C++ weird stuff" let's reinvent language features with a preprocessor
19:06:35Araqbecause hey, that never gets boring
19:07:02Araqand isn't a clusterfuck of error prone designs
19:07:04*jwm2241 joined #nim
19:07:06FromDiscord<Lantos> Its got a big following now
19:08:10disrupteki know, i drank the kool-aid at first. but i've moderated since then.
19:08:20*jwm224 quit (Ping timeout: 248 seconds)
19:08:50Araqexelotl: use inheritance for SurfaceBmp16 etc
19:08:56*jwm2241 is now known as jwm224
19:09:26Araqrequires .inheritable for your Surface declaration and there you go
19:10:09*MarquisdeFalbala joined #nim
19:10:15FromDiscord<Lantos> What about looking at the top npm packages and taking that to nim
19:10:51disruptekthat's not what nim needs.
19:11:29nisstyreI know, monads
19:11:34nisstyre</sarcasm>
19:11:37FromDiscord<Lantos> Doms's jester could do with some love
19:11:42FromDiscord<Lantos> but again web
19:11:44FromDiscord<Milerius> xD @Araq Yeah why not
19:11:52FromDiscord<Milerius> We can have a real ecs in nim too.
19:12:20Araqnot only that, Nim was designed for an ECS
19:12:37FromDiscord<Milerius> Yeah i know but there is few way's to do an ECS
19:12:42FromDiscord<Milerius> SparseSet vs Archetypes.
19:12:53Araqthere is really only my way
19:12:54FromDiscord<Milerius> CompileTime component definitions vs Runtime etc
19:13:02Araq:P
19:13:17FromDiscord<Milerius> You don't like c-code that use idiom from other langages ?
19:13:24FromDiscord<Milerius> But in this case you will have a poor api.
19:13:37FromDiscord<Milerius> An ecs in C isn't that easy without some tricks.
19:13:42AraqI don't like C code.
19:14:09FromDiscord<Lantos> What about some crypto currency stuff disruptek?
19:14:10Araqit's a broken language that is confused about pointers and arrays
19:14:29disruptekcrypto is well-represented by the status camp, in nim.
19:14:47Araqdisruptek, machine learning?
19:14:51FromGitter<Willyboar> ^^ agree
19:15:13disruptekarraymancer and laser pretty well cover the ml sphere.
19:16:05FromDiscord<Milerius> I Understand.
19:16:35disrupteki think tests because it will force me to finish golden and it's something that doesn't have a good story. it's grunt work, which i am smart enough to handle.
19:17:04FromGitter<Willyboar> :(
19:17:24Araqdisruptek, nice, however
19:17:38Araqone man working on machine learning isn't good enough
19:17:55planetis[m]tane: i just uploaded https://github.com/b3liever/patgraph its just the data structure though
19:17:55disruptekit seems to be sufficient to the need.
19:18:12taneplanetis[m], nice
19:18:25FromGitter<Willyboar> planetis[m] i learned that you are from greece
19:18:49planetis[m]i just ported rust petgraph
19:20:50FromGitter<Willyboar> disruptek i just hoped to pick something more fancy :(
19:21:31disruptekthere will always be time for fancy, provided nim isn't eclipsed by competition that gets right the basics that we ignore in the pursuit of... fancy.
19:21:38planetis[m]hi willyboar
19:21:49planetis[m]thats right
19:22:10Araqomg, this never happened before
19:22:35AraqI enabled --exceptions:goto as the default for --gc:arc and all the ARC tests are green!
19:22:47disruptekship it.
19:23:30Araqwhat a day. I mean, the new impl was tested against crazy complex stuff
19:23:34Araqbut still
19:23:40Araqnever happened before.
19:24:03Araqprobably I made some silly mistake and the new default isn't picked up
19:24:03FromGitter<Willyboar> planetis we can make greek community and organized a nimconf in mykonos
19:24:15*marmotini_ quit (Remote host closed the connection)
19:24:20planetis[m]an nim ecs would be nice but a specialized data structure is needed too
19:25:14planetis[m]i am refering to this talk: https://www.youtube.com/watch?v=aKLntZcp27M
19:25:29planetis[m]willyboar: lol
19:27:05sealmovei am in
19:27:36FromGitter<Willyboar> of cource you are.
19:29:12sealmovewillyboar subject of interest in CS?
19:29:30planetis[m]ok then its settled
19:29:35FromGitter<Willyboar> bikini?
19:30:07FromGitter<Willyboar> string manipulation is better i think
19:30:13sealmovehaha
19:30:38sealmoverope datatype was invented in mykonos
19:33:31FromGitter<Willyboar> Are you live in greece?
19:37:20FromDiscord<Lantos> @plantis some game dev did a rust roast on this video
19:37:43FromDiscord<Lantos> let me find it
19:37:56FromGitter<Willyboar> wrong ping :)
19:38:10FromDiscord<Lantos> eugh how do you ping in irc?
19:38:17FromDiscord<Lantos> oh gitter
19:38:27FromDiscord<Lantos> here https://www.youtube.com/watch?v=4t1K66dMhWk
19:39:37*marmotini_ joined #nim
19:40:37planetis[m]thanks lantos will check it out
19:40:58planetis[m]oh i've seen it actually
19:42:31FromDiscord<Lantos> This was the video that made me think twice about jumping deep into rust
19:42:48FromDiscord<Lantos> and then doing a little searching on hacker news found some post on nim
19:43:36disrupteka rustconf video on ecs explaining how to write larger programs with rust convinced you not to use rust?
19:43:45dom96cool, now write an article titled "The video that made me think twice about Rust and turn to Nim instead" or something, then post to HN and reap that sweet karma
19:44:38dom96Argh, writing AI code is so boring
19:45:01FromGitter<Willyboar> by the way what about this guy in the reddit? I am talking about the hater
19:45:25FromDiscord<Lantos> no It made me go looking to check out why everyone was getting so hyped about it
19:45:42FromDiscord<Lantos> lol
19:46:32FromDiscord<Lantos> how do you know that will work dom? have you done something similar 😉
19:48:00dom96Lantos: I visit HN far too often, and those kinds of articles have a high chance of getting upvotes
19:50:36FromDiscord<Lantos> what about benchmarks I'm sure that will give some nice karma
19:51:43planetis[m]iam just annoyed with how many boilerplate code this rust library had
19:52:40skrylar[m]oh rust is boilerplatey
19:52:59planetis[m]although i made some simplefications and can 't do a nim comparison
19:53:18skrylar[m]i like their hypothesis crate tough
19:55:44*marmotini_ quit (Remote host closed the connection)
19:57:43*marmotini_ joined #nim
19:59:15planetis[m]seems nice, i like a lot of rust projects but i think i wont bother learning rust.
19:59:59planetis[m]i mean programming is already very hard no need for more complexity
20:00:00planetis[m]at least for me
20:00:25sealmoverust is only good for special uses imo
20:00:58FromGitter<Willyboar> i don't like rust syntax at all
20:01:10sealmoveto justify the weight it puts to the programmer you must really need its safety guarantees
20:01:43FromGitter<Willyboar> neither golang's
20:02:46sealmovesyntax is the least important
20:03:50*marmotini_ quit (Remote host closed the connection)
20:04:16*nsf quit (Quit: WeeChat 2.6)
20:06:39FromDiscord<Lantos> huh
20:07:03FromDiscord<Lantos> syntax matters
20:07:19FromDiscord<Lantos> and semantics
20:08:26FromGitter<Willyboar> God people are sick https://www.guidestick.com
20:08:26*bozaloshtsh_ joined #nim
20:09:08*bozaloshtsh quit (Read error: Connection reset by peer)
20:12:30planetis[m]willyboar: you know how expensive funerals are in greece?
20:12:59planetis[m]better not die
20:15:29*MarquisdeFalbala quit (Ping timeout: 252 seconds)
20:15:43FromDiscord<Lantos> thats pretty cool, code sharing between ssr and front end single page elements with karax
20:15:50*belamenso joined #nim
20:17:57belamensoHow do I import a constant through importc? Something like "var PI {.importc.}: cdouble" but with let?
20:24:51FromDiscord<jb> Hi all, newbie here. Is this a VSC extension bug or am I doing something wrong? It shows an error but it compiles fine, and it only happens when importing threadpool before asyncdispatch...
20:24:51FromDiscord<jb> https://cdn.discordapp.com/attachments/371759389889003532/660941319589330975/idk.png
20:25:24FromDiscord<Lantos> wait is that not possible? @dom can you share components between karax in ssr and client?
20:27:31FromDiscord<Lantos> @dom96
20:27:31FromDiscord<Lantos> https://pastebin.com/dWtHJXTm
20:32:20FromDiscord<Lantos> https://play.nim-lang.org/#ix=25QW
20:33:16*marmotini_ joined #nim
20:34:31*marmotini_ quit (Remote host closed the connection)
20:35:25*marmotini_ joined #nim
20:41:36*ng0 quit (Ping timeout: 258 seconds)
20:42:16FromGitter<zetashift> @jb huh weird I get the same thing
20:47:08*ng0 joined #nim
20:47:08*ng0 quit (Changing host)
20:47:08*ng0 joined #nim
20:47:13FromDiscord<Lantos> oo got it to work
20:50:12*Hideki_ joined #nim
20:54:58*Hideki_ quit (Ping timeout: 260 seconds)
20:57:32*Marquisd_ joined #nim
20:57:35*marmotini_ quit (Remote host closed the connection)
20:58:10*Marquisd_ is now known as marquisdefalbala
20:59:20*ng0 quit (Quit: leaving)
21:02:23*ng0 joined #nim
21:02:23*ng0 quit (Changing host)
21:02:23*ng0 joined #nim
21:22:15*Hideki_ joined #nim
21:31:14*endragor joined #nim
21:34:16*Hideki_ quit (Remote host closed the connection)
21:35:09*Hideki_ joined #nim
21:36:01*endragor quit (Ping timeout: 268 seconds)
21:43:25*Hideki_ quit (Ping timeout: 268 seconds)
21:50:50*narimiran quit (Ping timeout: 240 seconds)
21:52:36*Hideki_ joined #nim
21:52:52*uu91 quit (Remote host closed the connection)
21:54:54*lmariscal06 joined #nim
21:56:33*lmariscal0 quit (Ping timeout: 268 seconds)
21:57:07*Hideki_ quit (Ping timeout: 258 seconds)
22:18:34*solitudesf quit (Ping timeout: 268 seconds)
22:30:05*Hideki_ joined #nim
22:40:56*Hideki_ quit (Ping timeout: 265 seconds)
22:48:16disruptekPLEASE SEND BUGS
22:49:15sealmovewhat's your preferance? spiders?
22:51:44disruptek🐞🐞🐞
22:58:45FromGitter<mratsim> Apparently go also doesn't support cyclic imports: https://github.com/golang/go/issues/30974
22:58:47disbotlegalize circular imports ; snippet at 12https://play.nim-lang.org/#ix=25RB
23:01:04FromGitter<mratsim> @disruptek @Araq It's been about a year that I didn't really work on Arraymancer and 6 months that I didn't work on laser because I'm spending my spare time on multithreading
23:01:54FromGitter<mratsim> But in ML the most helpful would be: helping @bluenote10 on either NimData or Kadro or @onqtam on Jupyter + Hot-Code-Reloading
23:02:21disruptekis nimdata pandas for nim?
23:04:28FromGitter<mratsim> yep
23:04:40FromGitter<mratsim> and kadro is a rewrite from scratch but dev is stalled
23:05:14*freddy92 joined #nim
23:06:01FromGitter<mratsim> Though if I started a pandas-like lib from scratch I would look into data.tables (in R + C++) or Nvidia CuDF (in Cuda)
23:07:52Araqmratsim: does it work with --gc:arc?
23:08:04Araqyour stuff must work with arc, everything must work
23:08:07disruptekmy idea for mixed-version imports is to scope path searches using separate configurations per module. it's probably not as expensive as it sounds.
23:08:11Araqbugfixing will continue tomorrow
23:08:22Araqgood night
23:08:25disruptekpeace.
23:08:58FromGitter<mratsim> didn't try, I throw a compile-time error if it doesn't return true to supportsCopyMem :p
23:09:19*fredrik92 quit (Ping timeout: 268 seconds)
23:09:54FromGitter<mratsim> any kind of usage in mind where it makes sense to return a sequence from a spawn?
23:10:11FromGitter<mratsim> ah maybe a string
23:10:42FromGitter<mratsim> ah but those are destructors
23:42:19*belamenso quit (Quit: Leaving)