<< 05-02-2020 >>

00:00:17*disrupteq joined #nim
00:10:07*disrupteq quit (Ping timeout: 272 seconds)
00:10:45*disrupteq joined #nim
00:13:46FromGitter<timotheecour> @jyapayne thanks !! lemme look into it, maybe will ping u in PM
00:14:17FromGitter<jyapayne> πŸ‘
00:14:36*NimBot joined #nim
00:16:45*icebattle quit (Remote host closed the connection)
00:20:24*disrupteq quit (Ping timeout: 252 seconds)
00:26:13*disrupteq joined #nim
00:30:43*disrupteq quit (Ping timeout: 260 seconds)
00:31:03FromDiscord_<Rika> Also dumlTree
00:31:05FromDiscord_<Rika> Dump*
00:31:37*disrupteq joined #nim
00:36:13*disrupteq quit (Ping timeout: 265 seconds)
00:36:36*ng0 quit (Quit: leaving)
00:36:52*disrupteq joined #nim
00:37:53*krux02 quit (Remote host closed the connection)
00:41:32*disrupteq quit (Ping timeout: 265 seconds)
00:42:08*disrupteq joined #nim
00:47:11*disrupteq quit (Ping timeout: 268 seconds)
00:47:28*disrupteq joined #nim
00:52:07*disrupteq quit (Ping timeout: 268 seconds)
00:52:13*icebattle joined #nim
00:52:43*disrupteq joined #nim
00:52:47*rockcavera quit (Remote host closed the connection)
00:53:15*rockcavera joined #nim
00:53:16*rockcavera quit (Changing host)
00:53:16*rockcavera joined #nim
00:54:50*[rg] joined #nim
00:55:58*ofelas joined #nim
00:56:50*disrupteq quit (Ping timeout: 240 seconds)
00:58:08*disrupteq joined #nim
01:02:26*disrupteq quit (Ping timeout: 240 seconds)
01:03:50*icebattle quit (Ping timeout: 268 seconds)
01:08:28*disrupteq joined #nim
01:13:16*disrupteq quit (Ping timeout: 268 seconds)
01:14:53*disrupteq joined #nim
01:23:14*disrupteq quit (Ping timeout: 240 seconds)
01:25:19*disrupteq joined #nim
01:32:06*leorize joined #nim
01:34:19*disrupteq quit (Ping timeout: 272 seconds)
01:35:48*disrupteq joined #nim
01:38:38*vesper joined #nim
01:39:13*vesper11 quit (Ping timeout: 265 seconds)
01:44:32*disrupteq quit (Ping timeout: 268 seconds)
01:46:13*disrupteq joined #nim
01:54:26*disrupteq quit (Ping timeout: 240 seconds)
01:56:44*disrupteq joined #nim
02:06:37*disrupteq quit (Ping timeout: 272 seconds)
02:12:11*disrupteq joined #nim
02:16:59*disrupteq quit (Ping timeout: 260 seconds)
02:18:32*disrupteq joined #nim
02:23:48*lritter quit (Quit: Leaving)
02:27:16*disrupteq quit (Ping timeout: 268 seconds)
02:28:55*disrupteq joined #nim
02:29:50*chemist69 quit (Ping timeout: 252 seconds)
02:31:48*chemist69 joined #nim
02:35:45*disrupteq quit (Ping timeout: 272 seconds)
02:50:16FromDiscord_<Rika> I need some advice; more info incoming, I need time to word this
02:50:52FromDiscord_<Rika> How should I tackle the issue of representing a missing field, null, and the normal data in key for JSON?
02:51:18FromDiscord_<Rika> I just realized that the api endpoint I'm using has different meanings for null and missing field
02:51:39disruptekthe JNull variant represents null.
02:51:57FromDiscord_<Rika> But it's the default for an Option type too, noP
02:52:04FromDiscord_<Rika> No? *
02:52:08disrupteknah.
02:52:18FromDiscord_<Rika> ? What do you mean
02:52:35FromDiscord_<Rika> JNull maps to a none(T) does it not
02:52:40disrupteknah.
02:52:48FromDiscord_<Rika> ? Hmm what does it map to
02:52:57disrupteknewJNull() is a JsonNode of variant JNull.
02:53:08FromDiscord_<Rika> I know
02:53:29FromDiscord_<Rika> I mean
02:53:39FromDiscord_<Rika> If you convert some json node with the to macro
02:53:49disruptekan option like Option[JsonNode] defaults to none(JsonNode).
02:54:04FromDiscord_<Rika> Okay I should word this better
02:54:12disrupteki guess.
02:54:19FromDiscord_<Rika> Recently, I've been unable to word my issues for some reason
02:54:34disrupteklook in the mirror and smile.
02:54:38disruptekmaybe you've had a stroke?
02:56:14FromDiscord_<Rika> When converting a JsonNode to a certain type T with the "to" macro, how would it convert a missing field, given the field is an Option[T], and the field would have been a T have it not been missing
02:56:25FromDiscord_<Rika> No doesn't seem like I've gotten a stroke
02:56:27disrupteki haven't used the new json to() macro and i didn't use the old one because it was broken.
02:56:55disruptekmaybe supply some code to a paste service.
02:57:07FromDiscord_<Rika> I should just test this no
02:57:20FromDiscord_<Rika> I'll just do that, thanks anyway
03:00:59FromDiscord_<Rika> Is embedding an image in discord okay for the bot?
03:02:14disrupteksure.
03:02:48FromDiscord_<Rika> Would this not be a concern for JSON APIs that discern null from missing field? Hmm
03:02:48FromDiscord_<Rika> https://cdn.discordapp.com/attachments/371759389889003532/674449814695444480/Screenshot_20200205-120032.jpg
03:02:52FromDiscord_<Rika> I think I worded this better now
03:03:26disruptekwhat does the playground say?
03:04:20FromDiscord_<Rika> What do you mean? I embedded an image to playground
03:04:33disruptekwell, that's not super useful, is it?
03:04:41disruptekwhat happens when you run it?
03:04:45FromDiscord_<Rika> Both fields are none when one is a null field and the other is a missing field, what do you mean
03:04:58FromDiscord_<Rika> That's the result when run, it's also on the image
03:05:16disrupteki can't read the image because discord is dumber than a sack of hammers.
03:05:31FromDiscord_<Rika> Ah, the access violation
03:05:54FromDiscord_<Rika> I'll do imgur then
03:06:15disrupteki don't think the to macro has any idea how to handle an Option type, though.
03:07:10FromDiscord_<Rika> https://aeverr.s-ul.eu/0y3UySoK
03:07:25FromDiscord_<Rika> It does, I'll add another field with a value
03:07:32disruptekgreat.
03:07:56disruptekwhy don't you just hit the "Share to ix" button and then paste the URL into discord? that's kinda the idea of the playground.
03:09:35FromDiscord_<Rika> Maybe I did get a stroke.
03:09:41disruptekis your phone really your development machine?
03:09:47FromDiscord_<Rika> https://play.nim-lang.org/#ix=2aNh
03:09:59FromDiscord_<Rika> No, It's the one I have on me right no
03:10:03FromDiscord_<Rika> Right now
03:10:15disruptekseems like it's working fine.
03:10:15*[rg] left #nim (#nim)
03:10:30disruptekJNull != JString.
03:10:46FromDiscord_<Rika> I know, that's not the concern
03:10:58FromDiscord_<Rika> JNull is treated the same as nonexistent value
03:12:03FromDiscord_<Rika> I'll prolly just make another option-style type
03:13:02disruptekwhat do you think should happen? the types don't match.
03:13:35FromDiscord_<Rika> Hmm
03:13:43FromDiscord_<Rika> Yeah I'm still failing to express myself
03:14:07FromDiscord_<Rika> I'll just do what I said above, make another type
03:15:39disruptek!pulls author:disruptek jnull
03:15:41disbothttps://github.com/nim-lang/Nim/pull/12435 -- 3remove most nil<->JNull equivalence and raise nicer exceptions
03:15:41disbothttps://github.com/nim-lang/Nim/pull/11907 -- 5nils are JNulls in json parsing and serializing
03:15:52disruptekit's an open problem.
03:16:21disrupteki think the behavior you see is correct, though.
03:17:53disruptekarguably, json should throw an exception because the field exists but the types are incompatible.
03:19:12*endragor joined #nim
03:20:50disruptekaha, yes i see what you're hitting now. JNull is a valid type even when the field is defined as, say, /string/ and the json value is a *JInt* -- seems broken to me.
03:21:41disruptekmaybe JNull makes sense for an Option type (i'd suggest that it doesn't) but this compatibility "feature" seems pretty far from correct.
03:29:58disruptekima submit an issue.
03:36:11*muffindrake quit (Ping timeout: 265 seconds)
03:38:10*muffindrake joined #nim
03:38:21disruptek#13334
03:38:23disbothttps://github.com/nim-lang/Nim/issues/13334 -- 3strange json to() macro behavior with respect to type conversion ; snippet at 12https://play.nim-lang.org/#ix=2aNp
03:39:43yumaikaso/
03:40:56*cgfuh quit (Quit: WeeChat 2.6)
04:20:22*voltist joined #nim
04:24:27*voltist quit (Client Quit)
04:27:33*leorize quit (Remote host closed the connection)
04:27:53*leorize joined #nim
04:44:54leorizeAraq: should assertions be disabled in -d:release
04:44:55leorize?
04:45:30*rockcavera quit (Remote host closed the connection)
04:47:31FromDiscord_<Rika> disruptek, I don't think that's my issue
04:47:39FromDiscord_<Rika> But if it's another issue then that's interesting
04:47:54disruptekwhat's your issue?
04:48:46FromDiscord_<Rika> It's really just "missing json fields doesn't have an equivalent in nim"
04:48:59FromDiscord_<Rika> Which I said, I'd prolly be able to fix with another type
04:49:06disrupteki don't really know what that means.
04:49:18*nsf joined #nim
04:49:42FromDiscord_<Rika> Yeah it's not a problem if you're given the original JsonNode
04:50:03*marmotini_ quit (Ping timeout: 260 seconds)
04:50:24*dddddd quit (Ping timeout: 246 seconds)
04:50:28disruptekthe original jsonnode?
04:55:02FromDiscord_<Rika> So if you want to convert your json into a type, and that json is missing a field which is in the type, then the type gets a none(T) instead of making an error (given that json type would be T and nim type would be Option[T]
04:55:35disrupteki think you're confused about how types work.
04:55:37FromDiscord_<Rika> Error or whatever functionality would happen on missing field
04:56:08FromDiscord_<Rika> I'm fairly confident that I know what I mean and that I said what my solution would be
04:56:37FromDiscord_<Rika> I know that this is out of the scope of the json and options module and said that I would just make my own options-esque type
04:56:59disruptekyour json /is a type/.
04:57:34disrupteka json string is a variant object with a discriminator of `kind`, which is itself of type JsonNodeKind.
04:58:49disruptekit's not at all out of scope for those modules.
05:23:45leorizeshashlick: do you have any tests for running nimble script outside of nimble dir?
05:23:57leorizeie relative includes
05:25:52*greenfor` left #nim ("ERC (IRC client for Emacs 26.2)")
05:35:58leorizeAraq: would you accept a switch to the compiler that fake the name of the current script that's being run?
05:36:48leorizethis can be useful for tools that generate a script based on an another script (ie. nimble)
05:36:56*ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:43:53leorizedisruptek: I think I managed to tackle that one nimble bug
05:43:58disrupteksweet.
05:44:38leorizepassed all tests, but nimble might not have tests to catch smt like this out
05:45:18*narimiran joined #nim
05:57:56leorizedisruptek: see nim-lang/nimble#768
06:08:06*s3govesus joined #nim
06:08:57disruptekwow, i wonder what that'll do to nimph.
06:10:20disruptekit's a good change even if it breaks nimph, of course. πŸ‘
06:24:58*tefter quit (Quit: WeeChat 2.7)
06:25:11*Jjp137_ quit (Ping timeout: 265 seconds)
06:26:52*Jjp137 joined #nim
06:42:08Araqleorize: I thought about currentModule, currentLine, currentProc
06:42:25Araqis that what you have in mind?
06:47:27disrupteki have sleep in mind. gn araq
06:48:00*shota joined #nim
06:48:10FromGitter<timotheecour> @araq u here?
06:48:19Araqyeah
06:48:43FromGitter<timotheecour> so i think there’s a major efficiency improvement left to be done for the outplace pr
06:49:17FromGitter<timotheecour> `"abc".>foo1.>foo2.bar3.bar4.>bar5.>bar6` should generate this code: ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ but instead does a copy at each step [https://gitter.im/nim-lang/Nim?at=5e3a656c58f02e349763b745]
06:50:09FromGitter<timotheecour> I need to fix the code so that it generates this ^ instead of what PR generates; a bit heary, but shd be doable
06:57:44Araqhow? it only works if the involved types for 'tmp' are the same
06:58:38FromGitter<timotheecour> anytime u have `.>` (as opposed to `.`) the input and output are the same type (in fact same address)
06:58:48FromGitter<timotheecour> so i need to group consecutive `.>`
06:59:01FromGitter<timotheecour> otherwise u end up with spurious copies
07:01:39FromGitter<timotheecour> simplest example being `let a = β€œfoo”.>bar.>baz` => should rewrite as: ⏎ ⏎ ```let a = block: ⏎ var x = "foo" ⏎ bar(x) ⏎ baz(x) ⏎ x``` ⏎ ⏎ and (correct me if i’m wrong) the compiler should optimize away the last copy as a move since its the last access [https://gitter.im/nim-lang/Nim?at=5e3a6852594a0517c269d915]
07:04:25Araqok, well. go for it
07:05:34FromGitter<sheerluck> well `.>` used in PonyLang and `"abc".>foo1.>foo2` makes me uncomfortable. Sorry.
07:06:12Araqwhat does Pony use it for?
07:06:31disrupteknimph is failing arc tests: cannot bind another '=destroy' to: Regex:ObjectType; previous declaration was constructed here implicitly: /home/travis/.choosenim/toolchains/nim-#devel/lib/impure/nre.nim(271, 79)
07:07:36disruptektomorrow, tomorrow, i love ya, tomorrow, you're only a day away.
07:12:37Araqdisruptek: sure, good night
07:14:37FromGitter<sheerluck> Araq https://github.com/ponylang/pony-tutorial/blob/master/content/expressions/methods.md#chaining
07:15:20Araqoh cool
07:15:29Araqso that's my "operateOn"
07:17:09Araqmaybe we can combine the ideas somehow
07:46:13FromGitter<Varriount> Gah, I dislike the new outplace operator even more than the last one. What's wrong with having a function?
07:46:28FromGitter<Varriount> (or rather, function call syntax)
07:46:43*shota quit (Remote host closed the connection)
07:50:01*shota joined #nim
07:54:12*solitudesf joined #nim
07:58:05FromDiscord_<Rika> disruptek: you know, i'll just not continue trying to explain after this, but i DO NOT WANT TO HANDLE A JSONNODE AS IS, i want to convert it to a type with fields that i DO know and error or execute whatever functionality i want when a missing field is not there. i bet none of yall would understand what i mean again, hence me giving up this explanation
08:00:00*gmpreussner quit (Quit: kthxbye)
08:00:41FromGitter<xflywind> Hi, can I ref proc ? I can't finish compiling these codes as below , and Nim compiler doesn't give any infos. ⏎ ⏎ ```type ⏎ MiddlewareHandler* = proc(ctx: int, next: ref MiddlewareHandler)``` [https://gitter.im/nim-lang/Nim?at=5e3a7629f6945f41ef5cf9a3]
08:01:21FromGitter<Varriount> I much prefer @Araq 's `./`
08:03:00Araq'ref MiddlewareHandler' has likely never been tried before
08:03:31Araquse a seq[proc (ctx: int)]
08:04:59*gmpreussner joined #nim
08:09:19AraqVarriount: how would you deal with the problem?
08:10:33FromGitter<xflywind> Thanks @Araq .I need nest function.Type of `Next` is itself. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e3a7879f6945f41ef5cfffe]
08:11:11Araq type Handler = proc (ctx: int; next: Handler)
08:11:43Araqbut you will survive with seq, trust me
08:14:08FromGitter<xflywind> Thanks, I will try seq.I can't comile it. ⏎ ⏎ ```type Handler = proc (ctx: int; next: Handler)``` [https://gitter.im/nim-lang/Nim?at=5e3a794fbfe65274eaded368]
08:15:11FromGitter<xflywind> Error: illegal recursion in type 'Handler'
08:17:14Araq:-)
08:17:40*hax-scramper quit (Read error: Connection reset by peer)
08:17:54*hax-scramper joined #nim
08:18:42*vegai joined #nim
08:25:00shotanick valit
08:25:08*shota is now known as valit
08:44:14*valit quit (Remote host closed the connection)
08:46:06FromGitter<Varriount> Araq: Honestly? Create a "copy" procedure that does nothing for objects, and creates a new reference for references. Then make procedures that act on data structures in-place procedures
08:46:15*valit joined #nim
08:48:28FromGitter<Varriount> I prefer an explicit approach. Operators are nice if you are performing the same kind of pattern all throughout your code, but they are very confusing if they are uncommon
08:48:50FromGitter<Varriount> That is, the operator's use is uncommon
08:49:07Araqa proc can't work.
08:49:27Araqwe don't write macros when templates suffice and we don't write templates when a proc would do
08:49:42FromGitter<Varriount> Why won't a procedure work?
08:50:14Araqjust try it out for yourself
08:50:24Araqlet x = copy(sort()) ?
08:51:03Araqlet x = sort(copy a) # cannot bind 'copy a' to 'var T'
08:51:43Araq(var x = a; sort(x); x)
08:51:51Araq^ what we're after
08:52:33Araqit's a simple rewrite, yet it's so tedious that sorted() was invented
08:54:10Araqand after I wrote the conservative 'outplace' variant, clyybber had to improve its usability with a different variant of 'outplace'. and then Timothee tried to use it and found too messy still
08:55:47FromGitter<Varriount> Araq: https://gist.github.com/Varriount/8f4a9046e6fade3fff343bf8540d5aa2
08:56:30Araq'ref' has nothing to do with this
08:56:49Araqyou can just write 'result = data' in your gist anyway
08:57:13FromGitter<Varriount> Not if data is a reference type. The the reference will be copied, not the data the reference points to.
08:57:29FromGitter<Varriount> *Then the
08:58:15Araqit doesn't matter if its "reference type", in fact, we know it's not, sort works on var openArray[T]
08:59:18*Vladar joined #nim
08:59:45FromGitter<Varriount> Not if another sort has been defined for another data type, such as a tree .
09:03:25FromGitter<Varriount> Anyway, what I'm trying to say is, why go through all the trouble of finding the data structure referenced in an expression, creating a temporary of it, and rewriting the expression to use the temporary (all the while obfuscating this to readers of the code) when you could just make the operation of copying the data structure easier?
09:04:38Araqthe copy is easy, in fact the basic assignment will do
09:04:45Araqhttps://video.fosdem.org/2020/AW1.125/nimmovesemantics.webm my talk is ready
09:06:02FromGitter<Varriount> If the copying is easy, why do we need an outplace operator at all? Just transition to using in-place functions everywhere it makes sense.
09:06:52*hax-scramper quit (Ping timeout: 268 seconds)
09:07:01*hax-scramper joined #nim
09:08:38FromGitter<Varriount> I understand that an operator might make more sense in codebases that are heavy in generic data structure manipulation (such as the compiler) but it doesn't make sense for general programs.
09:10:45*floppydh joined #nim
09:13:33FromGitter<Varriount> What benefit does such an operator give over manual code, that outweighs the mental complexity parsing a new operator introduces?
09:14:21Araqbenefit: the sorted() family of procs in the stdlib can be removed
09:14:42Araqbenefit: after you learned it, it's shorter code and it's easier to follow
09:14:57Araqyou can always overdo it though and end up as Perl
09:15:11Araqand that's why every operator we introduce must carry its weight
09:16:57FromGitter<Varriount> sorted() and friends can already be removed.
09:18:38FromGitter<Varriount> How much shorter? A line or two? If I'm running a series of in-place operations on a copy, chances are I'm going to want those operations on separate lines anyway, rather than all on one line.
09:20:18FromGitter<Varriount> And is it really easier to follow than "regular" code? What about to those new to the language? Or new to programming?
09:21:04Araqthey either quit programming, don't use what they don't understand or they grow and learn a little bit more
09:22:06FromGitter<Varriount> Or they go "hey, these other languages make more sense, and are much more readable"
09:22:14Araqeventually newbies become advanced users
09:22:38Araq*shrug* it's a race to the bottom
09:22:59Araqyou can always remove more features at the expense of more typing and more bug prone constructs
09:23:28Araqfor example, (var x = a; sort(x); x) is actually quite typo-prone already
09:23:41Araqif you write (var x = a; sort(a); x)
09:23:49Araqthe compiler hardly has a chance of telling you about it
09:26:31FromGitter<Varriount> I'm still not convinced that it will save all that much typing. And the lack of this operator is not what's preventing sorted() from being removed.
09:28:32FromGitter<Varriount> It's one more thing to discover (and learn) in a language that's already quite complex.
09:29:02*Araq sighs
09:29:14Araqso you decided to ignore my actual argument
09:29:36Araqthe "typing" can be much or less, in the end it's error prone, just like
09:29:45Araqa + b * c is easier than
09:29:57FromGitter<Varriount> Your argument seems to be that it will make bugs less common, and teach users
09:30:05Araqa += b; a = a * c
09:30:16Araqand yeah I know got the rewrite wrong, that's the point.
09:30:48Araqintroducing temporaries manually is the opposite of "let's use a compiler"
09:31:46Araqto a large extend silly temporaries is what makes "high level programming" different from "low level programming"
09:36:35*hax-scramper quit (Ping timeout: 260 seconds)
09:38:01*hax-scramper joined #nim
09:39:16FromGitter<Varriount> Looking at the examples in the PR, how is https://github.com/nim-lang/Nim/pull/13309/files#diff-8578e1886d472519cd3cc49c52a61b64R42 different from `value.copy.addQuoted("foo").toUpper[0..1].toLower`?
09:39:18disbotβž₯ new outplace operator: `doAssert @[2,1,3].>sort() == @[1,2,3]` ; snippet at 12https://play.nim-lang.org/#ix=2aO9
09:39:47FromGitter<Varriount> (let's pretend a copy procedure exists)
09:41:08FromGitter<Varriount> Oh, I see, it does copy optimization
09:41:30FromGitter<alehander92> i think if the operator is general enough it might be useful
09:41:58FromGitter<alehander92> but it should be spent a bit more time on experimenting with it
09:41:58*hax-scramper quit (Read error: Connection reset by peer)
09:42:17FromGitter<alehander92> also
09:42:21FromGitter<alehander92> i expect to have `.<`
09:42:25FromGitter<alehander92> if we have `.>`
09:42:35FromGitter<alehander92> (if i come from any other language)
09:42:49FromDiscord_<Rika> Can we at least try this out first before totally shooting this down
09:42:52*hax-scramper joined #nim
09:42:55FromGitter<alehander92> ok, maybe not if we imagine `.>` as something like `.=>`
09:43:11FromDiscord_<Rika> Though we cannot test whether noobs would be more confused or better with it
09:43:17FromGitter<alehander92> Rika, i am saying the opposite, it sounds good, just to not put it into a release yet or something
09:43:22narimiran@alehander42 `.<` would be some kind of "pipe left", which i don't see the reason for nim to have
09:43:35FromDiscord_<Rika> Ah, I mean that too
09:43:39FromGitter<alehander92> inplace
09:43:48FromDiscord_<Rika> Which is why noobs cannot test it; noobs don't generally use devel
09:43:48FromGitter<alehander92> turning a filter into an inplace filter
09:43:54*valit quit (Remote host closed the connection)
09:44:31narimiranfrom what i could understand by skimming through the discussion, there's no need for "convert to inplace", as inplace would be the default
09:44:33FromGitter<alehander92> well, i wouldnt say noobs, its perfectly reasonable to expect that it might have suboptimal ux for various people
09:44:45FromGitter<alehander92> yes, but many existing algo-s
09:44:49FromGitter<alehander92> are outplace :)
09:45:18FromGitter<alehander92> but yeah, converting them to inplace automatically might be very hard
09:45:33Araqexactly
09:45:33*valit joined #nim
09:45:36FromGitter<alehander92> interesting problem
09:45:44Araqextract outplace version from inplace: easy.
09:46:04Araqextract inplace version from outplace: open research problem, see Haskell.
09:46:12FromGitter<alehander92> nice
09:46:34FromGitter<alehander92> yeah its probably a nice thing to do for functional langs
09:46:39Araqthough iirc Haskell came quite far
09:46:47FromGitter<Varriount> Araq: I'm still hesitant, although you've convinced me a bit
09:47:07FromGitter<alehander92> actually zero-functional is trying to do something like that but more like turn n outplace-s to 1 outplace
09:47:11FromGitter<alehander92> so yeah not the same
09:47:58FromGitter<alehander92> i guess it should be possible to detect whether you can just preserve only the last index for each step and replace
09:47:59FromGitter<alehander92> etc
09:48:08FromGitter<alehander92> but yeah
09:48:52AraqVarriount: glad to hear it and I'm reconsidering value.copied.addQuoted(), maybe I overlooked something
09:49:10Araqand there is also overlap with 'operateOn' once you chain these things
09:49:40Araqprobably the really good design still eludes us
09:50:16FromGitter<timotheecour> wait what is definition of `copied` in `value.copied.addQuoted()` ?
09:50:39lqdev[m]is the way Nim implements generics scalable as you add more language features? I've been reading through the impl yesterday, I need some inspiration on how to implement generics in rod
09:51:11*ng0 joined #nim
09:51:11*ng0 quit (Changing host)
09:51:11*ng0 joined #nim
09:51:35FromGitter<Varriount> The problem with having a copy procedure is that the in-place procedure call at the end still doesn't return the new copy
09:52:11Araqlqdev[m], read https://github.com/nim-lang/RFCs/issues/168 on my thoughts about it
09:52:12disbotβž₯ Concepts and type-checking generics ; snippet at 12https://play.nim-lang.org/#ix=23U8
09:52:39Araqso yeah, they don't "scale" all that well IME.
09:52:40FromGitter<Varriount> Of course, the convention could be to create in-place procedures that return discardable output, but that opens up another can of worms
09:52:54FromGitter<timotheecour> No, that horrible
09:53:41Araqhowever, generic programming itself doesn't scale. after all these years I still think generics are fundamental for containers but anything beyond that gets you into trouble
09:54:19FromGitter<Varriount> Araq: Have you looked at Go's generics proposal?
09:55:01AraqI think so, but I'm usually underwhelmed by everything coming from Go.
09:56:06FromGitter<Varriount> I work with it. I miss Nims templates
09:56:59FromGitter<Varriount> I don't mind the error paradigm (much) although I wish it was easier to attach stack traces to them.
09:57:43Araq*shrug* so a Nim without the silly features like ./ or 'sink T' did lose against Go in your environment, probably thanks to network effects. Can we now develop Nim without caring for Go developers? they ain't coming back.
09:58:25Araqcan we now do what's right for Nim? ;-)
10:00:02*hax-scramper quit (Ping timeout: 240 seconds)
10:00:17*hax-scramper joined #nim
10:00:25Araqinstead of caring about what-if-hypothetical users that always be confused about everything, never seen the inside of a school and program by copying code snippets from stack overflow
10:01:21FromDiscord_<Rika> Throwing shade oooo
10:01:44FromDiscord_<Rika> Though honestly I've seen some go code and wtf
10:03:53Araqtimotheecour: I don't know the definition of 'copied' either
10:04:47FromGitter<alehander92> its not about school etc, its about not doing what c++ did
10:05:30AraqC++ did not solve this particular problem, never tried to and yet it's a mess anyway :P
10:05:36FromGitter<alehander92> if we take several months to assess how such an operator/feature works
10:06:08FromGitter<alehander92> because you see we had different versions of outplace, also of chain/operateOn, slightly different ideas / details / semantics
10:06:27FromGitter<alehander92> some time to stabilize what a final feature would look like
10:07:18Araqwell that's what we're doing
10:07:24*floppydh quit (Quit: WeeChat 2.7)
10:10:55FromGitter<alehander92> ok
10:11:33FromGitter<alehander92> i personally mostly wait for the z3 stuff :P
10:16:19*couven92 joined #nim
10:16:31FromDiscord_<Clyybber> outplace is the same as chainOn once the intermediate temporaries are gone
10:18:35*hax-scramper quit (Ping timeout: 260 seconds)
10:19:16lqdev[m]Araq: so basically, concepts are going to be similar to Rust's traits?
10:19:18*hax-scramper joined #nim
10:19:39FromDiscord_<Rika> are they not already?
10:19:50FromDiscord_<Rika> what's the difference, since i dont see them
10:20:36lqdev[m]they aren't, because generics are not checked on instantiation time
10:21:11lqdev[m]s/instantiation/declaration
10:21:34lqdev[m]rust's impl allows for generic procs/types to be checked when they're declared
10:23:59Araqyes
10:27:12*valit quit (Remote host closed the connection)
10:28:29*valit joined #nim
10:50:13*couven92 quit (Ping timeout: 260 seconds)
11:14:50*valit quit (Remote host closed the connection)
11:17:04*leorize quit (Remote host closed the connection)
11:17:04*opal quit (Write error: Connection reset by peer)
11:17:21*valit joined #nim
11:17:35*leorize joined #nim
11:18:23*opal joined #nim
11:18:42FromGitter<timotheecour> @araq ya, it works: https://github.com/nim-lang/Nim/pull/13337
11:18:44disbotβž₯ [WIP] new outplace operator without intermediate copies/temporaries ; snippet at 12https://play.nim-lang.org/#ix=2aOw
11:19:27FromGitter<timotheecour> now we don’t have to sacrifice neither convenience nor performance
11:29:54*dddddd joined #nim
11:31:01Araqnow it also needs to enable 'chainOn'
11:31:03Araq;-)
11:36:23Araqand maybe the same story as for `?` will unfold
11:36:52Araqwhere in then end a new *unary* operator worked best
11:38:10Araq x.dup.insert(30).sort() x.chain.setPosition(10, 12).setColor(green)
11:38:32Araq'dup' vs 'chain'
11:40:07FromGitter<timotheecour> i thought about this but u need to distinguish intermediate procs that take a `var result` vs those that don't
11:40:54FromGitter<timotheecour> there is the trick of placeholder `_` (which would then have to be explicit in each inserted call site) as an option for that, but need to check
11:41:31Araqsee what I wrote, if we need both, at least we can strive for a very similar DSL
11:43:46Araqthe placeholder seems to apply for both: first arg was left out, or else the '_' indicates where
11:44:46FromGitter<timotheecour> what i had in mind was this example mising inplace and outplace procs: ⏎ ⏎ ```let b3 = >.@[1].fun(_, 2).fun(_).process.process[2].fun(_, 4)[3]``` [https://gitter.im/nim-lang/Nim?at=5e3aaaaef301780b836910d2]
11:46:39FromGitter<timotheecour> with `>.` unary operator, `_` seems needed (even for 1st position) to distinguish whether a proc is inplace or outplace
11:51:26*abm joined #nim
11:55:06Araqlet x = a.dup(sort().insert(10))
11:55:46Araqwindow.chain(setColor(blue).setStyle(modern).setPosition(top))
11:56:32Araqis winning my heart
11:56:39Araqany reason this can't work?
11:57:31Araqwe can use `.>` for chain and `+>` for dup if you prefer operators
11:59:16FromGitter<timotheecour> what is your *exact* translation of `@[1, 2].>sort.>process.baz.>baz(2,_)` ?
11:59:52FromGitter<timotheecour> (note the intermediate single dot `.` in the middle)
12:01:59Araq@[1, 2]+>sort.>(process.baz).baz(2,_)
12:02:28AraqI think. the idea is that to escape the dot you need to use additional ()
12:02:40Araqand maybe it means you're overdoing it ;-)
12:03:21Araq.> and +> work on rhs flat dot chains
12:04:54*ftsf quit (Ping timeout: 268 seconds)
12:07:22FromGitter<timotheecour> I need to sit on it for tonight, late here; but I’m not convinced this is better for various reasons (eg `sort.>(process.baz).` kind of gives impression the sort feeds into `(process.baz)` even though it feeds into `process`; it’s not intuitive)
12:07:40Araqalternatively, instead of overriding what '.' means
12:08:07Araqwe can simply use more +> and .> for chaining these things
12:08:26Araq.> is then exactly as it's in Pony
12:08:48Araqand +> a nice variation of .>
12:08:57FromGitter<timotheecour> but then that’s https://github.com/nim-lang/Nim/pull/13337 ?
12:08:59disbotβž₯ [WIP] new outplace operator without intermediate copies/temporaries ; snippet at 12https://play.nim-lang.org/#ix=2aOw
12:09:41*cgfuh joined #nim
12:09:43Araqno, your .> is my +>
12:09:59Araqand my .> is a different "operateOn"
12:10:18Araqand we need to watch out these take 'lhs: typed'
12:10:30Araqso that these macros don't butcher the overload resolution
12:11:32Araqbut it's close to your version, yes
12:12:20FromGitter<timotheecour> i think the best is an RFC (if not POC implementation) to compare apples to apples; really need to crash now
12:12:22FromGitter<alehander92> Araq sorry but maybe i was confusing
12:12:35Araqsure thing, see you later
12:12:43FromGitter<alehander92> i actually like the nimble packages as testground thing, thats why i got gara
12:12:49FromGitter<alehander92> as a nimble library (for pattern matching)
12:13:07FromGitter<alehander92> i'd love to push for it in the standard lib but it seems to me it needs to prove itself somehpw
12:13:17Araqalehander92: it worked for strformat
12:13:49Araqit works well if what the library does is rather complicated
12:13:55FromGitter<alehander92> yes i agree
12:14:01Araqbut for tiny syntax sugar
12:14:03FromGitter<alehander92> for simple features it might be different
12:14:08AraqI don't see it working out.
12:17:34FromGitter<alehander92> but this
12:17:41FromGitter<alehander92> is not such a simple feature
12:17:48FromGitter<alehander92> because you have some overlapping things
12:17:54FromGitter<alehander92> and you have also pervasiveness
12:18:10FromGitter<alehander92> e.g. lambda sugar happens only when .. you write an anon proc
12:18:32FromGitter<alehander92> but this can happen syntactically much more often where you have `.` / call
12:19:03Araqhmm?
12:19:14FromGitter<alehander92> well i dont follow closely the discussion
12:19:27FromGitter<alehander92> but i remember there was the idea to also add operateOn into this?
12:20:09Araqit's similar and so we're exploring if the similarity can be useful
12:20:25Araqpay for one, get two
12:21:59FromGitter<alehander92> yeah reasonable
12:22:20FromGitter<alehander92> but i also agree an RFC to clarify all the options would be ok
12:33:03*valit quit (Remote host closed the connection)
12:37:39*endragor quit (Remote host closed the connection)
12:40:24*couven92 joined #nim
12:41:51*couven92 left #nim (#nim)
12:42:18*couven92 joined #nim
13:10:04*Hideki_ joined #nim
13:16:09*filcuc joined #nim
13:30:40*nsf quit (Quit: WeeChat 2.7)
13:40:24*Kaivo_ quit (Quit: WeeChat 2.7)
13:41:08*Kaivo joined #nim
13:58:47*a_b_m joined #nim
13:59:03*a_b_m quit (Remote host closed the connection)
14:00:00*abm quit (Ping timeout: 265 seconds)
14:15:55*couven92 quit (Quit: couven92)
14:16:42FromDiscord_<Clyybber> Outplace an operateOn should be one an the same thing
14:17:04FromDiscord_<Clyybber> When the temporaries get optimized out there should be no difference
14:17:30*qwertfisch joined #nim
14:17:46FromDiscord_<Clyybber> s / an /and
14:18:54FromDiscord_<Clyybber> And _ shouldn't be needed, unless the inplace in-out argument is not the first arg
14:24:36*dddddd_ joined #nim
14:25:30*rockcavera joined #nim
14:27:48*dddddd quit (Ping timeout: 260 seconds)
14:28:28*dddddd_ is now known as dddddd
14:29:07*Vladar quit (Quit: Leaving)
14:45:08xacecan't post on the nim forum because my email isn't confirmed. I never received a email confirmation message... What should I do?
14:45:36shashlickping dom96 ^^
14:45:36*paxis joined #nim
14:48:03*shadowbane quit (Quit: Konversation terminated!)
14:49:03*tane joined #nim
14:49:19*shadowbane joined #nim
14:50:08*dddddd quit (Quit: )
14:53:12*dddddd joined #nim
14:55:26*l1x quit ()
14:55:50*l1x joined #nim
14:56:51leorizeshashlick: I'm looking at your remark in the nimble PR
14:57:32leorizethe only problem I found was... I can do all that stuff already
14:57:42leorizecloned nimterop, tried to run some tasks, everything worked
14:58:22leorizeI'll modify the spawn to spawn the compiler using the project dir as the current directory, that'd make things even more deterministic
15:04:39leorizeshashlick: pushed a new patch
15:07:21*krux02 joined #nim
15:10:34*paxis quit (Remote host closed the connection)
15:12:01disrupteki just cannot read these operators. i need names that match the semantics.
15:12:14*Hideki_ quit (Remote host closed the connection)
15:12:39disruptekit's starting to look like gremlin to me.
15:13:05*Hideki_ joined #nim
15:13:16Zevvtoo late to the party disruptek, you slept through the final verdict
15:13:39disruptekdid i?
15:13:40Araqdisruptek, usually it's fine after you got used to it, but it can add up
15:13:55*Kaivo quit (Quit: WeeChat 2.7)
15:14:09Araqand so we should be very careful with what we add
15:14:11disrupteki guess i want a macro: so it can do a multi-op optimization, and then the operators can chain naively.
15:14:33Araqbut it's now in RFC-land, relax
15:14:41*Kaivo joined #nim
15:14:42Araqmore tinkering is required
15:15:18Zevvdisruptek: and when they are done you and I will implement iterator chaining using the same operator
15:15:35Zevvimagine the unlimited power of lazy evaluation and FP
15:15:46disrupteki don't have to imagine.
15:15:59disrupteki mean, this is good work, don't get me wrong.
15:16:10disruptekit's good to have everyone speaking the same language.
15:16:22shashlick@leorize: looks like things might just work since nimble is being run in the current directory anyway
15:16:23disruptekit's good to identify the /right/ semantics and then put the tools in everyone's bag.
15:16:34shashlickyou might want to run some tests with recursive nimble calls
15:16:48shashlickand with some withDir calls as well
15:17:22ZevvI'm looking to see what it would take to implement SSO with strs_v2. pretty picky on the details
15:17:49*Hideki_ quit (Ping timeout: 265 seconds)
15:17:58leorizeshashlick: I'm counting on you for that :P
15:18:10*Hideki_ joined #nim
15:18:10leorizecurrently I'm doing real life testing with my dev env
15:18:25disruptekSSO is short-strings-something, right?
15:18:34shashlickbest test is running against all important packages
15:18:48disrupteka c++ thing?
15:19:01disruptekleorize: test it with nimph, please. πŸ˜‰
15:19:10leorizeit works
15:19:17Zevvnot c++ only. The string implementation always puts 16 bytes on the stack, and the data goes in the heap. But for strings up to 15 bytes that could all go on the stack instead
15:19:18*disruptek πŸŽ‰
15:19:21FromDiscord_<demotomohiro> short string optimization?
15:19:23leorizeafter I fix nimph to not hardcode compiler path ofc
15:19:30shashlick@leorize: can you please clear this - https://github.com/nim-lang/nimble/pull/768/files#diff-207d4044eeccdbc778987497fffd081eL104
15:19:31disbotβž₯ nimscript{wrapper,api}: don't copy generated script to package directory
15:19:38shashlicknit
15:20:09disruptekZevv: that sounds like it will be pretty fun to make work with arc.
15:20:27leorizeshashlick: it's just trailing whitespace change, you can hide it on github if you'd like :P
15:20:35leorizeif I don't clean those whitespace up no one will
15:20:36shashlickheh πŸ™‚
15:20:45Zevvdisruptek: that should "just work"
15:20:53shashlickaah you removed them, good good
15:21:10shashlicki see you are passing in the nimble file path
15:21:10disruptekhow do you figure? you will have to copy 1/2 and move the other.
15:21:14shashlickwhat's the purpose of that
15:21:19FromDiscord_<demotomohiro> !echo sizeof("")
15:21:30disruptekit's !eval, boss
15:21:48FromDiscord_<demotomohiro> !eval echo sizeof("")
15:21:50NimBot8
15:22:00FromDiscord_<demotomohiro> @disruptek, thx
15:22:00Zevvdisruptek: no, the stack thing is always there anyway. It might or might not have something on the heap already, because strings of length 0 have a null pointer in there
15:23:13leorizeshashlick: make getPkgDir() work by faking the true path :P
15:23:18FromDiscord_<kodkuce> araq and mrtis fosdem video still no?
15:23:24leorizeit's probably better being in the compiler though
15:23:32*ng0_ joined #nim
15:23:32*ng0_ quit (Changing host)
15:23:32*ng0_ joined #nim
15:23:53disruptekright, i mean you will have to have a separate flow for strings than you do for other types, will you not?
15:24:41leorizedisruptek: I figured out how to fix the hardcoded compiler path
15:24:49disruptekwhat's your solution?
15:25:25*zielmicha__ quit ()
15:25:38*zielmicha__ joined #nim
15:25:43leorizegetCurrentCompilerExe() is a compile-time function, I just swap it out for `findExe("nim")` instead
15:26:35*ng0 quit (Ping timeout: 260 seconds)
15:26:35disrupteki mean, sure.
15:27:03disruptekdid you PR?
15:27:17leorizenope
15:27:26*adeohluwa joined #nim
15:27:40leorizemaybe I will
15:28:05*adeohluwa quit (Remote host closed the connection)
15:28:44disruptekyou should. you are the target user for nimph.
15:31:13shashlick@leorize: your workingDir change might help expand nimble to run anywhere in a project tree
15:31:57leorize\o/
15:32:25shashlicki think this looks great - let's see what d0m96 has to say
15:34:21leorizedisruptek: nimph#118
15:34:25disrupteki'm really tired of running libgit2 #head with its differing semantics. πŸ˜”
15:34:34leorizeoops nimph#119
15:34:37shashlickbest to test this with all important packages
15:34:53leorizeshashlick: yea my machine is not strong enough for that :P
15:34:59shashlickmaybe create a Nim PR that pulls latest Nimble and see how it does
15:35:05shashlickor not latest, your nimble
15:35:21leorizeI could actually upgrade nimble ci by letting it test important packages
15:35:30shashlickthat will be great
15:35:31disruptekthanks, leorize.
15:38:41shashlick@narimiran - why do nightlies releases no longer show the full description body?
15:38:49shashlicksince 1/22
15:39:46shashlick@leorize: can you also bump the devel tag in .travis.yml to ab525cc48abdbbbed1f772e58e9fe21474f70f07 (last successful nightlies)
15:40:01leorizeshashlick: does choosenim keep a copy of the compiler source that I could make use of?
15:41:07narimiranshashlick: i haven't touched them, no idea
15:41:23shashlick@leorize: you mean csources?
15:41:38leorizenope, the compiler source
15:41:50leorizeI need access to testament
15:42:01shashlickya it should be there in ~/.choosenim/toolchains/nim-#version/compiler
15:42:36*NimBot joined #nim
15:43:11*icebattle joined #nim
15:44:39*gour joined #nim
15:47:05Araqkodkuce my talk is here:
15:47:14Araqhttps://youtu.be/yA32Wxl59wo
15:48:31AraqZevv, I think SSO is not worth its costs but I'm happy to be proven wrong
15:48:54AraqSSO predates C++ move semantics and make moves slower
15:49:31AraqI'd rather see COW or O(1) slices
15:49:55Araqor maybe non-crappy benchmarks that can settle these questions
15:49:58leorizeiirc freepascal regards cow as a mistake of sorts
15:50:30FromGitter<mratsim> tried COW in Arraymancer, didn’t work, but maybe I did it wrong and with destructors it’s much faster
15:50:49Araqthe mistake is the *atomic* refcounting that freepascal does
15:51:14FromGitter<mratsim> see writeup: https://github.com/mratsim/Arraymancer/issues/157#issuecomment-346763773
15:51:14disbotβž₯ Implement copy-on-write for all backends
15:51:18Araqrefcounting itself is fine in every benchmark I happened to look at
15:54:42Araqyay, https://arstechnica.com/information-technology/2020/02/serious-flaw-that-lurked-in-sudo-for-9-years-finally-gets-a-patch/
15:54:48ZevvAraq: sure, that was about my plan: build a poc implementation to measure
15:56:00Araq"The second contributor is that the code that erases the line of asterisks doesn’t properly reset the buffer position if there is an error writing data." but why? C lacks exceptions, why does error handling remain so hard... :P
15:57:42leorizehow to I specify the commit that I want nimble to fetch in requires()?
15:58:06*Hideki_ quit (Remote host closed the connection)
15:58:12disrupteksomeurl#someoid
15:58:48*dddddd quit (Ping timeout: 260 seconds)
15:58:51*Hideki_ joined #nim
16:02:26*krux02 quit (Remote host closed the connection)
16:02:57FromDiscord_<Clyybber> Slices are the "next big thing"
16:03:22disrupteki think there's a lot of logic to slices, yes.
16:03:31FromDiscord_<Clyybber> lent logic
16:03:40disruptekyes.
16:03:53*Hideki_ quit (Ping timeout: 272 seconds)
16:04:20FromDiscord_<Clyybber> and making sink implicit
16:04:37disruptekshhh, some people think this is already the case.
16:06:26*filcuc quit (Ping timeout: 240 seconds)
16:06:42FromDiscord_<Clyybber> let them sleep
16:07:14leorizedisruptek: why does nimph try to hard to parse stdlib.nimble?
16:07:33disruptekit doesn't discriminate.
16:09:35*nsf joined #nim
16:09:46leorizeah I was building nimph with -d:debug
16:09:52leorizeno wonder while it's so noisy
16:10:03disruptekyes, that will be more noisy because nimble will complain a lot.
16:11:37leorizebtw if you wanna play with system nimble packages then you can try using the ebuilds in my gentoo overlay
16:11:59disruptekwhat's the url?
16:12:15leorizehttps://github.com/alaviss/lrz-overlay
16:12:23leorizethe overlay name is 'lrz'
16:12:44leorizeit's a personal overlay so I'd recommend to mask all packages but the ones you gonna use
16:13:16disrupteki probably won't mess with it, but i'll take a peek; thanks.
16:15:17*filcuc joined #nim
16:16:02*acidx quit (Ping timeout: 240 seconds)
16:18:18FromDiscord_<kodkuce> araq: will check
16:19:23disruptekleorize: is your palemoon build any good?
16:20:01leorizenah, I haven't update it for awhile
16:20:26leorizeit need to reflect the new UXP -> Pale-Moon split
16:21:06leorizepalemoon just become too slow for my usage so I dropped it
16:21:13disruptekyeah.
16:21:33FromDiscord_<kodkuce> firefox only real alterative to gey chrome
16:21:41*ng0_ is now known as ng0
16:21:48leorizeit was a life saver back when I couldn't get rust to run on musl though
16:22:08*ptdel joined #nim
16:22:14disruptekwhen the web was new, we used to always have a lightweight browser handy. for me, it was arena.
16:22:27disrupteki'm still looking for something like that for this modern era.
16:22:50leorizemake your own :)
16:22:58disrupteki'm not interested.
16:23:28FromDiscord_<kodkuce> browsers became bloatware πŸ™‚
16:24:48*acidx joined #nim
16:26:53leorizeI need choosenim toolchains directory tree, can someone that's using it help me with that?
16:27:09disruptekprobably not.
16:27:25disruptekwell, maybe shashlick uses it.
16:29:12shashlickWhat's up
16:29:53leorizeshashlick: what's the directory tree of choosenim toolchains dir?
16:30:01leorizeI need to know where testament is :p
16:30:41*filcuc quit (Ping timeout: 268 seconds)
16:30:54disruptekall this time i thought the /-d:danger does not imply -d:release/ was intentional.
16:31:47leorizeit was, until people forgot about it :p
16:32:04disruptekwut
16:33:07shashlick~/.choosenim/toolchains/nim-version/bin/testament
16:33:07disbotno footnotes for `/.choosenim/toolchains/nim-version/bin/testament`. πŸ™
16:33:09leorizeah no, I re read 0.20 release note
16:33:33leorizeshashlick: damn it builds testament too?
16:33:48shashlickIt now ships with Nim
16:34:03shashlickThere's also a shim
16:34:05disruptek~motto
16:34:05disbotmotto: 11not for googlers
16:34:51*Hideki_ joined #nim
16:34:58*leorize quit (Quit: WeeChat 2.6)
16:35:57disrupteki don't want to work on the compiler because it's already so good and so many people are working on it.
16:37:37shashlickHelp me with nimterop newalgo
16:37:44disruptekno.
16:37:59disruptekhey, are you sure you're right about this order-of-eval for nim.cfgs?
16:38:07shashlickTry it
16:38:17disruptekwell, nimph is fundamentally built upon it.
16:38:24disrupteki don't really need to try it. πŸ˜‰
16:38:57shashlickTry setting -d:mingw or change the OS
16:39:11shashlickIt won't change things already processed
16:39:29shashlickLikewise for things like arch
16:42:14disruptekare you expecting it to reread the nim.cfg?
16:42:27*paxis joined #nim
16:42:36disruptekthat's why we run the parsing twice; once, then again with the cli args, and then again to act on them.
16:42:50disruptekit's working correctly.
16:43:18disruptekand, as i said in the comment, it is sufficient to close the issue.
16:46:02disruptekyou think i'm off-base in https://github.com/nim-lang/nimble/issues/525
16:46:03disbotβž₯ Implement `tag` command
16:46:49disrupteki do think araq is wrong because the deficiency we have with nimble subcommands is not that they are longer to type.
16:47:08disruptekthe deficiency is in ecosystem development speed.
16:47:18disruptekthat is enhanced by decoupling subcommands.
16:50:21Araqhuh, what? do I even need to reply
16:50:28disrupteknah.
16:50:46disruptekactually, yes.
16:50:52disruptekbut you can do so here.
16:51:03Araqgood. as long as you stay around and produce nimph juice you can disagree with me all you want
16:51:06disruptektell me why we're bikeshedding this fucking thing.
16:51:20disruptekthe code is actually written in this case.
16:51:21disruptektwice.
16:53:38Araqwe eval the command line
16:53:41Araqthen the config files
16:53:45Araqthen the command line again
16:53:55disruptekoh, i had that backwards.
16:54:58disruptekbut the point remains. and i was talking about the nimble issue with respect to requiring your contribution. πŸ˜‰
16:55:15*Hideki_ quit (Ping timeout: 260 seconds)
16:55:39AraqI don't understand, just create a PR and push it through
16:56:08disruptekyes, we are literally arguing about which of two successful implementations we use in the pr for the second. it's moronic.
16:56:59disrupteki'm flattered that kristian even created the pr, but it was already a waste of programmer time.
16:57:20disrupteklet's work together on this thing.
16:57:20Araqgimme a link please and don't say #525
16:57:31disruptekhttps://github.com/nim-lang/nimble/issues/525
16:57:32disbotβž₯ Implement `tag` command
17:00:01disruptek#13322 is scary.
17:00:12Araqso ... I'm supposed to do what exactly?
17:02:50AraqI'm working on #13322
17:02:52disbothttps://github.com/nim-lang/Nim/issues/13322 -- 3gc:arc mode corrupts strings passed by iterators ; snippet at 12https://play.nim-lang.org/#ix=2aPO
17:02:59disruptekwhat is the problem?
17:03:15disruptekit's interesting enough that i may not be able to help myself.
17:03:57Araqdunno, I haven't looked at it. I'm fixing #13269
17:03:59disbothttps://github.com/nim-lang/Nim/issues/13269 -- 3--gc:arc codegen bug copying objects bound to C structs with missing C struct fields ; snippet at 12https://play.nim-lang.org/#ix=2aPP
17:04:03Araqand then #13322 is next
17:04:04disbothttps://github.com/nim-lang/Nim/issues/13322 -- 3gc:arc mode corrupts strings passed by iterators ; snippet at 12https://play.nim-lang.org/#ix=2aPO
17:07:21Araqwhat does valgrind say is the problem?
17:07:36Araqcompile with --gc:arc -d:useMalloc and see for yourself
17:08:26disruptekyeah, i had to finish that nimble rant.
17:08:48*muffindrake quit (Quit: muffindrake)
17:09:03FromDiscord_<treeform> Does valgrind works on Windows?
17:11:31*marmotini_ joined #nim
17:11:39Araqno but there is Dr.Memory which does something similar
17:14:02*marmotin_ joined #nim
17:14:06*muffindrake joined #nim
17:14:51Araquh oh, this is harder than I thought
17:15:04Araqbloody liftdestructors.nim, maybe I should rewrite it
17:15:17disruptekwhat's the problem?
17:15:21*Trustable joined #nim
17:15:41Araqsome phase ordering problem
17:16:01Araqwe produce '=' for seq[T], then for the 'T', get confused and inline the '=' for the 'T'
17:16:43*marmotini_ quit (Ping timeout: 265 seconds)
17:17:27*marmotin_ quit (Remote host closed the connection)
17:17:49*rockcavera quit (Remote host closed the connection)
17:19:18disruptekthat's a really good bug report but i don't see how it's related.
17:19:25disruptekunless you are talking about 13322...
17:20:13AraqI'm talking about #13269
17:20:15disbothttps://github.com/nim-lang/Nim/issues/13269 -- 3--gc:arc codegen bug copying objects bound to C structs with missing C struct fields ; snippet at 12https://play.nim-lang.org/#ix=2aPP
17:20:22Araqbtw here is a quote for you:
17:20:24Araq<araq> you don't read fowl's code. you make a picture of it, put a frame around it and put it on the wall.
17:20:34disruptekoh i'm reading the wrong ticket.
17:20:59disruptekah, yeah.
17:22:18disruptekwho is fowl?
17:22:37Araqhe used to use Nim extensively in its early days
17:22:51AraqI never really understood his code
17:22:53disrupteki will have to look for some artifacts. 😁
17:22:59taneAraq, btw: nice talk on sunday, enjoyed it :) I first had fear that move semantics would overcomplicate things ala C++, but I'm relieved now :)
17:23:36*sekao joined #nim
17:23:51disruptekfear not; us mortals are safe thanks to the great deity.
17:23:56Araqtane, thanks.
17:24:39tanethe devroom should be assigned to a larger room next time, as should so many others hehe
17:24:53disrupteki can't believe this didn't pop in a package previously.
17:25:03Araqit was all live-streamed too, quite nice
17:25:19disruptekthat conference was ridiculous.
17:25:49Araqridiculously bad?
17:26:07tanerather overcrowded, and I have a habit of choosing bad talks - dunno why
17:27:55taneand the kotlin devroom's room had a lot of creaking stairs/chairs and a rather silent PA, so I think watching the stream would provide more :)
17:30:14*Hideki_ joined #nim
17:30:20disruptekare you mentioning fowl because c-blake's stuff is relatively fp?
17:30:55sekaohey all. am i right that taking a slice of a sequence makes a copy of the content? if so, is there any way to just get a "view" into a sequence?
17:31:45disruptekyou can use a range.
17:32:19FromDiscord_<Rika> ? range indexes make slices do they not
17:33:06disrupteknot as an index, as a collection of adjacent indicies.
17:33:21shashlickdisruptek: sorry, was away
17:33:29disruptekit happens.
17:33:41shashlickI actually tried the `-d:mingw` in a project.nim.cfg and it does not work
17:33:48shashlickit works on the command line
17:33:54shashlickso i don't get what you are saying
17:34:06disruptekwell, i had them backwards, for one thing.
17:34:13disruptekit's cli -> cfg -> cli.
17:34:18sekaoi tried `mySeq[0..2]` but that seems to do a copy
17:34:41disruptekno, you make a range and then you iterate over it yielding seq[index].
17:35:00*Hideki_ quit (Ping timeout: 268 seconds)
17:35:06*lritter joined #nim
17:35:08sekaoah i see, thanks i'll try that
17:35:15shashlickok, so do you agree it is a valid issue
17:35:30disrupteknah.
17:35:39disruptekit changes nothing.
17:35:44shashlickugh
17:35:59disrupteki mean, am i wrong?
17:36:11shashlickdid you see the impact of -d:mingw
17:36:18shashlickit is used in the global nim.cfg
17:36:24disruptekyeah, i saw the code.
17:36:37shashlickso if you set it in a project local nim.cfg, Nim is not going to reprocess the global nim.cfg again
17:36:45shashlickso your C compiler does not change to mingw
17:37:08disruptekright. if you want variables set, you will need to set them.
17:37:14disruptekthat's the way this works.
17:37:27disrupteknim.cfg is a good example of how to do that.
17:37:45disruptekdon't you think that the user of this software wants to edit a project.nim.cfg to adjust their compilers? i do, too.
17:38:00*sekao quit (Remote host closed the connection)
17:38:06disruptekpretty sure the compilers will vary here and there for x-comp stuff.
17:38:13shashlickI do too, but it does not work!
17:38:37disruptekdon't put -d:mingw in there. put the effects of same, from default config/nim.cfg.
17:39:17shashlickso you are saying to copy over the entire @if block into the project?
17:39:25disruptekyep.
17:39:40disruptekdude. this isn't rocket science.
17:39:54disruptekdon't overthink it.
17:40:20shashlickgreat, so duplicate code instead of considering a way to fix it
17:40:26disruptekit's not broken.
17:40:42disrupteki don't know how to explain that any better; it's kinda like the concept of zero. correct.
17:41:39shashlickbasically calling a workaround a feature
17:41:54disruptekit's not a workaround. it's the direct path.
17:42:03disruptekthis is how it's designed to work.
17:42:14disruptekand, for good reason.
17:42:39shashlickso basically there's no need for any software to consider change since the way it works should be good enough for everyone
17:42:50disruptekdude. think about how it works.
17:43:02disruptekwe evaluate your config last. so this is where you can override stuff.
17:43:17disruptekif we eval your config first, then we will override it with stuff from the compiler.
17:43:20disruptekdefaults.
17:43:25disruptekwhich are no longer defaults.
17:43:32disruptekthey suddenly become assertions.
17:43:58disruptekrepeat in various shades for all the other configs we eval.
17:44:34shashlickI understand how it works, my point is that the only way to override right at the top is with the cli
17:44:44shashlickthere is a use case to override at the top since effects cascade
17:44:55shashlickand all the ask is is for a way to do that from a file
17:45:19shashlickwe can just tell the guy to add a nimble task with appropriate cli flags and to go away
17:45:24*Vladar joined #nim
17:47:03*narimiran quit (Ping timeout: 260 seconds)
17:47:19disruptekbasically, we need a way to manipulate the config file parse order from the cli, and you want to be able to do this from inside the config files themselves.
17:47:28disruptekdoes that really make sense to you?
17:48:49shashlickno, i'm not asking to change anything with the parse order
17:49:06disruptekthat's what we actually need, though.
17:49:36shashlickrather have a global.nim.cfg equivalent that gets loaded before the real global
17:50:35shashlickbut the use case isn't quite so prevalent to justify any real work
17:50:37disrupteksame thing, right?
17:50:54shashlickand there's a valid workaround to create a nimble task or call nim with the right cli params
17:51:52disruptekmaybe the best solution is `include`.
17:53:03shashlickI don't think 4raq will agree to any of this
17:53:36*rockcavera joined #nim
17:54:02disruptekwell, i see those two options. array manipulations for config parse order, or @include.
17:55:33*letto_ quit (Ping timeout: 265 seconds)
17:56:13shashlickglobal.nim.cfg is probably easier but unlikely
17:57:11leorize[m]shashlick: I don't think the choosenim used in nimble ci uses testament
17:57:35disruptekAraq: i think those two bugs are one bug.
17:57:43leorize[m]installs*
17:57:54leorize[m]getting command not found here
17:58:03leorize[m]I'm I better off just clone the compiler and build testament from there?
17:58:25leorize[m]or does choosenim keep testament sources too?
18:00:16shashlicka sec
18:00:26*narimiran joined #nim
18:01:28shashlickya I need to update my travis gist to use the latest choosenim since it should now work
18:01:56shashlickwell, actually that's just on windows
18:02:33shashlicki think it is because choosenim is cached and the newer version isn't being downloaded
18:04:35shashlick@leorize: i've deleted the cache for your PR
18:04:58shashlickbut this will not work on older versions of Nim since testament wasn't shipped on those
18:05:12shashlicklet me update the gist as well
18:05:21leorize[m]can you restart ci for me then?
18:05:42leorize[m]haizzz
18:05:50leorize[m]do you save the source somewhere
18:05:54leorize[m]i feel like it's faster if I just cd then nim c -r
18:06:23shashlickyou might want to push a commit to only run testament if >= 1.x
18:14:29*letto_ joined #nim
18:15:14shashlick@leorize: also need to fix the link to the travis.sh gist - `curl https://gist.github.com/genotrance/fb53504a4fba88bc5201d3783df5c522/raw/travis.sh -LsSf -o travis.sh`
18:15:27shashlicki had a specific commit
18:17:07shashlickah, nimble still has the old travis.yml
18:17:11shashlicklet me just fix this all
18:19:49leorize[m]ok :p
18:20:27FromDiscord_<exelotl> sekao: if you need a view into an array/seq for optimisation purposes you can use something like View from https://github.com/zielmicha/collections.nim
18:21:52*leorize joined #nim
18:22:44FromGitter<Varriount> Exelotl, sekao: or use toOpenArray
18:23:51FromDiscord_<exelotl> Are openArrays first-class now?
18:23:55leorizenope
18:26:58*hax-scramper quit (Ping timeout: 260 seconds)
18:32:10*ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:33:44shashlick@leorize - https://github.com/nim-lang/nimble/pull/770
18:33:44disbotβž₯ Use travis gist, test important packages
18:35:04leorizelgtm
18:35:25shashlicksomehow it isn't kicking off a job
18:35:44leorizeprobably one of them is being consumed somewhere
18:37:20shashlickit doesn't even show up in the github PR as a running taask
18:38:08leorizewanna get rid of travis and use something else? :P
18:38:33leorizegithub actions is an interesting piece too
18:39:30leorizedisruptek: maybe nimph can be added here? https://github.com/nim-lang/Nim/wiki/Community-Projects#package-managers
18:39:56disrupteksure.
18:42:06shashlickokay travis didn't like my bash if statement in the yml
18:42:15*Trustable quit (Remote host closed the connection)
18:42:45shashlicklet's see how it does now - https://travis-ci.org/nim-lang/nimble?utm_medium=notification&utm_source=github_status
18:45:06*dddddd joined #nim
18:50:07*Hideki_ joined #nim
18:50:32shashlick@leorize: looks like testament isn't printing anything out in important packages testing
18:51:17shashlickhttps://travis-ci.org/nim-lang/nimble/jobs/646545333
18:51:49leorizeit's just slow
18:52:10leorizeusually takes 10mins to get a line
18:53:07shashlickmight time out
18:54:02leorizeit wasn't by accident that we don't package testing on travis I guess :P
18:54:26*Hideki_ quit (Ping timeout: 240 seconds)
18:54:55shashlickya, we have a lot of time available on travis - how long does this take?
18:57:24shashlickyep - build has been terminated
18:57:58shashlickon my local machine, i'm getting output right away
18:58:20shashlickdoes testament need to flush stdout?
19:01:36leorizeshashlick: https://dev.azure.com/nim-lang/255dfe86-e590-40bb-a8a2-3c0295ebdeb1/_apis/build/builds/2379/logs/60
19:01:42leorizeabout 20mins before the first line appear
19:02:38*letto_ quit (Read error: Connection reset by peer)
19:03:04shashlickthis is an stdout buffering issue
19:03:12shashlicki'm getting output immediately
19:03:14shashlicklocally
19:03:22shashlickof course, nim-chronos is taking forever
19:13:41*icebattle quit (Ping timeout: 265 seconds)
19:14:04*theelous3 joined #nim
19:16:22*hax-scramper joined #nim
19:20:51*theelous3 quit (Ping timeout: 272 seconds)
19:38:44*l1x quit (Ping timeout: 248 seconds)
19:39:51*zielmicha__ quit (Ping timeout: 272 seconds)
19:50:09*letto joined #nim
19:53:50*icebattle joined #nim
19:54:00FromGitter<Albus70007> How can i launch an exe from the JavaScript backend?
19:54:33Yardanicouhh, if you use nodejs to run it afterwards you'll have to dig into nodejs api docs :P
19:54:51Yardanicohttps://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback
19:54:52FromGitter<Albus70007> I run it on the web
19:55:00Yardanicowell, then you can't run an exe
19:55:12Yardanicoyou can only run JS or webassembly in the browser, not PE binaries
19:55:32Yardanicoand browsers have all kinds of sandboxing so launching native exe's from browsers is forbidden
19:56:08FromGitter<Albus70007> And can i run a bat?
19:56:11Yardanicono?
19:56:21Yardanicoit's running in the browser after all
19:56:22shashlick@leorize - how come nimble-packages passes on azure but not on travis - https://travis-ci.org/nim-lang/nimble/jobs/646545342?utm_medium=notification&utm_source=github_status
19:56:26shashlickall the nim-regex failures
19:56:27Yardanicocan you run a .bat from JS in the browser?
19:57:15FromGitter<Albus70007> Ive seen examples done from within JavaScript
19:57:19Yardanicocan you link one?
19:57:38FromGitter<Albus70007> Im on the phone rn, but give me a secons
19:58:39FromGitter<Albus70007> https://stackoverflow.com/questions/18980957/is-it-possible-to-run-an-exe-or-bat-file-on-onclick-in-html
19:59:00Yardanicothat wouldn't be possible in any modern browser
19:59:20Yardanico(and I don't consider IE11 to be a modern browser)
19:59:58Yardanicoyou wouldn't be able to do that in edge (which is now based on chromium), any chromium-based browser or firefox
20:00:09FromGitter<Albus70007> So... how can i overcome this?
20:00:14*natrys joined #nim
20:00:20Yardanicoyou can't, because otherwise that'll be a huge security breach
20:00:24Yardanicowhy do you want to do that in the first place?
20:01:48FromGitter<Albus70007> A simple gui for running an exe and editing its settings that are inside a json/cfg file
20:01:59Yardanicowell, you can't use a normal browser for that
20:02:29Yardanicoyou need to use something like https://github.com/jangko/nimCEF (which seems a bit abandoned), or why not create a native GUI?
20:02:39FromGitter<Varriount> I regret not getting a ticket to FOSDEM, even if it would have been expensive (I'm all the way in the US)
20:02:40Yardanicogintro is quite easy to get started with, and GTK on windows doesn't look that bad
20:03:01Yardanicoand your simple gui app won't depend on JS and huge browsers
20:03:51*krux02 joined #nim
20:04:35FromGitter<Albus70007> hmm, i will ask the people at rlbot how they managed to run it, their gui gets displayed in the browser, but runned from a bat file (just in case that chabges things)
20:04:53*letto quit (Read error: Connection reset by peer)
20:05:06FromGitter<Albus70007> But i guess this is a good time to do a Nim gui :)
20:05:19Yardanicomaybe they just communicate between browser and some local http server?
20:05:31Yardanicoso the browser is just sending http requests to the "server-side" running natively from an .exe
20:05:39Yardanicoand this .exe launches stuff like .bat
20:08:02*letto joined #nim
20:08:32FromGitter<Albus70007> That makes sense
20:17:15FromDiscord_<demotomohiro> I thought `importc` pragma should be assumed sideEffect in default, but that is break change and need to update millions of lines of wrapper code.
20:17:16FromDiscord_<demotomohiro> https://github.com/nim-lang/Nim/issues/13306
20:17:17disbotβž₯ I can use times.epochTime() in func. ; snippet at 12https://play.nim-lang.org/#ix=28O8
20:17:36Yardanico@demotomohiro I won't agree that it should be side effect
20:17:53Yardanicoquite a lot of functions in C libs don't have any side effects :)
20:19:00FromDiscord_<demotomohiro> I saw many C libs that have side effects. libpng, libusb, opengl, GUI library, etc
20:20:06FromDiscord_<demotomohiro> Anyway, I have to accept importc is noSideEffect in default.
20:20:11Yardanicoit's not
20:20:14Yardanicosorry, it was my mistake
20:20:41Yardanicoall nim procs/functions infer the side effect status by default, unless you explicitly apply the pragma
20:21:00Yardanicoah nvm again :D
20:21:12*ptdel joined #nim
20:23:01YardanicoI wouldn't think that it will break millions of line of code though, since "func" is not really used in most of the Nim code
20:23:20Yardanicoand even noSideEffect is not used that often, especially if it calls C
20:23:23*nsf quit (Quit: WeeChat 2.7)
20:27:53*Jesin quit (Quit: Leaving)
20:27:56FromDiscord_<demotomohiro> But we cannot make breaking change after version 1.0 unless there is serious problem.
20:30:14*Jesin joined #nim
20:33:43gourcd
20:33:53narimiran~
20:33:54disbotno footnotes for ``. πŸ™
20:37:46*Hideki_ joined #nim
20:41:10*narimiran quit (Ping timeout: 265 seconds)
20:47:11*NimBot joined #nim
20:47:14Yardanicoit immediately left after you posted that link :D
20:47:17Yardanicook nvm
20:47:30disruptekdon't talk about nimbot behind her back.
20:56:01*marmotini_ joined #nim
20:56:43*Hideki_ quit (Remote host closed the connection)
20:57:28*Hideki_ joined #nim
21:02:12*Hideki_ quit (Ping timeout: 268 seconds)
21:03:39leorizeshashlick: we should pass --styleCheck:off to execNimscript too I guess
21:06:12*marmotini_ quit (Remote host closed the connection)
21:28:23*theelous3 joined #nim
21:31:06*marmotini_ joined #nim
21:32:03*Hideki_ joined #nim
21:41:51*marmotini_ quit (Remote host closed the connection)
21:47:10*gour left #nim ("Leaving")
21:50:46*Hideki_ quit (Ping timeout: 265 seconds)
21:50:54*ltriant joined #nim
21:52:14*s3govesus quit (Remote host closed the connection)
21:53:37*letto quit (Read error: Connection reset by peer)
22:05:15*s3govesus joined #nim
22:16:13FromDiscord_<Recruit_main_70007> seens like 1.0.6 still doesnt have arc:
22:16:14FromDiscord_<Recruit_main_70007> `command line(1, 2) Error: 'none', 'boehm' or 'refc' expected, but 'arc' found`
22:16:28leorize1.0.6 is a patch version
22:16:34leorizeit won't have any new features
22:16:44*Vladar quit (Quit: Leaving)
22:16:45leorizenewer features will come in the next major release (1.2)
22:16:46FromDiscord_<Recruit_main_70007> nvm, i remember this conversation
22:17:07FromDiscord_<Recruit_main_70007> thanks XD
22:17:53FromDiscord_<exelotl> if you want to use arc you'll have to clone the nim repo and build from source
22:18:13*cgfuh quit (Quit: WeeChat 2.6)
22:19:20FromDiscord_<Recruit_main_70007> i think i can wait, (i hope)
22:19:43*nullwarp quit (Ping timeout: 268 seconds)
22:20:29FromGitter<alehander92> Varriount we still think about nimconf :P
22:20:35xaceAlbus70007: The way I have executed PEs from the browser is by registering a executable to a protocol. for example I have registered vlc:// to open links in vlc for me
22:20:41FromGitter<alehander92> (another guy that didnt go to fosdem :) )
22:21:13*natrys quit (Ping timeout: 265 seconds)
22:21:55FromDiscord_<Recruit_main_70007> xace, i am also albus, but when i am out, i cant log into discord, so use gitter, but thank you
22:22:28xaceyeah i figured by 70007 suffix in the name, but i hadn't read that far in the chat yet
22:22:48FromGitter<matrixbot> `free pump` is it possible to instantiate an object via varargs to a macro or something?
22:23:08leorizecan you be more clear?
22:23:16leorizealso join #freenode_#nim:matrix.org
22:23:40leorizethat's the IRC bridge so you don't have to double bridging
22:24:01*freepump[m] joined #nim
22:24:13leorizewelcome to irc
22:24:20freepump[m]oh, nice :)
22:24:57leorizecan you explain what you're trying to do? I can't seem to get a good picture out of it
22:26:10*tane quit (Quit: Leaving)
22:26:47freepump[m]yeah one sec
22:29:16freepump[m]maybe something like: https://play.nim-lang.org/#ix=2aRE
22:29:47freepump[m]its still not a great example actually
22:29:59*sagax quit (Remote host closed the connection)
22:30:06leorizeadd what you're expecting to make it better :P
22:30:42freepump[m]https://play.nim-lang.org/#ix=2aRF
22:31:04freepump[m]the created type should be generic
22:31:35*nullwarp joined #nim
22:32:01leorizeso for that example, what are you expecting as the result? a `MyType(fielda: "first_value", fieldb: "second_value")`?
22:32:10freepump[m]yeah
22:33:43FromGitter<Varriount> xace: I think that's the best way to "execute" programs via the browser
22:34:09FromGitter<Varriount> Browsers will usually ask the user whether it should open the application (which makes sense)
22:34:09*valit joined #nim
22:34:19*natrys joined #nim
22:34:28*natrys quit (Client Quit)
22:34:53leorizeunless you're on ios iirc
22:35:16leorizea custom protocol will just forward directly to whatever app that registers for it
22:36:04*filcuc joined #nim
22:38:13*sagax joined #nim
22:38:26*valit quit (Ping timeout: 240 seconds)
22:57:54*l1x joined #nim
22:58:24*zielmicha__ joined #nim
22:58:53*solitudesf quit (Ping timeout: 252 seconds)
22:59:56*s3govesus quit (Quit: s3govesus)
23:03:36*Kaivo quit (Quit: WeeChat 2.7)
23:07:18*xet7 quit (Quit: Leaving)
23:07:37*xet7 joined #nim
23:10:05*filcuc quit (Quit: Konversation terminated!)
23:19:12*ltriant_ joined #nim
23:19:47*ltriant quit (Ping timeout: 260 seconds)
23:21:24krux02how do I find out what test failed here: https://dev.azure.com/nim-lang/Nim/_build/results?buildId=2387&view=logs&j=30931762-47c4-53b3-6a83-316eb5a6b9d7&t=b1c7d701-c448-5ecb-905d-689d8a5921e0&l=11252
23:21:38*Sembei quit (Ping timeout: 265 seconds)