00:27:46 | * | krux02_ joined #nim |
00:30:18 | * | krux02 quit (Ping timeout: 245 seconds) |
00:58:23 | * | dddddd quit (Remote host closed the connection) |
01:09:57 | * | krux02_ quit (Remote host closed the connection) |
01:11:06 | * | Hideki_ quit (Remote host closed the connection) |
01:17:12 | * | couven92 quit (Quit: Client Disconnecting) |
01:18:30 | * | my_dude joined #nim |
01:22:35 | * | dadada quit (Ping timeout: 268 seconds) |
01:35:58 | * | Kevin5 joined #nim |
01:36:53 | * | Kevin5 quit (Client Quit) |
01:45:59 | * | seni quit (Quit: Leaving) |
02:09:14 | * | Jjp137 quit (Quit: Leaving) |
02:09:26 | * | Jjp137 joined #nim |
02:17:39 | * | chemist69 quit (Ping timeout: 272 seconds) |
02:18:24 | * | ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
02:18:57 | * | chemist69 joined #nim |
03:02:10 | * | icebattle quit (Quit: leaving) |
03:08:52 | * | ptdel joined #nim |
03:28:09 | * | muffindrake quit (Ping timeout: 246 seconds) |
03:30:34 | * | muffindrake joined #nim |
03:47:01 | * | rockcavera quit (Remote host closed the connection) |
04:45:11 | * | nsf joined #nim |
05:02:38 | FromGitter | <xflywind> Hello, I got an error, but don't know why |
05:02:40 | FromGitter | <xflywind> https://gist.github.com/xflywind/16192857c39f918632706d81523e6aca |
05:04:01 | FromGitter | <xflywind> "type mismatch: got <proc (ctx: Context): Future[system.void]{.locks: <unknown>.}> ⏎ but expected 'HandlerAsync = proc (ctx: Context): Future[system.void]{.closure, gcsafe.} |
05:04:18 | FromGitter | <xflywind> complete code in https://github.com/planety/prologue/blob/master/src/prologue/core/middlewaresbase.nim |
05:12:33 | * | marmotini_ joined #nim |
05:17:07 | * | marmotini_ quit (Ping timeout: 260 seconds) |
05:17:36 | * | marmotini_ joined #nim |
05:25:15 | * | Jjp137 quit (Read error: Connection reset by peer) |
05:25:34 | * | Jjp137 joined #nim |
05:27:30 | FromDiscord | <Rika> xflywind it's not a closure and isnt annotated as gcsafe |
05:28:06 | FromDiscord | <Rika> add the two pragmas from the error into the code, i assume |
05:29:25 | FromGitter | <xflywind> Thanks,but why `doNothingClosureMiddleware` don't return closure function? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e4cc7b4d97c107ed2604dfa] |
05:30:05 | * | skrylar joined #nim |
05:30:10 | skrylar | boop |
05:47:50 | * | Jjp137 quit (Quit: Leaving) |
05:47:57 | * | Jjp137 joined #nim |
06:00:02 | * | ptdel quit (Ping timeout: 260 seconds) |
06:04:20 | * | narimiran joined #nim |
06:22:49 | * | xet7 quit (Remote host closed the connection) |
06:23:59 | * | xet7 joined #nim |
06:38:32 | * | chemist69 quit (Ping timeout: 260 seconds) |
06:39:23 | * | chemist69 joined #nim |
06:51:42 | * | hoijui joined #nim |
07:03:42 | * | jjido joined #nim |
07:11:44 | * | solitudesf joined #nim |
07:55:44 | * | skrylar quit (Quit: WeeChat 2.7) |
08:00:00 | * | gmpreussner quit (Quit: kthxbye) |
08:03:50 | * | my_dude quit (Quit: ZZZzzz…) |
08:04:26 | * | my_dude joined #nim |
08:04:38 | * | my_dude quit (Client Quit) |
08:05:04 | * | my_dude joined #nim |
08:05:11 | * | gmpreussner joined #nim |
08:05:25 | * | my_dude quit (Client Quit) |
08:06:01 | * | my_dude joined #nim |
08:06:12 | * | my_dude quit (Client Quit) |
08:06:49 | * | my_dude joined #nim |
08:06:59 | * | my_dude quit (Client Quit) |
08:07:37 | * | my_dude joined #nim |
08:07:46 | * | my_dude quit (Client Quit) |
08:08:21 | * | my_dude joined #nim |
08:08:34 | * | my_dude quit (Client Quit) |
08:11:21 | * | my_dude joined #nim |
08:18:25 | * | couven92 joined #nim |
08:19:37 | * | my_dude quit (Quit: my_dude) |
08:20:33 | * | solitudesf quit (Ping timeout: 272 seconds) |
08:30:13 | * | dadada joined #nim |
08:30:36 | * | dadada is now known as Guest81555 |
08:35:17 | * | l1x quit (Ping timeout: 248 seconds) |
08:37:20 | * | tane joined #nim |
08:37:22 | * | xet7 quit (Quit: Leaving) |
08:37:24 | * | l1x joined #nim |
08:38:51 | FromDiscord | <sveri> Hi, using htmlgen I can see that I can do stuff like `htmlgen.td(class = "table", "sdf")` But when I try to use data-label like this: `htmlgen.td(data-label = "table", "sdf")` I get an error: Error: cannot extract identifier from node: data - label |
08:38:51 | FromDiscord | <sveri> Is there a way to use data-label? Or does it have to be supported by htmlgen, which it is not right now? |
08:39:05 | * | xet7 joined #nim |
08:39:50 | FromGitter | <xflywind> you can use `data-label` |
08:40:02 | * | my_dude joined #nim |
08:40:29 | FromGitter | <xflywind> ````data-label```` |
08:41:42 | FromDiscord | <sveri> You mean like this: ` ``data-label`` ` |
08:42:11 | FromDiscord | <sveri> You mean like this: "`data-label`" |
08:42:22 | FromGitter | <xflywind> ```td(`data-label` = "table", "sdf")``` |
08:42:24 | FromDiscord | <sveri> with backticks? It's hard to write this in discord 😄 |
08:42:56 | FromGitter | <xflywind> yes |
08:43:04 | FromDiscord | <sveri> Then I get another error: Error: invalid attribute for 'td' element: data-label |
08:43:58 | FromGitter | <xflywind> maybe not support this attrs |
08:44:21 | FromDiscord | <sveri> Yea, that's what I assume too. |
08:46:53 | Araq | fix it, it ain't hard |
08:54:34 | * | sagax joined #nim |
09:03:57 | * | floppydh joined #nim |
09:06:06 | FromGitter | <alehander92> ah this is not karax |
09:06:11 | FromGitter | <alehander92> i was confused for a while |
09:07:54 | * | zickzackv joined #nim |
09:13:01 | WilhelmVonWeiner | why can let be a block but not import |
09:13:46 | zickzackv | I thought about the same thing. It would feel much more (lispy) |
09:14:25 | * | LER0ever joined #nim |
09:14:27 | Araq | it would produce weird scoping rules |
09:14:42 | Araq | D tried that and in the end they had to special case the scoping just for that |
09:15:02 | Araq | I learn from other's mistakes too, not just from my own :P |
09:15:35 | * | lritter joined #nim |
09:16:24 | WilhelmVonWeiner | fair |
09:17:39 | zickzackv | :-) |
09:18:31 | zickzackv | so in the end `let` manipulates the current scope instead of creating a new one? |
09:21:21 | * | rokups joined #nim |
09:25:29 | zickzackv | I would like to get the value of an ordinal enum. How do do I get that number? Via a cast? Or is there a "nicer" way? |
09:28:10 | FromGitter | <timotheecour> ord |
09:28:29 | zickzackv | Thanks |
09:36:18 | * | my_dude quit (Quit: ZZZzzz…) |
09:36:58 | * | my_dude joined #nim |
09:36:58 | WilhelmVonWeiner | how would I add a default value to a parameter which is a user-defined type? |
09:37:06 | * | my_dude quit (Client Quit) |
09:38:10 | * | my_dude joined #nim |
09:38:14 | WilhelmVonWeiner | without specifying an actual value(?) |
09:38:28 | * | my_dude quit (Client Quit) |
09:39:03 | * | my_dude joined #nim |
09:39:09 | WilhelmVonWeiner | http://ix.io/2c7K at `kv: var seqpair = seqpair` |
09:39:15 | * | my_dude quit (Client Quit) |
09:39:45 | * | my_dude joined #nim |
09:40:03 | * | my_dude quit (Client Quit) |
09:40:38 | * | my_dude joined #nim |
09:40:50 | * | my_dude quit (Client Quit) |
09:41:25 | * | my_dude joined #nim |
09:41:37 | * | my_dude quit (Client Quit) |
09:42:13 | * | my_dude joined #nim |
09:42:24 | * | my_dude quit (Client Quit) |
09:43:01 | * | my_dude joined #nim |
09:43:12 | * | my_dude quit (Client Quit) |
09:43:48 | * | my_dude joined #nim |
09:43:59 | * | my_dude quit (Client Quit) |
09:44:17 | FromDiscord | <Rika> what do you mean |
09:44:26 | FromDiscord | <Rika> ah, `default(seqpair)` |
09:44:47 | * | zyklon quit (Ping timeout: 240 seconds) |
09:45:41 | WilhelmVonWeiner | `default(seqpair)` is immutable |
09:47:42 | WilhelmVonWeiner | but that is the kind of thing i'm looking for |
10:09:07 | * | zyklon joined #nim |
10:21:11 | Araq | var parameters cannot have default values |
10:21:22 | Araq | and types are not default values |
10:25:10 | FromDiscord | <Rika> also yeah what's the point of a default var param? |
10:25:17 | FromDiscord | <Rika> isnt that one of the pitfalls of python? |
10:25:30 | FromDiscord | <Rika> the "using a list as default value" gotcha |
10:28:39 | WilhelmVonWeiner | I never considered that a gotcha |
10:29:34 | Araq | it's a special case in Python and I never understood the point. Looked like an implementation bug to me |
10:30:16 | FromDiscord | <Rika> it doesnt feel intentional really |
10:30:26 | Araq | def f(x = []): pass; it means f() is different from f([]) |
10:30:29 | FromDiscord | <Rika> there are better ways to approach the same behavior |
10:30:37 | Araq | breaking the default parameter completely. |
10:31:05 | WilhelmVonWeiner | they're two different []s |
10:31:16 | Araq | every other language: "default parameters are filled out for you if you leave them out" |
10:31:28 | Araq | Python: "and they have some special crazy lifetimes" |
10:34:20 | FromDiscord | <exelotl> Lol wtf |
10:35:41 | Araq | I mean, it's not the end of the world and it doesn't make Python a "flawed" language but it's not something I would copy over to a newer language |
10:39:27 | Araq | in fact, they should have fixed that for Python 3 IMO. |
10:42:58 | FromDiscord | <Rika> `default parameters are filled out for you if you leave them out` what do you mean? i dont understand this |
10:44:34 | Araq | it's a very rough definition for default parameters |
10:45:17 | * | jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:45:41 | Araq | you have a call to a proc p, you need to give it the arguments 'p' expects but you can leave out parameters of 'p' that have a default. |
10:46:25 | Araq | that's the point of default parameters, you can leave stuf out at the callsite. |
10:47:10 | federico3 | Araq: is this a rant you wanted to write? http://blog.rfox.eu/en/Programmer_s_critique_of_missing_structure_of_oper.html |
10:49:20 | * | my_dude joined #nim |
10:49:36 | Araq | federico3, interesting, will read |
10:50:35 | * | Vladar joined #nim |
10:51:43 | federico3 | the complaints around docker and ansible are spot on |
10:52:46 | federico3 | other than that, it doesn't really propose any workable solution |
10:55:43 | * | chemist69 quit (Ping timeout: 245 seconds) |
10:56:07 | * | chemist69 joined #nim |
10:58:54 | WilhelmVonWeiner | federico3: I thought the same thing |
10:59:30 | WilhelmVonWeiner | it doesn't rant to a particular conclusion, it just trails off, and does it in way, way too many words |
11:05:22 | Araq | yeah, it's spot on. "Solving" it is pretty hard though. I mean, it's simple to solve, simply use Smalltalk/Lisp for everything |
11:05:48 | Araq | but it's impossible with the current setups |
11:06:58 | federico3 | there's very little that "the OS" can do: it's an ecosystem (and human) problem. But a lot can be done to develop and popularize good serialization formats |
11:31:03 | * | rockcavera joined #nim |
11:31:32 | * | Guest81555 is now known as dadada |
11:33:58 | dadada | alehander92: hi, I like your breeze module, the only thing that bothers me is that there were no updates in 2 years (at least not visible on github) |
11:34:14 | * | NimBot joined #nim |
11:34:34 | Araq | sometimes software can be finished :-) |
11:35:13 | dadada | Araq: in that case, why isn't it part of the standard library? |
11:37:19 | * | abm joined #nim |
11:37:27 | Araq | no RFC, no push for it, other alternatives exist |
11:38:46 | dadada | I'd like to know what those alternatives are, besides simply not using it |
11:39:36 | FromDiscord | <clyybber> I pushed for it a bit |
11:39:40 | dadada | I mean you can write the code with the usual nnk*.newTree() syntax, of course |
11:39:43 | FromDiscord | <clyybber> but not enough to write an RFC |
11:40:49 | dadada | I'm pushing! :D |
11:46:09 | * | marmotini_ quit (Remote host closed the connection) |
11:46:42 | * | marmotini_ joined #nim |
11:50:41 | WilhelmVonWeiner | `And note that even Haskell - the king of monads! - has exceptions and doesn't return Option[T] for e.g. "out of memory".` |
11:50:56 | WilhelmVonWeiner | damn Araq you went in guns blazing about the option monad |
11:51:00 | * | marmotini_ quit (Ping timeout: 248 seconds) |
11:51:02 | * | vycb[m] quit (*.net *.split) |
11:51:06 | WilhelmVonWeiner | option type even |
11:51:53 | * | vycb[m] joined #nim |
11:57:01 | * | couven92 quit (Read error: Connection reset by peer) |
11:57:27 | * | couven92 joined #nim |
11:58:22 | zickzackv | WilhelmVonWeiner, can you please post the link (again?) from where you quoted Araq? |
12:01:33 | WilhelmVonWeiner | https://forum.nim-lang.org/t/323 |
12:01:53 | Araq | dadada, write an RFC already |
12:07:25 | Araq | actually one of my favourite quotes is |
12:07:32 | Araq | "Monads also compose poorly with each other" |
12:07:40 | Araq | from https://gist.github.com/lattner/429b9070918248274f25b714dcfc7619 |
12:08:22 | Araq | so there, they don't compose well. Haskell demystified. |
12:10:53 | * | rokups quit (Quit: Connection closed for inactivity) |
12:11:14 | * | ikan-keli_ quit (Quit: ZNC 1.8.x-git-125-e415d9f5 - https://znc.in) |
12:11:32 | * | ikan-keli_ joined #nim |
12:12:26 | FromDiscord | <clyybber> I have to confess, I don't entirely understand https://github.com/nim-lang/Nim/issues/13430 |
12:12:28 | disbot | ➥ Strange Table memory error ; snippet at 12https://play.nim-lang.org/#ix=2c3d |
12:14:18 | Araq | clyybber: the example is broken, you need to follow the nim playground link |
12:14:49 | FromDiscord | <clyybber> ah, I see. I couldn't repro it because of that |
12:15:28 | * | nsf quit (Quit: WeeChat 2.7) |
12:15:39 | Araq | updated it |
12:15:56 | FromDiscord | <clyybber> thanks |
12:19:54 | FromDiscord | <clyybber> Still too stupid |
12:20:04 | FromDiscord | <clyybber> seqs have value semantics so why is this happening? |
12:21:47 | FromDiscord | <clyybber> aaah |
12:21:51 | FromDiscord | <clyybber> got it now |
12:22:50 | Araq | once again, https://nim-lang.org/docs/manual_experimental.html#aliasing-restrictions-in-parameter-passing |
12:23:12 | FromDiscord | <clyybber> I don't entirely see how it relates |
12:23:23 | FromDiscord | <clyybber> IMO the table2 should be a copy |
12:23:26 | FromDiscord | <clyybber> of the global |
12:23:41 | FromDiscord | <clyybber> and the `=` used to copy must call `=` on the seq |
12:24:17 | Araq | you don't want pass-by-copy for Nim. |
12:24:37 | Araq | it would be a desaster for performance and people would use 'ptr' or 'var' or 'ref' everywhere |
12:24:42 | Araq | destroying the language |
12:24:58 | FromDiscord | <clyybber> Hmm |
12:25:59 | * | mattmurr joined #nim |
12:26:07 | Araq | we might add an RC to seqs/strings but this would only mitigate the problem |
12:26:26 | Araq | and it's questionable, a seq has a unique pointer inside |
12:28:05 | FromDiscord | <clyybber> So we have to forbid changing upvalues that are also passed as arguments |
12:28:06 | * | tefter quit (Quit: WeeChat 2.7) |
12:28:47 | Araq | yeah or alternatively f(someGlobal) is only allowed if f is .noSideEffect |
12:29:09 | FromDiscord | <clyybber> yeah |
12:29:24 | Araq | it gets tricky really fast though, let tmp = someGlobal; f(tmp) # well ok, 'let' introduces a copy then |
12:29:39 | FromDiscord | <clyybber> yeah, it must |
12:29:57 | FromDiscord | <clyybber> globals shall never be moved/sinked IMO |
12:31:08 | FromDiscord | <clyybber> And then we can also allow f(someGlobal) as long as f doesn't access someGlobal by itself and not through the param |
12:31:35 | FromDiscord | <clyybber> For that we must provide that no globals alias each other |
12:32:23 | Araq | globals never do |
12:33:27 | FromDiscord | <clyybber> I wonder if deep immutability would solve this too |
12:33:46 | FromDiscord | <clyybber> disregard that |
12:35:32 | * | rockcavera quit (Remote host closed the connection) |
12:37:56 | * | dadada quit (Ping timeout: 248 seconds) |
12:38:42 | FromDiscord | <clyybber> Araq: Do you think there are sound alias rules with which we can forbid this invalid usage? |
12:38:55 | FromDiscord | <clyybber> Without restraining it to f being a func |
12:39:15 | FromDiscord | <clyybber> because that would be a bit bad for procs declared inside a scope |
12:44:12 | Araq | I think it's not much of a problem, Spark works |
12:44:42 | Araq | and the problem isn't severe either, it comes up rarely, only affects badly written code |
12:45:01 | Araq | and is usually solved by learning about 'var T' and Nim |
12:45:44 | FromDiscord | <clyybber> Yeah, but it's not immediately obvious why it happens |
12:45:50 | FromDiscord | <clyybber> so IMO the compiler should tell you |
12:48:19 | FromDiscord | <clyybber> Basically we should keep track of what "outside" variables a proc modifies |
12:48:48 | FromDiscord | <clyybber> and do it in a transitive way |
12:48:57 | Araq | just implement my rules |
12:49:01 | FromDiscord | <clyybber> and then check at callsite that we don't pass these values |
12:49:06 | FromDiscord | <clyybber> Araq: Which ones? |
12:49:11 | FromDiscord | <clyybber> the f must be a func? |
12:49:27 | Araq | yeah |
12:49:38 | FromDiscord | <clyybber> But its overly pessimistic |
12:50:01 | FromDiscord | <clyybber> Also the problem isn't exclusive to globals |
12:50:11 | Araq | it's the only good way, else you track too many implementation details |
12:50:35 | Araq | well yes, there are these rules too |
12:50:36 | Araq | Two output parameters should never be aliased. |
12:50:36 | Araq | An input and an output parameter should not be aliased. |
12:50:36 | Araq | An output parameter should never be aliased with a global or thread local variable referenced by the called proc. |
12:50:38 | * | dadada joined #nim |
12:50:47 | Araq | we have alias analysis in the compiler |
12:50:56 | Araq | you might as well take advantage of it |
12:51:01 | * | dadada is now known as Guest28338 |
12:51:15 | Guest28338 | can a macro generate a completely new macro? |
12:51:50 | * | Guest28338 is now known as dadada |
12:52:56 | Araq | sure |
12:54:28 | * | hoijui quit (Ping timeout: 248 seconds) |
12:56:30 | FromDiscord | <clyybber> Araq: The problem I have with your proposal is that it will disallow this: https://play.nim-lang.org/#ix=2c8E |
12:56:35 | FromDiscord | <clyybber> Which is perfectly valid code |
12:56:49 | FromDiscord | <clyybber> noSideEffect is too coarse here |
12:56:59 | FromDiscord | <clyybber> we must track wether it modifies globals/upvalues |
12:57:14 | FromDiscord | <clyybber> because it then acts like an output parameter |
12:59:35 | * | nc-x[m] joined #nim |
13:08:32 | * | nc-x[m] is now known as nc-x |
13:09:43 | * | nc-x quit (Quit: authenticating) |
13:09:50 | * | nc-x joined #nim |
13:17:53 | * | nc-x left #nim ("User left") |
13:22:21 | stefantalpalaru | is there a *.config.nims equivalent for file-specific configurations like foobar.nim.cfg? There's a parsing order problem where all *.cfg files are parsed before all *.nims files. |
13:22:42 | nisstyre | stefantalpalaru: I don't think so, but that would be a nice feature |
13:26:32 | FromDiscord | <clyybber> stefantalpalaru: Does foobar.config.nims not work? |
13:30:53 | stefantalpalaru | No, it doesn't with nim-1.0.6. |
13:33:35 | narimiran | The results of Nim Community Survey 2019 are now available at: https://nim-lang.org/blog/2020/02/18/community-survey-results-2019.html |
13:34:53 | * | azed joined #nim |
13:37:36 | FromDiscord | <clyybber> stefantalpalaru: Can you open an issue? IMO it should. |
13:39:55 | * | dddddd joined #nim |
13:41:38 | FromDiscord | <Rika> > older than 60 |
13:41:39 | FromDiscord | <Rika> daaaaaaaaamn thats cool as fuck |
13:45:45 | FromDiscord | <clyybber> oh shit, kakoune gang's in the survey |
13:47:24 | * | rockcavera joined #nim |
13:48:38 | narimiran | focusing only on the important bits :D |
13:52:18 | FromDiscord | <Rika> > no my company doesnt allow it |
13:52:21 | FromDiscord | <Rika> big F |
14:09:50 | * | solitudesf joined #nim |
14:15:32 | * | couven92 quit (Ping timeout: 258 seconds) |
14:20:28 | leorize | @mratsim: is nim-stint still maintained? |
14:28:06 | * | marmotini_ joined #nim |
14:40:40 | * | azed quit (Quit: WeeChat 2.7) |
14:42:18 | FromDiscord | <clyybber> @mratsim |
14:54:35 | * | JustASlacker joined #nim |
15:03:19 | FromDiscord | <mratsim> yes |
15:03:30 | FromDiscord | <mratsim> it's key library |
15:04:33 | * | my_dude quit (Quit: ZZZzzz…) |
15:18:37 | * | zickzackv quit (Ping timeout: 265 seconds) |
15:35:39 | Araq | github is broken |
15:37:05 | FromDiscord | <Rika> ? what happened |
15:37:46 | leorize | https://www.githubstatus.com/ |
15:42:44 | Araq | can't merge pull requests |
15:43:14 | leorize | so to implement the basic converter in the ryu paper, you need an arbitrary precision floating point type... |
15:43:34 | leorize | well I guess there's a reason why ryu is used and not that converter |
15:47:30 | * | nsf joined #nim |
15:52:15 | * | ptdel joined #nim |
15:54:23 | * | JustASlacker quit (Ping timeout: 265 seconds) |
16:01:53 | * | Kaivo quit (Quit: WeeChat 2.7) |
16:07:46 | * | tiorock joined #nim |
16:07:46 | * | tiorock quit (Changing host) |
16:07:46 | * | tiorock joined #nim |
16:07:46 | * | rockcavera is now known as Guest35090 |
16:07:46 | * | Guest35090 quit (Killed (weber.freenode.net (Nickname regained by services))) |
16:07:46 | * | tiorock is now known as rockcavera |
16:24:33 | FromDiscord | <clyybber> ugh |
16:24:45 | FromDiscord | <clyybber> now we have testutil |
16:24:50 | FromDiscord | <clyybber> in the stdlib |
16:25:18 | leorize | testutil? |
16:25:31 | FromDiscord | <clyybber> testutils |
16:25:33 | FromDiscord | <clyybber> yeah |
16:25:36 | FromDiscord | <clyybber> its bloat |
16:25:40 | FromDiscord | <Rika> another testing framework??? |
16:25:43 | FromDiscord | <clyybber> no |
16:25:47 | FromDiscord | <clyybber> literally two templates |
16:26:05 | FromDiscord | <Rika> what's it for then |
16:26:25 | FromDiscord | <clyybber> to use it in tests, to save 5 keypresses |
16:26:28 | FromDiscord | <clyybber> or 10 |
16:26:30 | FromDiscord | <clyybber> i dunno |
16:29:31 | Araq | clyybber: PRs are accepted |
16:31:25 | Araq | and we don't have that in stdlib, it's not listed from lib.rst |
16:31:42 | Araq | we'll move it around, or remove it again |
16:35:35 | disruptek | leorize: nice work on ryu. |
16:36:05 | FromDiscord | <clyybber> I'm making a PR to remove it |
16:40:41 | leorize | disruptek: thanks :) |
16:40:50 | FromDiscord | <clyybber> Araq: Whats left to be done on your branch? |
16:42:07 | Araq | I'm fixing bugs |
16:42:17 | Araq | and then it's still not done at all :-( |
16:42:25 | Araq | # Todo: |
16:42:25 | Araq | # - make variables scope based too |
16:42:25 | Araq | # - ensure correctness for 'or' and 'elif' constructs |
16:42:39 | FromDiscord | <clyybber> if variables are not scope based yet, what is? |
16:44:57 | Araq | temporaries |
16:46:03 | FromDiscord | <clyybber> ah |
16:49:40 | * | Trustable joined #nim |
16:49:48 | * | floppydh quit (Quit: WeeChat 2.7) |
16:54:22 | disruptek | Araq: like this: raise newException(ValueError, "could not identify a sane tag") |
16:54:37 | * | JustASlacker joined #nim |
16:55:04 | disruptek | https://github.com/disruptek/bump/blob/master/bump.nim#L298 |
16:55:57 | disruptek | leorize: oh, i know what i wanted to hit you up about. |
16:56:48 | disruptek | your patch to nimph. the reason i wrote it the way i did is because we rely upon the current compiler's semantics implicitly, because we're built against the compiler's code. |
17:03:11 | * | JustASlacker quit (Ping timeout: 260 seconds) |
17:04:31 | FromDiscord | <clyybber> lol that feed-nim logo is amazing |
17:04:56 | FromDiscord | <clyybber> oh, its a fork |
17:21:23 | leorize[m] | disruptek: well yes but the user might have more than one compiler, no? ie. choosenim-based system |
17:22:27 | disruptek | yes, which is why we use the compiler we were built with -- it's the one that behaves according to the code we built nimph with. |
17:23:52 | * | qwertfisch is now known as kaputt |
17:25:11 | disruptek | think pathSubs(), for example. |
17:33:54 | * | nsf quit (Quit: WeeChat 2.7) |
17:58:42 | * | tiorock joined #nim |
17:58:42 | * | tiorock quit (Changing host) |
17:58:42 | * | tiorock joined #nim |
17:58:42 | * | rockcavera quit (Killed (card.freenode.net (Nickname regained by services))) |
17:58:42 | * | tiorock is now known as rockcavera |
17:59:33 | * | lritter quit (Quit: Leaving) |
18:12:30 | stefantalpalaru | Some benchmark numbers for the impact of libbacktrace-based stack tracing: https://github.com/status-im/nim-beacon-chain/pull/745#issuecomment-588360225 |
18:12:32 | disbot | ➥ lightweight stack traces |
18:25:48 | * | Trustable quit (Remote host closed the connection) |
18:51:13 | * | jjido joined #nim |
18:53:27 | * | dadada quit (Remote host closed the connection) |
18:59:04 | disruptek | why does the func keyword exist? |
18:59:47 | lqdev[m] | it's a shortcut to .noSideEffects, which can be useful in cases like multithreading. |
19:00:10 | disruptek | so, to save a few characters? |
19:00:23 | lqdev[m] | pretty much, yeah. |
19:01:11 | FromDiscord | <clyybber> disruptek: its handy |
19:01:22 | lqdev[m] | don't worry, I don't like it too. I mean, why have another keyword that only really adds a pragma and consumes a valid identifier in the process? |
19:01:23 | disruptek | to say a few characters, yes, i get it. |
19:01:48 | FromDiscord | <clyybber> I like it |
19:02:02 | disruptek | i just love trying to debug around it with echo. |
19:02:08 | disruptek | much fun. |
19:02:14 | FromDiscord | <Recruit_main_70007> i also do, but still dont really understand what exactly a side effect is |
19:02:36 | FromDiscord | <clyybber> its when you read or modify something not in your responsibility/params |
19:02:45 | FromDiscord | <clyybber> disruptek: What problem? |
19:03:04 | disruptek | any problem in status code and, in future, nim's stdlib. |
19:03:12 | disruptek | gonna be a real fun feature. |
19:03:33 | FromDiscord | <clyybber> ? |
19:03:40 | * | jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
19:03:41 | disruptek | i dunno why i'm so salty today. |
19:04:50 | disruptek | clyybber: which part of that don't you understand? |
19:08:44 | FromGitter | <Vindaar> @disruptek you're aware of `debugecho`, yes? |
19:09:22 | disruptek | does it work in unittest? |
19:10:54 | disruptek | it does. |
19:10:57 | disruptek | whee, thanks. |
19:12:55 | * | my_dude joined #nim |
19:13:18 | FromDiscord | <clyybber> clyybber: All of it |
19:13:22 | FromDiscord | <clyybber> disruptek: All of it |
19:13:29 | FromDiscord | <clyybber> Like, which status code? |
19:13:45 | disruptek | i'm trying to fix results. |
19:13:49 | disruptek | !repo disruptek/badresults |
19:13:50 | disbot | https://github.com/disruptek/badresults -- 9badresults: 11like results but worse 15 0⭐ 0🍴 |
19:14:54 | FromDiscord | <clyybber> whats the actual problem tho? |
19:15:32 | disruptek | it segfaults under cpp/arc/goto. |
19:16:00 | * | my_dude quit (Client Quit) |
19:16:07 | FromDiscord | <clyybber> but not due to echo being or not being func? |
19:16:56 | disruptek | All of it. |
19:17:26 | disruptek | i need the whole file to work. all the time. |
19:26:48 | Araq | disruptek, there is debugEcho |
19:26:56 | Araq | which is 'echo' for within funcs |
19:26:57 | disruptek | thanks, it works. |
19:28:13 | * | my_dude joined #nim |
19:38:02 | * | njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
19:38:12 | * | njoseph joined #nim |
19:38:49 | FromGitter | <Varriount> disruptek: That documentation is very snarky |
19:39:05 | disruptek | what? |
19:40:11 | disruptek | i mean, i'm sure it is, but i have no idea what you're talking about. |
19:42:45 | * | ptdel quit (Ping timeout: 240 seconds) |
19:48:07 | * | hoijui joined #nim |
19:48:19 | * | zedeus quit (Ping timeout: 265 seconds) |
19:49:33 | disruptek | cpp --gc:arc --exceptions:goto codegen err: https://travis-ci.org/disruptek/bump/jobs/652604967 |
19:49:39 | disruptek | (on osx) |
19:50:16 | disruptek | ... in strutils. 👀 |
19:51:33 | disruptek | shashlick: have you always used clang in your travis script? |
19:52:06 | * | k0mpjut0r joined #nim |
19:54:30 | * | ptdel joined #nim |
19:54:47 | * | ptdel quit (Client Quit) |
19:55:06 | * | ptdel joined #nim |
19:57:14 | shashlick | Nothing explicit in there is it? |
19:59:31 | disruptek | no idea. who chooses the compiler? travis himself? |
20:07:59 | * | JustASlacker joined #nim |
20:08:43 | FromGitter | <alehander92> disruptek |
20:08:46 | FromGitter | <alehander92> you can use debugecho |
20:08:49 | FromGitter | <alehander92> i araq said it |
20:08:51 | FromGitter | <alehander92> ah( |
20:08:55 | FromGitter | <alehander92> ah* |
20:09:15 | FromGitter | <alehander92> i think its useful as it motivates the programmer to use noSideEffect |
20:09:27 | FromGitter | <alehander92> its a bit like why let is not var a {.let.} imho |
20:10:05 | shashlick | disruptek: chooses compiler? What do you mean |
20:22:36 | * | couven92 joined #nim |
20:29:10 | disruptek | when is it gcc and when is it clang? roulette? |
20:30:00 | disruptek | i'm in favor of the concept of side-effect free functions. i'm just not in favor of not giving the programmer an escape hatch. |
20:30:51 | disruptek | this is why badresults exists. because, basically, i could not impose upon arnetheduck to relax the requirement that every `$` implemented for every type supported by Result must be side-effect-free. |
20:30:56 | disruptek | to me, that's absurd. |
20:33:56 | shashlick | Windows / Linux it is gcc, OSX it is clang - depends on what is in nim.cfg |
20:34:19 | shashlick | everything simply calls gcc and gcc = clang on osx |
20:34:26 | * | hoijui quit (Ping timeout: 240 seconds) |
20:36:49 | disruptek | ah, of course. 🤦 |
20:46:07 | * | marmotini_ quit (Remote host closed the connection) |
20:46:39 | * | marmotini_ joined #nim |
20:47:59 | * | ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
20:51:10 | * | marmotini_ quit (Ping timeout: 268 seconds) |
20:59:31 | * | jjido joined #nim |
21:23:21 | * | narimiran quit (Ping timeout: 272 seconds) |
21:24:01 | * | JustASlacker quit (Ping timeout: 265 seconds) |
21:51:50 | FromDiscord | <Elegant Beef> for https://github.com/zacharycarter/bgfx.nim should i use a bgfx commit from 5 months ago also just for ensured compatibillity? |
21:53:57 | FromDiscord | <Elegant Beef> using the most recent commit i get this nice error while trying to run it |
21:53:57 | FromDiscord | <Elegant Beef> `./libbgfx-shared-libRelease.so: undefined symbol: glXGetFBConfigAttrib` |
21:56:51 | FromDiscord | <clyybber> Araq: Fine to merge this https://github.com/nim-lang/Nim/pull/13435 ? |
21:56:52 | disbot | ➥ Remove testutils |
21:59:24 | FromGitter | <alehander92> oh i was wondering if we can insist on `$` to be `func` and `raises: []` |
21:59:36 | FromGitter | <alehander92> why is it absurd disruptek |
22:00:12 | FromGitter | <alehander92> there are escape hatches: debugecho uses one of those |
22:00:25 | disruptek | because when adapting to existing ffi-used code, i cannot necessarily produce something using for `$` without a side-effect. |
22:00:45 | disruptek | s/used/using/, s/using/useful/ 😉 |
22:01:36 | disruptek | i mean, sure, great. it's a nice idea when starting from scratch or when you can afford to pay people to produce all your code on spec. |
22:02:16 | FromGitter | <alehander92> well, its a great idea to me, because it makes it easier to actually use `raises: ..` |
22:02:21 | FromGitter | <alehander92> in normal code |
22:02:38 | FromGitter | <alehander92> i guess the reasons for the results lib are similar, not totally sure |
22:02:39 | disruptek | it's broken anyway. don't even bother trying to use it. |
22:02:44 | disruptek | especially with async. |
22:03:03 | FromGitter | <alehander92> but if it wasnt broken, it would make sense |
22:03:07 | FromGitter | <alehander92> same thing with func-s |
22:03:28 | FromGitter | <alehander92> anyway, imho one can simply have non-comformable $ either with other name "mytext" |
22:03:37 | FromGitter | <alehander92> or just as $ which is not in func/raises: [] |
22:03:37 | disruptek | we are likely to see exceptions fall back into favor now that araq feels they are performant, but that doesn't change the fact that this stuff doesn't actually work in the real world. |
22:03:43 | disruptek | dude. |
22:03:47 | disruptek | wishin' won't make it so. |
22:03:52 | FromGitter | <alehander92> or in "cast"/`{.noSideEffect.}`: |
22:04:05 | Araq | huh? |
22:05:23 | FromGitter | <alehander92> i am talking in general, even if i just analyze it in my head, it helps a lot to not think of at least `$` |
22:05:54 | FromGitter | <alehander92> it can always return "invalid" or something, it doesnt need to raise, its a repr function |
22:06:08 | disruptek | nim-result demands a func for `$`. |
22:06:11 | disruptek | badresults does not. |
22:06:57 | FromGitter | <alehander92> and there is no good reason for `$` to echo |
22:07:13 | disruptek | who said anything about echo? |
22:07:20 | FromGitter | <alehander92> ok, what kind of side effects |
22:07:27 | disruptek | ffi |
22:07:28 | FromGitter | <alehander92> can happen otherwise? logging ? |
22:07:48 | FromGitter | <alehander92> but what can that do? http request? |
22:07:59 | FromGitter | <Varriount> Loading data from disk, or from a request |
22:08:37 | disruptek | it can do anything. that's the point. |
22:08:43 | FromGitter | <alehander92> well, maybe it isn't great to make `$` do stuff like this, but i can see this is a matter of taste |
22:09:18 | FromGitter | <alehander92> but to me it would've been reasonable if we were started from a clean sheet, as disruptek hinted |
22:09:28 | disruptek | the point is, 1) i want a working Result that doesn't /require/ that i implement a `$`. 2) i also don't think i should be required to impl a `$` that is side-effect free. it's not even necessarily an option. |
22:10:02 | * | solitudesf quit (Ping timeout: 240 seconds) |
22:10:12 | FromGitter | <alehander92> well i guess it makes sense for nim-results |
22:10:22 | disruptek | sure, but gittyup is littered with gratuitous `$` funcs because dumb. |
22:10:26 | FromGitter | <alehander92> i agree that just returning objects might have many benefits |
22:10:38 | disruptek | what? |
22:10:41 | FromGitter | <alehander92> so they are both different approaches |
22:10:50 | FromGitter | <alehander92> well, returning some kind of object instead of string |
22:10:51 | * | Vladar quit (Quit: Leaving) |
22:10:52 | FromGitter | <alehander92> for error |
22:16:26 | Araq | disruptek: why use it at all though? what's wrong with exceptions |
22:16:36 | FromDiscord | <Elegant Beef> Araq, dont know if you had seen my message but now my entities are just pointers to an seq[int] that i use as a bit mask for components |
22:16:59 | FromDiscord | <Elegant Beef> Using archetypes mixed with bitmasking |
22:17:28 | Araq | why? did Nim lose the 'set' datatype while I wasn't looking? |
22:18:08 | FromDiscord | <Elegant Beef> the int array is so i can use bitops and increase the size of components out of range of 32bits |
22:18:14 | FromDiscord | <Elegant Beef> or 64 bits |
22:18:20 | disruptek | wait, what? |
22:18:37 | disruptek | Araq: #11081 still open. |
22:18:38 | disbot | https://github.com/nim-lang/Nim/issues/11081 -- 3DateTime field on Exception produces inconsistent C/++ handling ; snippet at 12https://play.nim-lang.org/#ix=20PX |
22:19:08 | * | abm quit (Quit: Leaving) |
22:19:18 | FromDiscord | <Elegant Beef> the sequence just holds a bunch of int32s per archetype so i can use dynamically added components and use bit flags |
22:19:36 | Araq | disruptek: can't merge my fix because of Timothee's linenoise patch |
22:19:38 | FromDiscord | <Elegant Beef> using int32 for not having large lists and not overly allocating memory |
22:19:49 | disruptek | thems the breaks. |
22:19:57 | FromDiscord | <treeform> @Elegant Beef I also made an entity system, but ended up not using it. |
22:19:58 | Araq | use Nim's 'set' |
22:20:03 | FromDiscord | <Elegant Beef> no |
22:20:07 | FromDiscord | <Elegant Beef> im not storing idis |
22:20:07 | disruptek | please. |
22:20:09 | FromDiscord | <Elegant Beef> ids* |
22:20:15 | FromDiscord | <Elegant Beef> im storing bitflags |
22:20:19 | FromDiscord | <Elegant Beef> each int is 32 components |
22:20:27 | disruptek | sets are so nice to use, though. |
22:20:30 | FromDiscord | <exelotl> @Elegant Beef set is for storing bitflags |
22:20:36 | FromDiscord | <Elegant Beef> the sequence is ceil compoonent count/32 |
22:20:46 | FromDiscord | <Elegant Beef> it's length that is |
22:20:56 | disruptek | i think i just vomited a little into my mouth. |
22:21:01 | FromDiscord | <Elegant Beef> why? |
22:21:08 | disruptek | my sister calls that a "tasty burp." |
22:21:18 | Araq | disruptek: please... |
22:21:30 | disruptek | well, he started it. |
22:21:45 | FromDiscord | <Elegant Beef> I mean i made a wrapper for handling this all so it's super easy to use |
22:21:47 | Araq | no. |
22:22:05 | FromDiscord | <Elegant Beef> generate a mask using the ints that are got from the components at compile time |
22:22:10 | FromDiscord | <Elegant Beef> and be happy |
22:22:36 | Araq | easier than {flagA, flagB, ...} which is a builtin and more optimized than your stuff? |
22:23:21 | FromDiscord | <Elegant Beef> I mean i dont even know what bit functionality you're talking about in sets |
22:23:27 | FromDiscord | <Elegant Beef> wouldnt sets just store a list of ints |
22:23:45 | FromDiscord | <clyybber> no |
22:24:09 | disruptek | i think i'm gonna be sick. |
22:24:26 | FromDiscord | <Elegant Beef> good |
22:24:43 | FromDiscord | <clyybber> ate the beef |
22:25:50 | FromDiscord | <Elegant Beef> Where is the documentation for the {a,b} stuff |
22:26:03 | disruptek | ~manual |
22:26:04 | disbot | manual: 11the Nim Manual is https://nim-lang.org/docs/manual.html -- disruptek |
22:26:10 | Araq | in the manual. in the tutorial |
22:28:39 | FromDiscord | <Elegant Beef> can i dynamically make an enum at compile time? |
22:28:46 | disruptek | i will permit it. |
22:30:17 | FromDiscord | <clyybber> @Elegant Beef can I roast you? |
22:31:20 | * | hax-scramper joined #nim |
22:34:06 | FromDiscord | <Elegant Beef> sure |
22:34:23 | Araq | I told you last week to use set of enum |
22:34:38 | FromDiscord | <Elegant Beef> Yea which i basically did |
22:34:50 | FromDiscord | <Elegant Beef> i didnt realize that you meant use bitflags of enums |
22:36:33 | FromDiscord | <Elegant Beef> also how many bits does this work for? |
22:36:49 | disruptek | 65,536 |
22:36:55 | * | ptdel joined #nim |
22:37:06 | FromDiscord | <Elegant Beef> ok so plenty |
22:37:21 | disruptek | depends upon the application. |
22:37:22 | FromDiscord | <clyybber> 65.536 for you |
22:37:39 | FromDiscord | <clyybber> the other half of the 64'th is reserved for me |
22:41:05 | Araq | can you please be nicer to Elegant Beef? |
22:41:33 | Araq | I don't understand these nasty jokes |
22:41:42 | FromDiscord | <Elegant Beef> they were being mean? |
22:42:46 | disruptek | just good-natured ribbing. |
22:42:53 | disruptek | ribbed for my pleasure. |
22:43:25 | FromDiscord | <clyybber> lol |
22:43:28 | disruptek | i mean, we're all here trying to help each other produce better software. |
22:43:31 | FromDiscord | <Elegant Beef> i mean clyybber has so many constonants in a row in his name it's unprounacable |
22:43:50 | FromDiscord | <Elegant Beef> Any insult from him doesnt count |
22:43:56 | FromDiscord | <clyybber> is y a constononant? |
22:44:03 | FromDiscord | <clyybber> and if so y? |
22:44:17 | FromDiscord | <Elegant Beef> it's a vowel in your name |
22:44:19 | FromDiscord | <Elegant Beef> depends on the word |
22:45:26 | disruptek | i made a mistake in openapi. |
22:45:55 | FromDiscord | <Elegant Beef> so in all sincerity, i assume i can use a macro to generate a enum that can be used at runtime |
22:46:00 | disruptek | of course. |
22:46:00 | FromDiscord | <clyybber> yeah |
22:46:18 | disruptek | you can generate an enum that can be used at compile-time, too. |
22:46:30 | FromDiscord | <Elegant Beef> so now to play with nnks? 😄 |
22:47:14 | FromDiscord | <clyybber> @Elegant Beef you can try breeze |
22:47:22 | FromDiscord | <clyybber> it will make writing macros a .. |
22:47:24 | FromDiscord | <clyybber> breeze |
22:47:39 | * | FromDiscord <Recruit_main_70007> ba dum tss |
22:48:12 | FromDiscord | <Recruit_main_70007> do gifs work through the bridge bot? |
22:48:21 | FromDiscord | <Elegant Beef> they're images so it'll post a link |
22:48:23 | FromDiscord | <clyybber> yeah |
22:48:27 | FromDiscord | <clyybber> except for disruptek |
22:48:45 | FromDiscord | <Recruit_main_70007> https://tenor.com/view/ba-dum-tsss-punchline-gif-7320811 |
22:49:02 | FromDiscord | <treeform> us discord ppl can just enjoy them |
22:49:14 | FromDiscord | <Elegant Beef> some IRC clients embed so they also do |
22:49:39 | FromDiscord | <treeform> at this rate, in the future I see discord having more active users then IRC |
22:49:51 | FromDiscord | <Elegant Beef> I |
22:49:55 | FromDiscord | <treeform> IRC will be the bridge 🙂 |
22:49:55 | FromDiscord | <clyybber> I |
22:50:01 | FromDiscord | <Elegant Beef> i'd prefer something like riot.im having more users |
22:50:03 | FromDiscord | <Elegant Beef> but meh |
22:50:27 | FromDiscord | <clyybber> would be cool to bridge this with the telegram group |
22:52:15 | disruptek | i fixed my discord image problem with stylebot. |
22:52:22 | * | zedeus joined #nim |
22:53:01 | FromDiscord | <clyybber> nice |
22:53:25 | disruptek | gitter is still a sh1tshow. |
22:53:33 | FromDiscord | <clyybber> yeah |
22:53:37 | FromDiscord | <clyybber> always was |
22:56:17 | disruptek | we are anti-varargs these days, right? |
22:56:35 | disruptek | like, don't bother writing the word because at some point, someone is gonna break that thing. |
22:56:49 | disruptek | and also varargs converters, yes? |
22:56:56 | disruptek | just say `no` to both? |
22:57:22 | disruptek | give it to me straight, doc. |
22:57:27 | FromDiscord | <clyybber> lol |
22:57:28 | disruptek | will i ever play the violin again? |
22:58:01 | FromDiscord | <Recruit_main70007> the violnim for sure |
22:59:03 | disruptek | you know what drives me nuts? |
22:59:13 | disruptek | okay, you know what /else/ drives me nuts? |
22:59:23 | FromDiscord | <clyybber> tell me |
22:59:27 | FromDiscord | <Recruit_main70007> my stupidness? |
22:59:39 | disruptek | when people write nim macros and manipulate the ast using [int] syntax, as in n.sons[3] |
22:59:44 | disruptek | i mean, wtf people... |
23:00:05 | FromDiscord | <clyybber> wait, n.sons[3] works? |
23:00:13 | FromDiscord | <clyybber> not n[3] ? |
23:00:19 | disruptek | well, you know, whatever. |
23:00:38 | disruptek | absolutely infuriating. |
23:00:44 | disruptek | there oughta be a law. |
23:00:48 | FromDiscord | <clyybber> *guilty* |
23:01:00 | disruptek | you better hope i never find out where you live. |
23:01:23 | FromDiscord | <Elegant Beef> to add values to an enum does it make more sense to predeclare the enum or is it the same work either way? |
23:01:35 | disruptek | what? |
23:01:46 | * | tane quit (Quit: Leaving) |
23:01:58 | FromDiscord | <Elegant Beef> Does it make sense to declare the enum name / first field, or is it just redundant |
23:02:20 | FromDiscord | <Elegant Beef> ie `EnumName = enum` and `None = 0` |
23:02:46 | disruptek | it's not redundant because otherwise EnumName.None does not exist. |
23:02:59 | FromDiscord | <Elegant Beef> I mean it can if im generating the enum in the macro |
23:03:10 | disruptek | the zeroeth value has no special significance. does that help? |
23:03:33 | FromDiscord | <Elegant Beef> Well i know that, but im saying using a macro to populate an enum which makes more sense |
23:03:53 | FromDiscord | <Elegant Beef> IE: Does having a predeclared enum reduce any work |
23:04:07 | disruptek | yeah, because it cannot be extended if it's predeclared. |
23:04:14 | disruptek | so, that reduces the work of extending it. |
23:04:14 | FromDiscord | <Elegant Beef> ok |
23:04:18 | FromDiscord | <Elegant Beef> thanks |
23:06:43 | disruptek | i should say that the zeroeth value is used by default in a case object. so if you want a variant object based upon the enum, then you'll need to start it at zero. for that reason, it could make sense to treat zero specially. |
23:08:23 | disruptek | so varages.. 👍 or 👎? |
23:08:36 | disruptek | remember, this is for posterity, so please be honest. |
23:08:46 | disruptek | varargs, too. |
23:09:24 | FromDiscord | <clyybber> ☝️ |
23:09:31 | FromDiscord | <clyybber> 👍 |
23:10:56 | * | glassofethanol joined #nim |
23:18:43 | * | nikita joined #nim |
23:19:06 | * | nikita is now known as Guest87463 |
23:21:02 | FromDiscord | <Elegant Beef> So what's the AST look like for a enum, i just tried to echo it but got `sym("Name")` |
23:21:31 | disruptek | it's kinda like a horse with a short neck and no tail. |
23:22:21 | FromDiscord | <clyybber> @Elegant Beef you mean for a type definition of an enum? |
23:22:38 | FromDiscord | <Elegant Beef> Yea im trying to see what i need to match |
23:22:48 | disruptek | did you try the manual? |
23:22:57 | disruptek | https://nim-lang.org/docs/macros.html#newEnum%2CNimNode%2CopenArray%5BNimNode%5D%2Cbool%2Cbool |
23:23:11 | FromDiscord | <Elegant Beef> I mean im using that |
23:24:30 | disruptek | and it's not producing short-necked tail-less horses? |
23:25:10 | FromDiscord | <Elegant Beef> I mean i am trying to use breeze but no clue how that works so... removing that |
23:27:29 | FromDiscord | <clyybber> you just do |
23:27:34 | FromDiscord | <clyybber> result = buildMacro: |
23:27:56 | FromDiscord | <clyybber> https://github.com/alehander92/breeze#rationale |
23:28:04 | FromDiscord | <Elegant Beef> yea i seen that |
23:28:12 | FromDiscord | <Elegant Beef> but i dont know how to get a new type to get declared with that |
23:28:50 | FromDiscord | <clyybber> typesection: |
23:29:04 | FromDiscord | <clyybber> ... |
23:29:08 | FromDiscord | <clyybber> and so on :p |
23:29:24 | FromDiscord | <Elegant Beef> ah i see it emulates the AST tree, but with` name :` |
23:31:02 | FromDiscord | <clyybber> yep |
23:41:02 | * | Guest87463 quit (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
23:42:29 | * | my_dude quit (Quit: ZZZzzz…) |
23:45:28 | * | my_dude joined #nim |
23:48:39 | * | my_dude quit (Client Quit) |
23:51:57 | * | glassofethanol left #nim (#nim) |
23:57:10 | * | my_dude joined #nim |