00:00:00 | * | krux02 quit (Remote host closed the connection) |
00:01:40 | * | TomDotTom joined #nim |
00:23:02 | * | kinkinkijkin quit (Ping timeout: 260 seconds) |
00:41:19 | * | astronavt joined #nim |
00:49:12 | * | sealmove quit (Read error: Connection reset by peer) |
00:51:45 | * | bung joined #nim |
00:52:04 | * | PMunch quit (Quit: leaving) |
00:54:56 | * | Tanger joined #nim |
00:56:11 | * | bung quit (Ping timeout: 260 seconds) |
01:00:27 | disruptek | ssshh, relax. it'll be like i'm not even here. |
01:07:03 | * | kinkinkijkin joined #nim |
01:22:47 | * | apahl_ joined #nim |
01:23:23 | * | sealmove joined #nim |
01:25:07 | Yardanico | !status |
01:25:08 | FromDiscord | Uptime - 2 days, 5 hours, and 48 minutes |
01:25:12 | * | TomDotTom quit (Ping timeout: 272 seconds) |
01:25:37 | * | apahl quit (Ping timeout: 246 seconds) |
01:28:28 | sealmove | Why doesn't this work? https://play.nim-lang.org/#ix=2BGv |
01:30:04 | sealmove | Ah I mixed up object and ref object, sorry |
01:31:16 | sealmove | My problem is I can't do this: https://play.nim-lang.org/#ix=2BGw Is type conversion the only solution to it? |
01:32:04 | FromDiscord | <scott> `Animal` doesn't implement a `name` member/method |
01:32:31 | sealmove | Yeah, can't need figure out it's a Dog object? |
01:32:45 | FromDiscord | <scott> no, you cast it as an Animal |
01:34:30 | FromDiscord | <scott> sent a code paste, see https://play.nim-lang.org/#ix=2BGy |
01:34:37 | FromDiscord | <scott> (edit) "https://play.nim-lang.org/#ix=2BGy" => "https://play.nim-lang.org/#ix=2BGz" |
01:34:47 | FromDiscord | <flywind> use `echo a.Dog.name`. |
01:35:17 | FromDiscord | <scott> nice, will that raise a reasonable error if `a` is somehow not a `Dog` at runtime? |
01:36:46 | FromDiscord | <scott> Yes, it does https://play.nim-lang.org/#ix=2BGw |
01:36:50 | sealmove | Hum right. I am scratching my head now, don't know what I need. I have a object type with a `parent` field, but I can't know the type of `parent` in advance. All my types inherit from a specific type, but even if I use this general type for `parent` field, it doesn't help :| |
01:36:57 | * | abm quit (Quit: Leaving) |
01:37:40 | FromDiscord | <scott> if the field is the same in all of them you could just have it be a part of the parent type? |
01:37:52 | FromDiscord | <scott> sorry, same type |
01:38:41 | sealmove | I'll try to demonstrate it, w8 |
01:39:02 | FromDiscord | <flywind> Why generics doesn't help? You can use concept to restrict gererics. |
01:39:20 | sealmove | because generics are only for proc params |
01:39:31 | sealmove | you can't use them for object fields |
01:40:29 | FromDiscord | <InventorMatt> i think the problem is that it is only looking at it like it is a generic animal not a specific dog and since animal doesn't have a name attribute it doesn't think it exists |
01:41:25 | disruptek | a goat is a kind of animal. try using a goat. |
01:42:18 | disruptek | but seriously, convert it. |
01:42:26 | FromDiscord | <flywind> Yea, I have done something similar. May be useful. https://planety.github.io/prologue/extendctx/ |
01:42:28 | disruptek | echo a.Dog.name will work. |
01:42:52 | disruptek | exactly how flywind does it. |
01:44:21 | sealmove | yeah I understand the concept, still it doesn't fit my situation, here it is: https://play.nim-lang.org/#ix=2BGC |
01:44:26 | FromDiscord | <nikki> if you have an `Option[T]` result where `T` is a value type, can you just do something like `result.fill(makeT())` to initialize it into the storage already defined in the optional (if that's how it's implemented), or can you not? |
01:44:45 | FromDiscord | <nikki> afaict `Option[T]` looks immutable but maybe i'm missing sth |
01:46:01 | FromDiscord | <scott> you want to call a method on a sibling? |
01:46:08 | sealmove | nikki: `result = some(yourValue)` |
01:46:18 | FromDiscord | <scott> Or just call `f` on `C`'s parent? |
01:46:43 | FromDiscord | <flywind> The example you gave is wrong. |
01:46:43 | sealmove | I want to have a parent field whose type varies |
01:46:57 | sealmove | I know it's wrong, I am searching for a potential solution |
01:46:59 | FromDiscord | <scott> just a sec |
01:47:05 | FromDiscord | <flywind> `c1 = C(parent: a)` |
01:49:06 | FromDiscord | <flywind> https://play.nim-lang.org/#ix=2BGE |
01:49:09 | FromDiscord | <flywind> this compiles |
01:49:20 | Yardanico | btw, just a random question - https://nim-lang.org/docs/algorithm.html#sort%2CopenArray%5BT%5D%2Cproc%28T%2CT%29 implements "iterative merge sort", so is it the same as TimSort which seems to do the same ? |
01:49:44 | nikki93 | sealmove: so just that, interesting. i'll have to look into if it overrides assignment in some way to reuse storage, that'd be interesting. but if not and nim's default semantics are fine, that's cool too |
01:50:15 | FromDiscord | <scott> nevermind I don't know how to do it |
01:50:38 | FromDiscord | <flywind> I don't think that is `timsort`. timsort is more complex. |
01:50:52 | Yardanico | is it? |
01:51:15 | Yardanico | impl for our sort is in https://github.com/nim-lang/Nim/blob/version-1-4/lib/pure/algorithm.nim#L415 and merge proc is https://github.com/nim-lang/Nim/blob/version-1-4/lib/pure/algorithm.nim#L334 |
01:51:58 | sealmove | yeah sorry, messed up the syntax. well, that's what I've been doing but the problem is I am not sure if I can cast to the correct (parental) type. |
01:52:38 | FromDiscord | <flywind> a simple implementation for timsort |
01:52:38 | FromDiscord | <flywind> https://github.com/bung87/tim_sort |
01:53:00 | Yardanico | well I was checking https://www.geeksforgeeks.org/timsort/ |
01:53:58 | FromDiscord | <flywind> Maybe this is a kind of timsort not for production. |
01:54:09 | FromDiscord | <flywind> (edit) "timsort" => ""timsort"" |
01:55:14 | * | mwbrown quit (Ping timeout: 260 seconds) |
02:01:21 | sealmove | ok here is what I mean explained a lot better https://play.nim-lang.org/#ix=2BGK |
02:01:59 | sealmove | the idea is to somehow keep track of type of parent programmatically, but still save it into a more general typed field |
02:03:19 | leorize[m]1 | you can use the `of` operator to perform runtime type reflection |
02:03:57 | FromDiscord | <scott> > how can `c1` remember/save the type of `a` before it casts it to Root?โตI don't think it can. |
02:05:17 | FromDiscord | <scott> is there any reason for the `notin` operator as opposed to using `not in`? |
02:05:33 | sealmove | operator precedence |
02:05:45 | FromDiscord | <scott> oh, I guess that makes sense |
02:06:14 | leorize[m]1 | https://play.nim-lang.org/#ix=2BGL |
02:06:20 | leorize[m]1 | sealmove: ^ RTTI |
02:06:40 | FromDiscord | <scott> leorize, you can't use `case` for this? |
02:07:02 | leorize[m]1 | nope |
02:07:07 | FromDiscord | <scott> ๐ฆ |
02:07:32 | leorize[m]1 | well a simple pattern matching macro should do |
02:07:37 | leorize[m]1 | not sure if gara support it |
02:08:24 | FromDiscord | <scott> huh? |
02:09:17 | leorize[m]1 | !repo gara |
02:09:18 | disbot | https://github.com/alehander92/gara -- 9gara: 11 15 83โญ 7๐ด |
02:09:41 | FromDiscord | <scott> oh that's nice |
02:10:59 | FromDiscord | <scott> doesn't look like it does support that though |
02:11:17 | FromDiscord | <scott> maybe when I get better at Nim macros I'll give it a shot. |
02:12:43 | disruptek | better make it a double. |
02:13:13 | FromDiscord | <scott> I always make it a double |
02:13:38 | FromDiscord | <notchris> Hey all, how do i set a ptr again? |
02:14:05 | leorize[m]1 | wdym set a ptr? |
02:14:19 | FromDiscord | <notchris> omg i forgot .addr, my apologies |
02:19:03 | sealmove | hmm, interestingly enough there is indeed a complication with my situation and it's already documented here: https://doc.kaitai.io/user_guide.html#_enforcing_parent_type |
02:19:12 | sealmove | there is a special feature to resolve it |
02:19:29 | sealmove | but the test I was running was testing a different feature, and it runs into this situation |
02:19:45 | sealmove | so the test is flawed... |
02:20:50 | FromDiscord | <scott> > so the test is flawed...โตโตAs happens far too often...glad you got your stuff working ๐ |
02:21:32 | sealmove | I am reusing a test suite written by others :P |
02:22:14 | sealmove | Should file a PR to fix the test |
02:22:44 | FromDiscord | <scott> I see that there's a `times.parse(string, TimeFormat)` proc.... are there any standard `TimeFormat` constants such as for ISO 8601, RFC 2822, etc? |
02:23:30 | FromDiscord | <scott> if I find a bug and can fix it I always try to. If you don't have the time, at least alerting the maintainer/author would be nice ๐ |
02:25:41 | FromDiscord | <scott> just searched the source code for `8601` and answered my own question |
02:26:18 | * | user0 quit (Quit: Leaving) |
02:28:44 | * | Axiomatic joined #nim |
02:34:17 | * | muffindrake quit (Ping timeout: 260 seconds) |
02:36:17 | * | muffindrake joined #nim |
02:36:20 | sealmove | wow! it seems I have to determine if there are more than 1 candidate types for `parent` and only then type it as a general type, otherwise type it with the more specific type :S |
02:37:10 | sealmove | i guess i have to do some tree analysis there |
02:37:46 | FromDiscord | <nikki> https://media.discordapp.net/attachments/371759389889003532/769026750461771806/unknown.png |
02:38:12 | FromDiscord | <nikki> two `copyString`s happening here; but it seems like there should really be just one right? not sure if that'd be optimized out by C compiler bc. it has an alloc side effect |
02:39:45 | FromDiscord | <nikki> i guess it makes sense actually bc. i'm taking the `name` as a parameter and then passing to `some`, so there's a visible copy. i'll try it as a `sink string` |
02:39:52 | * | bung joined #nim |
02:44:05 | * | bung quit (Ping timeout: 240 seconds) |
02:44:25 | FromDiscord | <nikki> https://gist.github.com/nikki93/cce678c486af52f4b0e85fc8a8ba8995 <-- gist version |
02:49:31 | FromGitter | <deech> If you have an object with some proc property `p` and also a `proc p` they clash, eg. `type O = object p: proc(); proc p[T](x:T) ...`, is this a bug? |
02:49:43 | disruptek | nope. |
02:50:33 | FromGitter | <deech> Why? |
02:51:36 | disruptek | because it's intentional. |
02:52:29 | FromGitter | <jrfondren> my favorite clash is trying to call a proc with a sink parameter in a module named 'sink' |
02:53:09 | FromGitter | <jrfondren> the strategy of naming files after what I'm trying to confirm, it does not always work |
02:53:36 | FromGitter | <deech> This at least could be a warning, I was going nuts trying to figure out why calling an object property was going into infinite recursion. |
02:54:06 | disruptek | mutually recursive p? |
02:54:16 | disruptek | i think i saw that on pornhub once. |
02:57:42 | FromGitter | <jrfondren> huh, there is a UFCS difference there |
02:59:21 | FromGitter | <jrfondren> https://play.nim-lang.org/#ix=2BGR |
03:01:03 | leorize[m]1 | yea, direct access is always preferred over functions |
03:09:43 | FromDiscord | <scott> what about public read-only members? |
03:11:56 | FromDiscord | <ElegantBeef> Nim doesnt have those explictly and they're done with procs |
03:12:52 | * | mwbrown joined #nim |
03:13:04 | FromDiscord | <scott> ok, that's what I though |
03:13:06 | FromDiscord | <scott> (edit) "though" => "thought" |
03:13:36 | FromDiscord | <ElegantBeef> https://play.nim-lang.org/#ix=2BGW |
03:13:38 | FromDiscord | <ElegantBeef> Something like that |
03:14:26 | FromDiscord | <ElegantBeef> I have a small DSL macro which can generate them, but with the current type macros they're a bit annoying to implement |
03:15:23 | FromDiscord | <scott> yeah, that's how I thought it worked. I do wish there was `proc mem=(self: Something, newVal: T): T = self.t = validated newVal` to `something.mem = newVal` sugar |
03:15:25 | FromDiscord | <ElegantBeef> Can read about it here https://github.com/nim-lang/Nim/issues/13830#issuecomment-706430286 |
03:15:26 | disbot | โฅ `macro pragmas` in type section should apply to `TypeSection`, not `TypeDef` ; snippet at 12https://play.nim-lang.org/#ix=2rOP |
03:15:55 | FromDiscord | <ElegantBeef> Yea i have a semi ugly DSL for it https://media.discordapp.net/attachments/371759389889003532/769036348631810098/unknown.png |
03:16:46 | FromDiscord | <scott> hey that's cool |
03:17:21 | FromDiscord | <ElegantBeef> iirc if you dont have a set or get it doesnt generate it |
03:17:26 | FromDiscord | <ElegantBeef> Cant remember what i went with |
03:18:03 | FromDiscord | <ElegantBeef> But yea my constructor module is to ease the usage of objects, for common things like events, constructors, properties |
03:18:33 | FromDiscord | <ElegantBeef> Shamelessly plugging it constantly ๐ |
03:19:03 | disruptek | give us a url at least. |
03:19:12 | FromDiscord | <ElegantBeef> !repo constructor |
03:19:13 | disbot | https://github.com/beef331/constructor -- 9constructor: 11Nim macros to aid in object construction including event programming, and constructors. 15 3โญ 0๐ด 7& 2 more... |
03:21:44 | * | astronavt quit (Quit: Leaving) |
03:25:32 | FromDiscord | <ElegantBeef> How many throbs does it cause disruptek? |
03:27:03 | * | astronavt joined #nim |
03:27:23 | * | apahl_ quit (Ping timeout: 260 seconds) |
03:28:02 | * | apahl joined #nim |
03:32:24 | * | sealmove quit (Quit: WeeChat 2.9) |
03:38:01 | * | fvs joined #nim |
03:39:40 | fvs | hi, are variables declared in a proc (var or let) "redeclared" if the proc is called repeatedly? |
03:40:49 | Tanger | fvs: Yep, they're local to the scope of the proc |
03:41:14 | Tanger | So a let inside a loop or proc will get destroyed when the program leaves that scope and rebound every time |
03:41:54 | fvs | is that the reason for the {.global.}, to keep scope? |
03:42:03 | fvs | pragma |
03:46:23 | FromDiscord | <ElegantBeef> Yes |
03:46:30 | FromDiscord | <ElegantBeef> Not to keep scope but to keep the value |
03:46:56 | fvs | yep, got it. Thanks |
04:02:41 | FromDiscord | <ElegantBeef> Damn i realized i could just use the fidget templates exactly in nimscript but they dont seem to function properly ๐ |
04:06:02 | * | supakeen quit (Quit: WeeChat 2.9) |
04:06:38 | * | supakeen joined #nim |
04:09:43 | * | rockcavera quit (Remote host closed the connection) |
04:19:11 | * | fvs left #nim ("leaving") |
04:26:53 | * | ForumUpdaterBot quit (Remote host closed the connection) |
04:28:02 | * | bung joined #nim |
04:28:43 | * | ForumUpdaterBot joined #nim |
04:28:59 | Yardanico | i think i understood why my forum updater bot has been stopping working after 2-3 days |
04:29:01 | Yardanico | because of a rookie mistake |
04:29:07 | Yardanico | I forgot to close asynchttpclients :) |
04:29:16 | Yardanico | so after a while "too many open files" would be raised |
04:33:18 | * | bung quit (Ping timeout: 272 seconds) |
04:34:11 | FromDiscord | <ElegantBeef> Wouldnt ARC save that? |
04:34:40 | Yardanico | no |
04:34:47 | Yardanico | stdlib doesn't have destructors for sockets/files yet |
04:35:02 | Yardanico | they will be eventually added (I think), but only after arc/orc becomes stable and (probably) default |
04:35:05 | FromDiscord | <ElegantBeef> Ah that that was apart of it |
04:35:15 | Yardanico | yes you can make your custom destructors of course |
04:35:18 | FromDiscord | <ElegantBeef> Havent actually used arc, just read about what it enables |
04:35:35 | FromDiscord | <ElegantBeef> This makes me so sad https://media.discordapp.net/attachments/371759389889003532/769056399447293982/unknown.png |
04:35:54 | Yardanico | yes, converters make me sad too /s |
04:35:57 | FromDiscord | <ElegantBeef> For some reason calling the functions from nimscript dont work properly, i thought i had a big brain method of wrapping fidget |
04:36:25 | FromDiscord | <ElegantBeef> Converter is just there cause i dont have generic support yet since it's icky |
04:40:30 | FromDiscord | <ElegantBeef> You'd think the template being copied to the nimscript import would result in the same result |
04:40:36 | FromDiscord | <ElegantBeef> But apparently it doesnt |
04:44:25 | * | bung joined #nim |
04:48:45 | * | bung quit (Ping timeout: 240 seconds) |
04:50:01 | * | lbart quit (Ping timeout: 264 seconds) |
04:50:52 | * | lbart joined #nim |
04:50:52 | * | lbart quit (Changing host) |
04:50:53 | * | lbart joined #nim |
05:08:29 | * | mbomba joined #nim |
05:14:50 | * | screens__ joined #nim |
05:15:12 | * | Araq quit (Ping timeout: 260 seconds) |
05:16:08 | * | screens_ quit (Ping timeout: 260 seconds) |
05:16:26 | * | Araq joined #nim |
05:17:07 | FromDiscord | <nikki> https://github.com/nim-lang/Nim/blob/01a62320f03ebd3282a7def231351c4f84c319d2/lib/pure/options.nim#L80 |
05:17:20 | FromDiscord | <nikki> just checking my understanding of arc and stuff: this `val` parameter could be a `sink T` right? |
05:17:49 | FromDiscord | <nikki> and that would reduce copies when eg. constructing from temporaries or other sink params? |
05:24:44 | * | mbomba quit (Quit: WeeChat 2.9) |
05:44:03 | * | narimiran joined #nim |
05:55:20 | FromDiscord | <ElegantBeef> https://forum.nim-lang.org/t/6971 This forum post now makes me think we need a "This (Determined amount of time) with Nim", where community members can send small writeups about what they're working on. |
05:55:51 | FromDiscord | <nikki> is there some way of aliasing a proc? or at least easily making a template that wraps another proc or something (i just haven't gotten to macros/templates in this book yet ๐
) |
05:56:18 | FromDiscord | <ElegantBeef> What do you want to do exactly? |
05:56:36 | FromDiscord | <nikki> https://media.discordapp.net/attachments/371759389889003532/769076784799940628/unknown.png |
05:56:47 | FromDiscord | <nikki> sorry that this is a picture but -- i want to compare my option and the stdlib option |
05:57:10 | FromDiscord | <nikki> and the `some` can't overload on return type so i was thinking to have `mySome` which is mine if i say `useMy` but otherwise aliased to stdlib |
05:57:54 | FromDiscord | <ElegantBeef> Can you not do `try_option_result.some`? |
05:58:13 | FromDiscord | <ElegantBeef> I dont actually recall if the current module name is usable like that |
05:58:31 | FromDiscord | <nikki> ah i see |
05:58:56 | FromDiscord | <nikki> well even then i want to actually just have it be the right proc based on `useMy`, not just pick this module's one |
05:59:09 | * | siulManfroni quit (Quit: Leaving) |
05:59:17 | FromDiscord | <nikki> the `type PickedOption = ...` aliases worked out nicely |
06:00:10 | FromDiscord | <nikki> i guess i can use template untyped or w/e |
06:00:37 | FromDiscord | <ElegantBeef> You could also import from this file and change which you export based off the defined condition, but there might be a cleaner method i cannot think of |
06:01:01 | FromDiscord | <nikki> yeah all of that sounds like more extra space than i want here haha |
06:01:41 | FromDiscord | <nikki> went with template untyped ยฏ\_(ใ)_/ยฏ |
06:01:42 | FromDiscord | <nikki> seems fine for now |
06:02:21 | FromDiscord | <nikki> sent a code paste, see https://play.nim-lang.org/#ix=2BH9 |
06:04:02 | FromDiscord | <nikki> wow yeah it's just faster with `val: sink T` in the option `some` constructor |
06:04:25 | FromDiscord | <ElegantBeef> Making options 2.0 i see ๐ |
06:04:33 | FromDiscord | <nikki> (just wanted to try it empirically even if that's clear -- i saw the diff in the gen'd C code and the only difference is copy vs sink) |
06:07:38 | * | NimBot joined #nim |
06:08:25 | FromDiscord | <nikki> i think nope, just faster. all it involves is making the param `val: sink T` here: https://github.com/nim-lang/Nim/blob/275354709d2a5e38b9e06b2cee823ddef756d62d/lib/pure/options.nim#L101 |
06:08:30 | FromDiscord | <nikki> move semantics is some easy wins lol |
06:08:56 | FromDiscord | <ElegantBeef> Lol nice now make a pr that only does that for 1.4.0 onwards |
06:09:48 | FromDiscord | <nikki> it already says `lent` elsewhere, link in `get` on line 170 |
06:10:01 | FromDiscord | <nikki> (edit) "link" => "like" |
06:10:47 | FromDiscord | <ElegantBeef> I havent looked into lent, or sink arent they 1.4.0 additions? |
06:11:07 | FromDiscord | <nikki> yeah and i think only for `--gc:arc` |
06:12:23 | FromDiscord | <ElegantBeef> I know lent is practically a read only pointer, but what's sink? |
06:12:56 | FromDiscord | <nikki> means to 'move in' the ownership of the obj, if you can |
06:13:37 | FromDiscord | <nikki> it makes sense if you're going to eg. install it into some owned spot, such as the `.val` member in an `Option[T]` in this case |
06:14:07 | FromDiscord | <nikki> and moving in the ownership means: give me the job of tracking its lifetime, the caller can forget about that now |
06:15:00 | FromDiscord | <Rika> sink is rust's move basically |
06:15:05 | FromDiscord | <ElegantBeef> Yea i got that now |
06:24:49 | * | arecacea1 quit (Remote host closed the connection) |
06:25:26 | * | arecacea1 joined #nim |
06:28:50 | * | solitudesf joined #nim |
06:32:29 | * | bung joined #nim |
06:37:25 | * | bung quit (Ping timeout: 264 seconds) |
07:12:07 | lbart | hmmm, is nim playground broken? |
07:12:07 | lbart | https://play.nim-lang.org/#ix=2BHk works on my machine (c) |
07:13:38 | FromGitter | <jrfondren> I get the same error on my machine |
07:13:51 | supakeen | lbart, only one option. Please ship us your machine. |
07:13:56 | supakeen | And we'll put it into production. |
07:14:01 | lbart | :) |
07:14:43 | lbart | ok, so my machine is FreeBSD with nim 1.2.6 |
07:15:58 | mipri | I get the error in 1.2.6 and 1.0.0 even |
07:17:07 | * | Vladar joined #nim |
07:18:30 | * | NimBot joined #nim |
07:18:36 | mipri | woah |
07:18:43 | mipri | the error is fixed by removing trailing whitespace |
07:19:49 | mipri | which explains why you don't get the error. probably you introduced the whitespace when you copied and pasted this into the playground |
07:20:42 | lbart | mipri: oh ! yes, my nvim config removes trailing whitespace |
07:23:56 | mipri | >= 128 spaces at the end of any line causes it |
07:25:48 | mipri | lbart: can you create an issue at https://github.com/nim-lang/Nim/issues ? |
07:26:01 | lbart | mipri: yes, I'm on it |
07:26:27 | mipri | cool |
07:31:57 | lbart | thank you |
07:56:33 | * | stefantalpalaru_ joined #nim |
07:58:05 | * | stefantalpalaru quit (Ping timeout: 240 seconds) |
07:59:33 | * | stefantalpalaru_ is now known as stefantalpalaru |
07:59:35 | * | stefantalpalaru quit (Changing host) |
07:59:35 | * | stefantalpalaru joined #nim |
08:04:12 | * | stisa[m] quit (Ping timeout: 246 seconds) |
08:04:19 | * | stisa[m]1 joined #nim |
08:12:05 | * | lritter joined #nim |
08:19:33 | ForumUpdaterBot | New thread by Torarinvik: The big tutorial thread, see https://forum.nim-lang.org/t/6977 |
08:20:38 | * | bung joined #nim |
08:25:44 | * | bung quit (Ping timeout: 272 seconds) |
08:27:27 | * | Tanger quit (Quit: Leaving) |
08:28:17 | * | hnOsmium0001 quit (Quit: Connection closed for inactivity) |
08:41:18 | * | PMunch joined #nim |
08:42:53 | FromDiscord | <Rika> so why does playground crash if there are too many spaces on the end of a line |
08:43:25 | mipri | it's nim that crashes, not the playground specifically |
08:43:36 | FromDiscord | <Rika> so it doesnt work on your machine? |
08:44:05 | PMunch | Huh? |
08:44:08 | mipri | if >= 128 spaces at the end of a line, nim crashes with unhandled exception: over- or underflow [OverflowDefect] |
08:44:12 | supakeen | It crashes for me as well. |
08:44:19 | FromDiscord | <flywind> It doesn't work on the `vscode`. I ever met this issue. |
08:44:35 | mipri | the editor isn't important except that it might accidentally prevent you from observing the bug |
08:44:41 | supakeen | https://bpa.st/raw/I7PA |
08:45:09 | PMunch | How on earth did you guys find that bug.. |
08:45:16 | FromDiscord | <flywind> https://github.com/planety/prologue/issues/4 |
08:45:18 | disbot | โฅ Can't compile ; snippet at 12https://play.nim-lang.org/#ix=2BHJ |
08:45:24 | mipri | copy&paste into a browser that added a bunch of whitespace |
08:45:34 | supakeen | PMunch: lbart pasted something and it messed up the whitespace; then investigate and mipri found it :D |
08:45:58 | FromDiscord | <flywind> I ever copied the code snippet with many spaces to `vscode` and get that error messages. |
08:46:20 | PMunch | Happens with parseStmt as well: https://play.nim-lang.org/#ix=2BHK |
08:46:28 | supakeen | Nice bug anyhow. |
08:47:25 | PMunch | @flywind, why would you compile prologue to js? :P |
08:48:14 | mipri | the fun part for me was that when I went to edit the file to try and isolate the line causing the problem, I started by stripping trailing whitespace to make the file more readable. so my experience was: comment everything, it works, uncomment one line, ok it still works, repeat until everything's uncommented |
08:48:27 | mipri | uh did I fix the bug by commenting and uncommenting everything in this file? |
08:48:39 | mipri | no, that unimportant first step did it |
08:48:48 | PMunch | Oh hooray: https://www.techradar.com/news/microsoft-edge-finally-lands-on-linux |
08:49:19 | PMunch | Haha, mipri been there done that |
08:49:42 | PMunch | Had a laptop keyboard with an odd layout, which led me to do some misclicks |
08:49:53 | PMunch | One of which was hitting shift and enter at the same time or something like that |
08:50:12 | PMunch | This apparently inserted a different kind of newline which the compiler didn't like (this was Java IIRC) |
08:50:21 | PMunch | So I got some super cryptic errors |
08:50:49 | PMunch | But if I rewrote the line exactly as I saw it it worked fine |
08:51:13 | supakeen | It's also a common type of problem for shebangs that have been edited on windows and have a carriage return which becomes part of the shebang. |
08:51:14 | PMunch | Oh no wait, it was shift space I think, I at least ended up with characters |
08:51:30 | PMunch | supakeen, or files with BOM... |
08:51:33 | supakeen | Yap. |
08:52:48 | supakeen | Is this something that the parser counts the spaces in an `int8` or such? |
08:53:00 | PMunch | Look like something like that |
08:53:01 | supakeen | It's really only whitespace that causes it. |
08:53:06 | PMunch | But what a weird thing.. |
08:53:11 | FromGitter | <jrfondren> that's worrying. gitter doesn't escape that |
08:53:20 | FromGitter | <jrfondren> not when I type it either |
08:53:45 | narimiran | 1.6.0 release notes: "Nim now allows for 65k trailing whitespaces" |
08:53:53 | supakeen | :D |
08:54:17 | mipri | compiler/lexer.nim: strongSpaceB*: int8 # trailing spaces of an operator |
08:54:35 | supakeen | narimiran: It's not just trailing whitespace to be fair. |
08:54:37 | mipri | haven't dug into it, but there's definitely int8 in there |
08:54:59 | supakeen | As in if you `let a = 1 + 128 spaces + 1` it's also a crash. |
08:55:08 | supakeen | Without the double `+` >_< |
08:55:23 | PMunch | Hmm, is it only trailing? Or does this mean I can't have more than 64 indentation levels? |
08:55:32 | mipri | probably the part that complains about inconstent whitespace around operators |
08:55:49 | supakeen | I wonder if it's actually problematic or it's the error message that could be better. |
08:55:54 | supakeen | PMunch: It seems to be the latter. |
08:55:57 | Araq | good bug :-) |
08:56:00 | Araq | very funny |
08:56:31 | Araq | would my favorite solution have prevented it? (saturated arithmetic) Yes. |
08:57:11 | narimiran | PMunch: also 1.6.0 release notes: "you can now have 32767 indentation levels, use them wisely" |
09:00:45 | * | bung joined #nim |
09:00:55 | * | solitudesf quit (Remote host closed the connection) |
09:01:21 | * | solitudesf joined #nim |
09:08:37 | * | ^Q-Master^ joined #nim |
09:09:21 | PMunch | narimiran, finally! |
09:09:29 | PMunch | That has really been a limitation for me :P |
09:09:34 | * | Q-Master quit (Read error: Connection reset by peer) |
09:09:37 | narimiran | i know :) |
09:09:56 | FromDiscord | <Vindaar> could we _finally_ switch to uint64 for indentation levels? Such a pain right now... smh |
09:10:50 | narimiran | int128 or gtfo!! |
09:11:14 | FromDiscord | <Vindaar> haha |
09:11:39 | FromDiscord | <Rika> damn how many spaces do you need |
09:11:45 | narimiran | all. |
09:11:52 | FromDiscord | <Vindaar> all of the spaces |
09:11:53 | FromDiscord | <Rika> nim, but only whitespace |
09:11:59 | FromDiscord | <Rika> lets get working to it |
09:12:06 | FromDiscord | <Rika> on |
09:14:54 | * | krux02 joined #nim |
09:21:17 | * | krux02 quit (Remote host closed the connection) |
09:23:07 | lbart | supakeen, Araq I'm a monkey tester :) |
09:23:16 | * | bung quit (Quit: Lost terminal) |
09:28:39 | Yardanico | lbart: nooo that was my title :(( |
09:29:16 | Yardanico | i used the sledgehammer approach (to reduce test cases of nim libs/apps) to file like 45 arc bugs |
09:29:22 | Yardanico | that's what you do when you have too much free time |
09:31:07 | lbart | he he :) |
09:34:45 | FromDiscord | <Rika> monke |
09:34:51 | Araq | now if only you would also fix 45 arc bugs |
09:34:55 | Yardanico | i know :( |
09:34:57 | Araq | ;-) |
09:35:20 | Araq | it's ok, we have 2021 for stabilizing all the stuff we added in 2020 |
09:40:31 | * | solitudesf quit (Remote host closed the connection) |
09:41:40 | * | solitudesf joined #nim |
09:50:37 | * | bung joined #nim |
09:55:56 | Yardanico | !status |
09:55:57 | FromDiscord | Uptime - 2 days, 14 hours, and 19 minutes |
09:56:15 | Yardanico | good that @mratsim doesn't see me using the !status command, otherwise he'd post a link to status.im again |
10:00:44 | bung | I use recvInto , it always receive all data no matter socket is buffered or not |
10:01:26 | Araq | all data is better than no data |
10:02:41 | PMunch | @Rika, with covid going on it's important to have a lot of spaces I've heard |
10:04:07 | * | krux02 joined #nim |
10:06:15 | FromDiscord | <Varriount> Oh, hey Araq |
10:06:38 | bung | it seems it returns 0 when no data anymore, 4 when theres 4 bytes remain for reading ? |
10:08:16 | mipri | 4 when it read 4 bytes. it doesn't know how much or if any bytes are remaining |
10:09:47 | bung | well, I first received 4 bytes that I expected and returns 4, then second it receive more data but returns 0 |
10:11:30 | mipri | that's not how the underlying syscall works, so you could start by stracing the program to confirm what's actually happening |
10:16:11 | bung | oh, if that's correct , I misreading the debug info, it outputs first packet, the second actually get 0 data. |
10:18:29 | * | solitudesf quit (Remote host closed the connection) |
10:23:03 | * | solitudesf joined #nim |
10:24:26 | * | BitPuffin quit (Quit: killed) |
10:24:26 | * | k0mpjut0r quit (Quit: killed) |
10:24:27 | * | leorize[m]1 quit (Quit: killed) |
10:24:28 | * | reversem3 quit (Quit: killed) |
10:24:29 | * | Helios quit (Quit: killed) |
10:24:29 | * | GitterIntegratio quit (Quit: killed) |
10:24:32 | * | nikki93[m] quit (Quit: killed) |
10:24:33 | * | guelosk[m] quit (Quit: killed) |
10:24:37 | * | unclechu quit (Quit: killed) |
10:24:37 | * | leorize[m] quit (Quit: killed) |
10:24:39 | * | solitudesf1 quit (Quit: killed) |
10:24:39 | * | silvernode[m] quit (Quit: killed) |
10:24:39 | * | ee7[m] quit (Quit: killed) |
10:24:39 | * | hnOsmium0001[m] quit (Quit: killed) |
10:24:43 | * | brainbomb[m] quit (Quit: killed) |
10:24:47 | * | inamiyar[m] quit (Quit: killed) |
10:24:48 | * | lum[m] quit (Quit: killed) |
10:24:48 | * | stisa[m]1 quit (Quit: killed) |
10:24:48 | * | MTRNord[m] quit (Quit: killed) |
10:24:48 | * | themoon[m] quit (Quit: killed) |
10:24:48 | * | planetis[m] quit (Quit: killed) |
10:24:49 | * | VijayMarupudi[m] quit (Quit: killed) |
10:24:50 | * | Avatarfighter[m] quit (Quit: killed) |
10:24:50 | * | lnxw37d4 quit (Quit: killed) |
10:34:52 | * | jaens[m] joined #nim |
10:38:18 | Yardanico | streaming random nim again (no voice chat in discord for now) |
10:38:19 | Yardanico | ~ystream |
10:38:20 | disbot | ystream: 11Stream at https://twitch.tv/yardanico, voice chat either on Mumble (mumble://uberalles.mumbl.io/) or in Discord (https://discord.com/invite/ezDFDw2) -- Yardanico |
10:40:48 | * | lbart_ joined #nim |
10:41:55 | * | lbart quit (Read error: Connection reset by peer) |
10:52:32 | FromDiscord | <ITR> How do I make a function borrowable? https://play.nim-lang.org/#ix=2BIoโตAnd is there any equivalent to the items function I implemented for ranges in the standard library? |
10:57:19 | Araq | what's a "borrowable" function? |
11:00:12 | * | k0mpjut0r joined #nim |
11:00:12 | * | GitterIntegratio joined #nim |
11:00:12 | * | stisa[m] joined #nim |
11:00:12 | * | Avatarfighter[m] joined #nim |
11:00:12 | * | lnxw37d4 joined #nim |
11:00:12 | * | themoon[m] joined #nim |
11:00:12 | * | leorize[m]1 joined #nim |
11:00:13 | * | BitPuffin joined #nim |
11:00:13 | * | unclechu joined #nim |
11:00:13 | * | reversem3 joined #nim |
11:00:13 | * | inamiyar[m] joined #nim |
11:00:13 | * | leorize[m] joined #nim |
11:00:13 | * | planetis[m] joined #nim |
11:00:13 | * | Helios joined #nim |
11:00:13 | * | hnOsmium0001[m] joined #nim |
11:00:13 | * | MTRNord[m] joined #nim |
11:00:13 | * | brainbomb[m] joined #nim |
11:00:18 | * | VijayMarupudi[m] joined #nim |
11:00:18 | * | ee7[m] joined #nim |
11:00:18 | * | silvernode[m] joined #nim |
11:00:18 | * | solitudesf1 joined #nim |
11:00:18 | * | lum[m] joined #nim |
11:00:18 | * | nikki93[m] joined #nim |
11:00:19 | * | guelosk[m] joined #nim |
11:06:12 | * | lbart_ quit (Ping timeout: 260 seconds) |
11:17:58 | * | ForumUpdaterBot quit (Remote host closed the connection) |
11:18:22 | * | ForumUpdaterBot joined #nim |
11:20:17 | ForumUpdaterBot | New post on r/nim by unknown_r00t: Macros vs functions, see https://www.reddit.com/r/nim/comments/jg83c9/macros_vs_functions/ |
11:20:21 | Yardanico | nim updater bot now also supports the nim subreddit :) |
11:20:56 | Yardanico | the irc nickname is kinda confusing though, not gonna lie :) |
11:20:58 | Yardanico | will need to change it |
11:21:37 | FromDiscord | <Yardanico> @dom96 @treeform when you have time, please add a proper nim logo to the nim's subreddit :) |
11:21:45 | FromDiscord | <Yardanico> or maybe someone else, I don't know who can do that |
11:23:26 | * | abm joined #nim |
11:44:27 | ForumUpdaterBot | New thread by Shirleyquirk: Isolated [T], see https://forum.nim-lang.org/t/6978 |
11:48:08 | Yardanico | would it be fine if the bot will also post new stackoverflow questions tagged "nim-lang"? |
11:48:13 | Yardanico | here |
11:52:24 | FromDiscord | <haxscramper> I think it is fine, since there is not a lot of new questions on stackoverflow anyway - ~one question per week or something like that |
11:52:37 | Yardanico | yeah, but if we answer more - SO will have more nim questions ;P |
11:52:52 | Yardanico | I just feel like some people might be used to SO so they'll go there to ask nim questions |
11:53:05 | Yardanico | i want to keep the nim community decentralized but connected (tm) |
11:53:09 | * | TomDotTom joined #nim |
11:53:09 | Yardanico | the bridge and this bot help with that |
11:53:14 | * | TomDotTom quit (Client Quit) |
11:53:24 | Yardanico | will update nimeventer and test SO soon |
11:53:31 | * | TomDotTom joined #nim |
11:55:15 | * | ForumUpdaterBot quit (Remote host closed the connection) |
11:55:31 | * | ForumUpdaterBot joined #nim |
11:57:15 | FromDiscord | <ITR> Araq: A function I can use {.borrow.} with so that I don't have to reimplement them for distinct types. Basically, I want to use line 12 to borrow the iterator on line 8: https://play.nim-lang.org/#ix=2BIo |
11:57:55 | * | ForumUpdaterBot quit (Remote host closed the connection) |
11:59:20 | * | ForumUpdaterBot joined #nim |
12:01:38 | Yardanico | added stackoverflow support to the updater bot :) |
12:03:17 | * | ForumUpdaterBot quit (Remote host closed the connection) |
12:04:03 | * | ForumUpdaterBot joined #nim |
12:04:27 | federico3 | randomly stumbling on some Nim code! https://github.com/mozilla/DeepSpeech-examples/tree/r0.8/nim_mic_vad_streaming/linux_nim_vad_streaming |
12:04:41 | Yardanico | huh |
12:05:06 | * | rockcavera joined #nim |
12:05:59 | ForumUpdaterBot | New question by pietroppeter: How to redirect output in a task in nimble, see https://stackoverflow.com/questions/64459653/how-to-redirect-output-in-a-task-in-nimble |
12:06:01 | Yardanico | ^posted 2 days ago (the bot only saw it now) |
12:06:01 | * | supakeen quit (Quit: WeeChat 2.9) |
12:06:05 | Yardanico | but it works ;) |
12:06:24 | Yardanico | it now checks on the forum/reddit/SO every two minutes |
12:06:38 | * | supakeen joined #nim |
12:06:46 | Yardanico | quite a small interval, yes, but I don't want the bot to miss forum events :) |
12:07:51 | Yardanico | stackoverflow API is easy to use, but it requires gzip or deflate |
12:09:10 | Yardanico | at least now repo's description of nimeventer is true "Posts updates from various Nim communities to various Nim communities :)" |
12:09:12 | Yardanico | !repo nimeventer |
12:09:12 | disbot | https://github.com/Yardanico/nimeventer -- 9nimeventer: 11Posts updates from various Nim communities to various Nim communities :) 15 3โญ 0๐ด |
12:09:17 | Yardanico | wow disbot is fast now, what happened |
12:11:18 | FromDiscord | <Recruit_main707> disbot answered before the question :o |
12:14:41 | Yardanico | @Recruit_main707: well I use asyncCheck for async http(s) requests, so discord webhook got the disbot's reply faster than my message |
12:26:16 | * | vivus joined #nim |
12:31:19 | * | bung quit (Ping timeout: 246 seconds) |
12:31:34 | * | bung joined #nim |
12:34:15 | * | lbart joined #nim |
12:34:15 | * | lbart quit (Changing host) |
12:34:15 | * | lbart joined #nim |
12:35:22 | Yardanico | hm guess I should try uploading some of my nim stream vods to youtube |
12:35:26 | Yardanico | maybe some people will watch me |
12:35:32 | Yardanico | s/me/them |
12:59:38 | FromDiscord | <kodkuce> you know that aync doom i cryed about all time crashing |
12:59:59 | FromDiscord | <kodkuce> just runed my server in vbox x86 insted on rpi4 and i get no crash |
13:00:06 | FromDiscord | <kodkuce> same stuff behind nginx |
13:00:16 | FromDiscord | <kodkuce> no crash on connection termination |
13:02:46 | FromDiscord | <kodkuce> so duno maybe arm64 has some issue or duno |
13:11:39 | PMunch | Hmm, that is really odd |
13:11:54 | PMunch | Yardanico, I've been thinking about doing something similar |
13:12:03 | FromDiscord | <Yardanico> ? |
13:12:10 | PMunch | But it sorta requires a simple enough project for people actually being able to get into watching them |
13:12:16 | FromDiscord | <Yardanico> streaming Nim? |
13:12:18 | FromDiscord | <Yardanico> Ah yeah |
13:12:27 | FromDiscord | <Yardanico> I just reupload to YouTube :P |
13:17:29 | PMunch | Yeah streaming Nim |
13:23:16 | * | narimiran quit (Ping timeout: 265 seconds) |
13:24:33 | * | narimiran joined #nim |
13:29:37 | * | NimBot joined #nim |
13:29:50 | * | ForumUpdaterBot joined #nim |
13:34:19 | * | letto quit (Ping timeout: 246 seconds) |
13:38:43 | * | arecacea1 quit (Read error: Connection reset by peer) |
13:39:18 | * | arecacea1 joined #nim |
13:45:38 | * | jken_ quit (Quit: ZNC - https://znc.in) |
13:47:15 | * | jken joined #nim |
13:47:25 | FromDiscord | <djazz> docs are a bit hard to read with the text overlapping https://media.discordapp.net/attachments/371759389889003532/769195269848956968/Screenshot_from_2020-10-23_15-46-32.png |
13:47:56 | FromDiscord | <Clyybber> fixed on devel, waiting for the cache to expire |
13:48:09 | FromDiscord | <djazz> k |
13:49:31 | leorize[m]1 | not fully fixed on devel actually |
13:49:50 | leorize[m]1 | if you have an overly verbose name it would still spills over |
13:49:51 | leorize[m]1 | better than nothing though |
13:53:37 | * | vicfred quit (Ping timeout: 264 seconds) |
13:57:29 | bung | recvInto should in loop ? |
14:04:43 | * | lbart joined #nim |
14:04:43 | * | lbart quit (Changing host) |
14:04:43 | * | lbart joined #nim |
14:04:58 | * | bunbunbunbunny joined #nim |
14:17:13 | FromGitter | <jrfondren> generally there's a loop involved somewhere. you might get better help by showing specifically what you have and what you're trying to do. |
14:19:13 | FromGitter | <jrfondren> this code is a horrific abomination that should not be emulated, but you can still see that I'm looping over a selector to get I/O events, and calling recv when prompted by that: https://play.nim-lang.org/#ix=2BJs |
14:21:17 | FromDiscord | <exelotl> oh yeah an interesting thing that ooc did, was force you to add an additional name tag to your overloaded functions |
14:21:23 | FromGitter | <jrfondren> https://nim-lang.org/docs/asyncnet.html has recvLine in a loop similarly |
14:21:27 | FromGitter | <jrfondren> the example at the top of that page |
14:22:30 | FromDiscord | <exelotl> for example you could define `abs~withInt(n: Int)` and `abs~withFloat(n: Float)` |
14:23:52 | FromDiscord | <exelotl> which would let you explicitly choose which version to call in the case of ambiguity, and also was potentially nice for documentation (I don't really like the "abs,int" thing we've got going in the doc navigation menu right now, it feels super noisy) |
14:25:13 | FromDiscord | <exelotl> not saying we should adopt the ooc solution, just that we should probably think twice about the new navigation structure, it feels kinda horrible |
14:25:23 | * | arecacea1 quit (Remote host closed the connection) |
14:25:50 | bung | jrfondren I understand the example, my code old version use recv, it's in receive-send mode, when I change to recvInto it doesn't like in that mode, the await recvInto behavior like asyncCheck recvInto |
14:25:58 | * | arecacea1 joined #nim |
14:32:19 | * | bunbunbunbunny quit (Quit: Lost terminal) |
14:34:46 | FromDiscord | <MiniApple> is nim garbage collection |
14:35:18 | FromDiscord | <exelotl> @MiniApple you can choose |
14:35:23 | FromDiscord | <MiniApple> hmm |
14:35:24 | FromDiscord | <MiniApple> choose? |
14:35:32 | FromGitter | <jrfondren> https://nim-lang.org/docs/gc.html talks about that |
14:36:16 | FromDiscord | <MiniApple> if i compile my code using `nim c main.nim` |
14:36:37 | FromGitter | <jrfondren> then you're using the default refc GC |
14:36:57 | FromDiscord | <MiniApple> ok |
14:37:11 | FromDiscord | <MiniApple> default is GC |
14:37:16 | FromDiscord | <MiniApple> i see |
14:38:31 | * | letto joined #nim |
14:40:44 | FromDiscord | <kodkuce> nah am getting that file discriptor too in vbox that its not arm issue its my doom issue |
14:40:53 | FromDiscord | <kodkuce> (edit) "nah ... am" added "my bad" |
14:40:58 | FromGitter | <jrfondren> there are some other languages where "default is GC" means "you can flog yourself if you want to avoid the GC, I guess"; the non-GC option requires huge changes to your code and might not work that well with other people's GC-assuming. Nim has a better story here with arc |
14:45:15 | FromDiscord | <lqdev> the new docs suck honestly |
14:45:19 | FromDiscord | <lqdev> from a design perspective |
14:45:40 | FromDiscord | <lqdev> my idea was to _not_ group non-overloaded procs, but nobody listened to me. |
14:45:57 | FromDiscord | <lqdev> for overloads, we could just hide the name entirely and only show the parameters in a human-friendly way |
14:46:08 | FromDiscord | <lqdev> ie. not the current int,something[T],set[foo] |
14:46:40 | FromDiscord | <lqdev> rather (i: int; thing: something[T]; foos: set[foo]) |
14:46:48 | FromDiscord | <lqdev> maybe omit the names |
14:49:14 | FromDiscord | <Rika> names arent needed |
14:49:22 | FromDiscord | <Rika> well, maybe sometimes |
14:53:35 | FromGitter | <jrfondren> better search, type-based search like hoogle, more examples, and just a flat index of names without parameters information or groupings. |
14:55:44 | FromDiscord | <haxscramper> There is no `--print-errors-as-json` or any other way to make nim compiler output machine-readable text, right? So if I want to somehow wrap binary I need to just parse whatever is printed back? |
14:58:40 | bung | you should implement it yourself, the default only have repr |
15:01:19 | bung | you can use std's json marshal lib I think |
15:04:34 | FromDiscord | <haxscramper> I mean various compiler hint messages, warnings, type errors etc. I looked into `compier/msgs` and it seems everything is just dumped into text immediately |
15:05:37 | FromGitter | <gogolxdong> How to solve the order of two mutual dependent object type in a file? |
15:06:15 | FromDiscord | <Rika> put them in the same type block |
15:08:45 | FromGitter | <gogolxdong> where documents this? |
15:10:34 | FromDiscord | <haxscramper> ~manual |
15:10:34 | FromDiscord | <haxscramper> https://nim-lang.org/docs/manual.html#type-sections |
15:10:35 | disbot | manual: 11the Nim Manual is https://nim-lang.org/docs/manual.html |
15:10:35 | FromGitter | <jrfondren> https://nim-lang.org/docs/manual.html#type-sections |
15:11:13 | FromGitter | <jrfondren> "Mutually recursive types are only possible within a single type section. " there |
15:13:19 | FromDiscord | <exelotl> @lqdev one idea I had was something like https://media.discordapp.net/attachments/371759389889003532/769216888168251413/unknown.png |
15:14:05 | FromDiscord | <exelotl> enough to tell you that there are multiple implementations, and link to them, but avoids having `gcd` listed 3 times |
15:15:33 | FromDiscord | <Rika> too ambiguous |
15:15:40 | FromDiscord | <Rika> which is int, which is float, which is which? |
15:15:54 | FromDiscord | <exelotl> you have to go there to find out, just like before |
15:16:06 | FromDiscord | <exelotl> only now it doesn't take up 3 lines in the menu |
15:16:51 | FromDiscord | <Rika> why? that wastes time dunnit |
15:17:10 | ForumUpdaterBot | New thread by Benjamindlee: Docs: Remove gensym from arguments for procs defined in templates?, see https://forum.nim-lang.org/t/6979 |
15:19:25 | * | opal quit (Remote host closed the connection) |
15:19:44 | FromDiscord | <lqdev> @Rika it's typical for overloads to be close to each other |
15:19:47 | FromDiscord | <exelotl> I agree that not being able to tell is a problem, but this isn't trying to solve that, it's just trying to be less cluttered than what we had before |
15:19:56 | * | opal joined #nim |
15:30:00 | FromDiscord | <dom96> ooh new docs are cool |
15:30:12 | FromDiscord | <dom96> but shouldn't we group by the first argument type? |
15:30:37 | leorize[m]1 | we already got that |
15:30:45 | leorize[m]1 | and then this version get rid of it for proc name overloading |
15:31:02 | Zevv | ? |
15:31:06 | FromDiscord | <dom96> yeah, we did have that but it was a shitty implementation IMO |
15:31:22 | FromDiscord | <dom96> it should be the default really |
15:31:23 | FromDiscord | <Clyybber> we should probably have different sorting options |
15:32:13 | * | vicfred joined #nim |
15:34:53 | FromDiscord | <haxscramper> https://play.nim-lang.org/#ix=2BJX Template gives 'undeclared identifier' error when I put it in generic, but only for second line (`discard`). `assert` works fine and the same code but without generics also compiles without problems |
15:39:21 | Zevv | you broke it dude |
15:42:11 | FromDiscord | <haxscramper> Even simpler example, now I"m even more confused https://play.nim-lang.org/#ix=2BJZ |
15:42:33 | Zevv | yeah I got it down to something like that as well |
15:42:44 | FromDiscord | <Clyybber> heh, thats a nice bug |
15:43:19 | Zevv | but now your code is wrong in othe rways. Remove the generics from g() and it's broken because of opt |
15:43:33 | Zevv | just a detail, but still |
15:44:02 | FromDiscord | <Clyybber> oh, hmm, nope that bug isn't neat. I thought it may be a bug of discard but it happens with a proc too |
15:44:14 | Zevv | RIGHT |
15:44:17 | Zevv | oop sorry |
15:46:33 | * | narimiran quit (Quit: leaving) |
15:47:43 | * | Helios quit (Ping timeout: 244 seconds) |
15:49:04 | bung | https://imgshare.io/image/97e3aabd9a9d7d9cbc7642c82ce5881f.NYiBq9 |
15:49:31 | * | Helios joined #nim |
15:49:43 | bung | am sending two before get first response ? |
15:51:39 | FromDiscord | <Clyybber> @haxscramper can you report it? |
15:51:42 | FromDiscord | <haxscramper> Yes, on it |
15:51:53 | FromDiscord | <Clyybber> k thanks |
15:56:16 | FromDiscord | <haxscramper> Two bug reports per day, new personal record |
15:56:34 | FromDiscord | <Clyybber> \o/ |
15:59:52 | * | hnOsmium0001 joined #nim |
16:00:09 | * | jaens[m] quit (Quit: Idle for 30+ days) |
16:02:13 | reversem3 | Curious if anyone knows of a nim group for learning , besides flooding this chan if questions over and over again? |
16:02:20 | reversem3 | * Curious if anyone knows of a nim group for learning , besides flooding this chan with questions over and over again? |
16:02:54 | disruptek | i think it's more useful to share your questions here. |
16:03:47 | reversem3 | Its just you guys talk more about advanced topics and some of us feel really stupid sometimes (: |
16:04:16 | disruptek | lqdev: agree re docs. |
16:05:05 | Zevv | reversem3: asking questions over and over is just fine, as long as you learn from the answers |
16:05:22 | reversem3 | ok sounds good (: |
16:05:56 | Zevv | Even after three years of Nim I ask stupid questions here on a regular basis |
16:06:13 | reversem3 | lol ok |
16:06:17 | FromGitter | <topcheese> Yeah they always seem good with answering question, but I feel you on the advanced topics here. hahaha |
16:06:21 | FromDiscord | <kodkuce> duno if i should rewrite my backend again in Nim or do it in python or nodejs, i am afraid if i rewrtie will again get that file descriptor error :( |
16:07:19 | disruptek | i probably understand about 30% of this language. enough to be dangerous. |
16:07:57 | FromGitter | <topcheese> I actually learn a lot from the topics, but most of the time it's over my my head. |
16:09:10 | disruptek | i dunno, i think a lot of understanding accretes slowly. |
16:09:36 | disruptek | what's great about irc is that you learn the pain points. |
16:09:43 | disruptek | it's hard to really absorb that elsewhere, i think. |
16:11:45 | FromGitter | <topcheese> Some day I hope to be a Nimpleton. |
16:12:04 | disruptek | c'mon, we all start as nimpletons. |
16:13:22 | FromGitter | <topcheese> What then graduate into a Nimpson, you know a family? |
16:13:50 | FromDiscord | <lqdev> how can i profile what's taking really long when compiling? |
16:13:53 | disruptek | no, the second level is called `Yardanico`. |
16:14:07 | FromDiscord | <lqdev> it seems that after all the modules are processed the compiler does something |
16:14:08 | FromGitter | <topcheese> Or cool like a Nimpster? |
16:14:15 | FromDiscord | <lqdev> and i want to know what's taking so long |
16:14:25 | disruptek | me too. |
16:14:49 | FromDiscord | <lqdev> @Clyybber you told me a while ago that there's a VM profiler |
16:15:05 | FromDiscord | <haxscramper> `--profileVM:on` |
16:15:24 | disruptek | it's pretty crude, though. |
16:16:14 | FromDiscord | <lqdev> good enough |
16:17:11 | FromDiscord | <lqdev> hmm so it seems like the hot spots in the VM take maybe 0.4s |
16:17:19 | FromDiscord | <lqdev> still doesn't answer my questionโฆ |
16:17:23 | FromDiscord | <lqdev> maybe it's C codegen? |
16:17:32 | disruptek | entirely possible. |
16:17:48 | * | PMunch quit (Quit: leaving) |
16:17:59 | FromDiscord | <lqdev> what does the compiler do after it processes modules, yet before it compiles and links the generated C code? |
16:18:06 | disruptek | finally made my full-object-export macro. https://github.com/disruptek/grok/blob/master/grok/star.nim |
16:18:17 | disruptek | lqdev: it has to write out the files. |
16:18:25 | reversem3 | I'm just so sick of python , its breaks all the time , I want something stable |
16:18:32 | disruptek | we assume that backend codegen is about a third of compilation time. |
16:18:52 | reversem3 | it took forever on a i7 to build 1.4 though |
16:19:02 | reversem3 | but it is much faster |
16:19:07 | disruptek | there's no reason to build nim. |
16:19:09 | disruptek | ~gitnim |
16:19:09 | disbot | gitnim: 11https://gitnim.com/ -- choosenim for choosey nimions -- disruptek |
16:19:25 | FromDiscord | <lqdev> disruptek: so the only way to decrease that time would be to either get a better processor or have less modules? |
16:19:46 | disruptek | or wait a few weeks for ic. |
16:20:08 | FromDiscord | <lqdev> i'll wait |
16:20:12 | Zevv | wait, what, really? |
16:20:15 | Zevv | you're getting there? |
16:20:17 | FromDiscord | <lqdev> but then there's another weird thing in 1.4 |
16:20:27 | FromDiscord | <lqdev> for some reason it always recompiles all my {.compile.}d C files |
16:20:33 | FromDiscord | <lqdev> 1.2 didn't do that |
16:20:37 | FromDiscord | <lqdev> is that a bug? |
16:21:04 | disruptek | it sounds like it. |
16:21:09 | Zevv | dude! |
16:21:21 | disruptek | Zevv: well, the hard part was always mangling. |
16:21:33 | Zevv | I thought you threw the towel definitaly |
16:21:36 | disruptek | mangling works, for some measure of "work", so... |
16:21:38 | Zevv | definivealy |
16:21:39 | Zevv | damn |
16:21:55 | disruptek | oh i've thrown in the towel definitely, definitively, and all other forms of defiantly. |
16:22:04 | Zevv | right so |
16:22:22 | disruptek | what day is it? |
16:22:33 | Zevv | i forgot long ago |
16:22:38 | disruptek | well, it could go in this week i guess. probably next week. |
16:22:58 | disruptek | i have to polish a couple things so lqdev doesn't freak out at the compilation speed. |
16:23:06 | Zevv | put in some sleeps you mean |
16:23:16 | disruptek | yeah. i have to make it look /hard/ at least. |
16:23:25 | Zevv | better busy-wait then |
16:23:43 | disruptek | also, timmy asked for some more compilation switches and progress-related terminal output. |
16:23:59 | disruptek | the guy just really loves helpers. i dunno what to say. |
16:24:09 | FromDiscord | <Clyybber> Zevv: its green |
16:24:14 | Zevv | so am I |
16:24:26 | Zevv | I'm waiting until I'm a grown up |
16:24:28 | disruptek | Zevv: you're sick about tracy, huh. |
16:25:39 | Zevv | oh not at all. I'm not botherd by these things anymore |
16:25:57 | disruptek | cross your fingers, i might lose power in a sec. |
16:26:19 | reversem3 | <disruptek "there's no reason to build nim."> I had to with choosenim |
16:26:31 | disruptek | wut |
16:26:45 | disruptek | why? |
16:26:58 | Zevv | cross your fingers, i might lose po%!@#!$#$*@2 NO CARRIER |
16:27:11 | FromDiscord | <lqdev> seems like that C compilation thing is fixed on devel |
16:27:18 | FromDiscord | <lqdev> guess it'll be included in 1.4.2 |
16:27:48 | disruptek | i wish we versioned more. |
16:28:08 | disruptek | reversem3: honestly, i think if you're building the compiler, you're doing it wrong. |
16:28:43 | disruptek | and that's coming from a die-hard gentoo user, so... |
16:29:34 | * | Sembei quit (Quit: WeeChat 2.9) |
16:31:20 | disruptek | lqdev: what are you working on? |
16:31:56 | FromDiscord | <Clyybber> TIL I'm doing it wrong |
16:32:04 | reversem3 | <disruptek "and that's coming from a die-har"> All I did was choosenim update stable |
16:32:18 | disruptek | you're fucked, son. |
16:32:33 | reversem3 | I have build nim before for fun , cause I like pain lol |
16:32:41 | disruptek | clyybber: i don't even build nim when i work on the compiler. |
16:33:15 | FromDiscord | <lqdev> disruptek: a game |
16:33:21 | FromDiscord | <lqdev> hence why i want fast compile times |
16:33:21 | FromDiscord | <Clyybber> disruptek thats where all your time goes |
16:33:36 | * | reversem3 sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/TULfsXxXsRPcVOlmWuQhMECc/message.txt > |
16:33:40 | FromDiscord | <Clyybber> @lqdev what are your compile times rn? |
16:33:54 | disruptek | maybe. it takes a long time to run the vm on my chalk slate what with all these new registers zevv added. |
16:33:57 | FromDiscord | <lqdev> about 5 seconds + 2 seconds for glfwInit |
16:34:03 | disruptek | lol |
16:34:06 | FromDiscord | <Clyybber> lol |
16:34:56 | disruptek | why does choosenim think that 1.4.0 is stable? |
16:35:04 | disruptek | did i miss a memo? |
16:35:17 | FromDiscord | <Clyybber> ~disruptek |
16:35:18 | reversem3 | I thought it was stable |
16:35:18 | disbot | disruptek: 11a sexy fella with magic hands. |
16:35:18 | disbot | disruptek: 11:disruptek: -- Clyybber |
16:35:18 | disbot | disruptek: 11an unsafe nil deref |
16:35:32 | FromDiscord | <Clyybber> reversem3: hes just messing with you |
16:35:38 | disruptek | nope. |
16:35:43 | reversem3 | Is he the "magic man" |
16:35:52 | disruptek | you heard about me, huh? |
16:36:05 | reversem3 | from the song yes |
16:36:09 | reversem3 | lol |
16:36:13 | FromDiscord | <Clyybber> disruptek: removed the latest entry did we? |
16:36:27 | disruptek | what latest entry? |
16:36:38 | FromDiscord | <Clyybber> or I dreamt |
16:36:44 | disruptek | when you add an entry you remove your previous entry. |
16:36:49 | FromDiscord | <Clyybber> oh |
16:36:56 | FromDiscord | <Clyybber> :disruptek: |
16:37:33 | disruptek | every time someone uses the :disruptek: emote i feel a little shiver in the netheregions. |
16:38:22 | disruptek | 1.4 isn't stable. it's "the latest development release". |
16:39:37 | FromDiscord | <Clyybber> no |
16:39:58 | disruptek | well, i'd like an rfc on this, honestly. |
16:40:00 | reversem3 | So confused |
16:40:04 | disruptek | i think the messaging is extremely poor. |
16:40:10 | FromDiscord | <Clyybber> I'd like an RFC for disruptek to shut up |
16:40:17 | FromDiscord | <Clyybber> :D |
16:40:33 | FromDiscord | <Clyybber> reversem3: disruptek often thinks about words |
16:40:36 | disruptek | yeah, you better add a fuckin' smiley. |
16:40:37 | FromDiscord | <Clyybber> and only words |
16:40:43 | FromDiscord | <Clyybber> lol |
16:41:09 | reversem3 | Its like watching toddlers fight over a toy (: |
16:41:14 | disruptek | we've gone back and forth on what 1.0 and 1.2 mean. |
16:41:41 | FromDiscord | <Clyybber> disruptek: if you consider 1.2 to be a development release too then fine |
16:41:57 | disruptek | we support 1.2 for status reasons. we support 1.0 for lts reasons. now we call 1.4 "stable" even though it was released, with much difficulty, only a week ago? |
16:42:05 | disruptek | yeah, i considered 1.2 a devel release. |
16:42:37 | disruptek | 1.4 is about --> this <-- far from head ffs. |
16:43:14 | disruptek | clyybber: you can merge criterion btw. |
16:43:27 | FromDiscord | <Clyybber> how long does it take now? |
16:43:28 | disruptek | i think it won the race but i'll win the war. |
16:45:29 | FromDiscord | <Clyybber> well your PR is red |
16:45:39 | FromDiscord | <Clyybber> Error: NimScript file does not exist: tests/compiler.nims |
16:45:51 | disruptek | like i said. i lost the race. |
16:46:04 | disruptek | see, there was this brunette and we got to talking and... |
16:47:07 | disruptek | nevermind, i guess araq wants it sped up. |
16:48:00 | FromDiscord | <Clyybber> > https://github.com/nim-lang/Nim/issues/10744#issuecomment-715454728โตlol |
16:48:01 | disbot | โฅ better navigation |
16:50:17 | * | zielmicha___ joined #nim |
16:50:17 | Axiomatic | git checkout nim1.4; git checkout -f nim-1.0 -- . |
16:51:55 | FromDiscord | <Clyybber> disruptek: witness the harvest of your FUD |
16:52:09 | FromDiscord | <Clyybber> (edit) "harvest" => "fruits" |
16:52:27 | disruptek | ~disrupte is a fruit witness. |
16:52:27 | disbot | disrupte: 11a fruit witness. |
16:52:32 | disruptek | ~disruptek is a fruit witness. |
16:52:32 | disbot | disruptek: 11a fruit witness. |
16:52:33 | disbot | disruptek: 11:disruptek: |
16:52:33 | disbot | disruptek: 11an unsafe nil deref |
16:53:03 | disruptek | actually, they gave up talking about llvm eventually. |
16:53:05 | FromDiscord | <Clyybber> we should base IC on fruits honestly |
16:53:11 | disruptek | ikr? |
16:53:22 | FromDiscord | <Clyybber> disruptek: Yeah, I'm talking bout your latest work |
16:53:31 | disruptek | what did i do? |
16:53:44 | FromDiscord | <Clyybber> check the message above my message |
16:55:27 | disruptek | eh that's just a knucklehead pasting into the wrong window. |
16:56:07 | disruptek | nothing to do with me. |
16:57:32 | * | VijayMarupudi[m] quit (*.net *.split) |
16:57:33 | * | k0mpjut0r quit (*.net *.split) |
16:57:33 | * | zielmicha__ quit (*.net *.split) |
16:57:34 | * | opal quit (*.net *.split) |
16:57:38 | * | zielmicha___ is now known as zielmicha__ |
16:59:19 | FromGitter | <topcheese> nooo, I missed the llvm talk? I'm not ready for it anyway.\ |
16:59:44 | FromDiscord | <Clyybber> more U |
17:00:07 | * | Cthalupa quit (Ping timeout: 246 seconds) |
17:01:31 | FromGitter | <topcheese> Because I don't understand why it's not used like in Zig, but I know there's some nim/zig thing that was going on. I remember that. |
17:02:11 | disruptek | you mean like a fight between nim and zig? |
17:02:37 | * | Cthalupa joined #nim |
17:03:02 | FromGitter | <topcheese> No, like feeling stupid for asking why Nim doesn't use llvm like Zig to cross-compile ... so yeah I guess a fight. hahaha |
17:03:22 | supakeen | we both sent selected community members to a tiny arena in the ocean |
17:03:27 | supakeen | the fights have not yet concluded |
17:03:42 | disruptek | you can see the smoke on google earth though. |
17:03:44 | FromGitter | <topcheese> I mean llvm is suppose to be built for that, but I just have to search for the previous talks. |
17:04:33 | disruptek | nim doesn't use llvm because everyone is afraid we won't have the critical portability we need to get those three embedded neckbeards using the language. |
17:05:07 | leorize[m]1 | well it's simple |
17:05:09 | * | abm quit (Quit: Leaving) |
17:05:12 | FromGitter | <topcheese> Well not everyone like to ride the bandwagon. |
17:05:38 | leorize[m]1 | nim predates llvm being mainstream :P |
17:05:52 | FromGitter | <topcheese> haters going to hate. |
17:05:57 | FromDiscord | <Clyybber> topcheese: did you see https://github.com/arnetheduck/nlvm ? |
17:06:27 | leorize[m]1 | before llvm was good people generates C |
17:06:28 | * | VijayMarupudi[m] joined #nim |
17:06:36 | FromGitter | <topcheese> It's been awhile, I was meaning to check out recent updates. |
17:06:38 | leorize[m]1 | so that's why Nim generates C |
17:06:52 | disruptek | ~leorize |
17:06:53 | disbot | leorize: 11responsible for the awesome NeoVim plugin at https://github.com/alaviss/nim.nvim -- disruptek |
17:07:09 | leorize[m]1 | currently there are a lot more things with higher priority than moving to llvm |
17:07:23 | disruptek | ~leorize is our patron saint of ci/cd. |
17:07:23 | disbot | leorize: 11our patron saint of ci/cd. |
17:07:55 | FromGitter | <topcheese> I was also looking at crossdocker for Nim, but I'm not currently doing Docker. |
17:08:05 | Zevv | good |
17:08:07 | disruptek | i thought they made pants. |
17:08:13 | FromGitter | <topcheese> I feel that leorize. |
17:08:33 | disruptek | i don't think you're supposed to touch saints. |
17:08:43 | FromGitter | <topcheese> hahaha |
17:09:13 | FromGitter | <topcheese> It's good to know that we have options with Nim. |
17:09:22 | disruptek | i really want labels on our pulls. this is silly. |
17:16:21 | FromDiscord | <Python> Wait what |
17:16:32 | FromDiscord | <Python> @disruptek |
17:16:43 | disruptek | yeah, pants. |
17:16:43 | FromDiscord | <Python> R u a actual bot or like |
17:16:47 | disruptek | they make pants. |
17:16:55 | FromDiscord | <Python> ? |
17:16:58 | FromDiscord | <Python> @disruptek hi |
17:17:04 | supakeen | Python: one gets used to disruptek |
17:17:17 | disruptek | or one gets used by disruptek. |
17:17:27 | FromDiscord | <Python> @supakeen can I invite u to my server |
17:17:30 | FromDiscord | <Python> Ur fake |
17:17:33 | FromDiscord | <Python> They control u |
17:17:47 | FromDiscord | <Python> @supakeen |
17:17:53 | FromDiscord | <Python> @disruptek |
17:18:45 | supakeen | No, go away. |
17:18:46 | Axiomatic | Again the Bridge of Confusion gives from its bounty... |
17:18:51 | disruptek | lol |
17:24:18 | FromDiscord | <Jahoskie> Slotterey shit |
17:35:10 | * | arecacea1 quit (Remote host closed the connection) |
17:35:34 | * | arecacea1 joined #nim |
17:36:07 | * | luismanfroni joined #nim |
17:48:39 | * | opal joined #nim |
17:54:04 | * | lritter quit (Ping timeout: 256 seconds) |
17:56:27 | * | bung quit (Quit: Lost terminal) |
18:02:55 | FromDiscord | <lqdev> ~bridgebots is the Discord channel is bridged to IRC. the bot users you are seeing are controlled by a webhook that sends messages from IRC onto Discord, so those are actual users. |
18:02:56 | disbot | bridgebots: 11the Discord channel is bridged to IRC. the bot users you are seeing are controlled by a webhook that sends messages from IRC onto Discord, so those are actual users. |
18:07:11 | FromDiscord | <Rika> who the hell were those two |
18:07:25 | * | tane joined #nim |
18:07:31 | Zevv | and who sent them |
18:09:45 | FromDiscord | <Nim> oh |
18:11:13 | FromDiscord | <Recruit_main707> so now we have python and nim |
18:13:28 | disruptek | i've had a python for decades. |
18:14:17 | disruptek | clyybber: we'll try removing the trailing _ but i'm pretty sure someone will puke on it. |
18:29:15 | * | vivus quit (Quit: Leaving) |
18:41:13 | * | luismanfroni quit (Ping timeout: 272 seconds) |
18:49:50 | FromDiscord | <shashlick> @dom96 / @leorize - please review the choosenim PR if any other feedback - https://github.com/dom96/choosenim/pull/238 |
18:49:51 | disbot | โฅ Linux build, windows init.sh fixes |
18:50:17 | FromDiscord | <shashlick> meanwhile, i'll continue saying bye bye mentally to travis - https://twitter.com/genotrance/status/1319709620420620290 |
18:55:18 | supakeen | Oh PMunch isn't here. |
18:55:40 | ForumUpdaterBot | New post on r/nim by shujidev: How does to do type inference on proc return?, see https://www.reddit.com/r/nim/comments/jgtbbn/how_does_to_do_type_inference_on_proc_return/ |
19:03:55 | * | landerlo joined #nim |
19:09:30 | FromDiscord | <alehander42> HAHAHAH |
19:09:40 | Zevv | you ok? |
19:09:48 | FromDiscord | <alehander42> sorry man |
19:10:00 | FromDiscord | <nikki> i'm actually really into how nim generates c bc. i can go see the generated c and see all of the calling that happens... esp. nice with `--gc:arc` and `-d:danger` . c is a nice IR that doesn't have much 'invisible control flow' |
19:10:16 | FromDiscord | <alehander42> i liked |
19:10:19 | FromDiscord | <alehander42> the llvm comments |
19:10:22 | supakeen | Say I want to test some non exported functions from a package, can I somehow get at them without *? |
19:10:31 | FromDiscord | <alehander42> yeah i like generating C as well |
19:10:34 | FromDiscord | <alehander42> it's simple |
19:10:40 | Zevv | alehander42: a bit slow today, right |
19:10:47 | FromDiscord | <alehander42> i got off work |
19:10:50 | Zevv | supakeen: nope |
19:10:52 | FromDiscord | <alehander42> i try to |
19:10:54 | FromDiscord | <alehander42> skip nim |
19:10:58 | FromDiscord | <alehander42> on work |
19:11:03 | supakeen | Zevv: How do you deal with it, just exporting them? |
19:11:10 | FromDiscord | <Clyybber> supakeen: you could include the file |
19:11:13 | Zevv | or put the tests in the source file |
19:11:14 | FromDiscord | <nikki> @alehander42 how do u manage to do that, must be hard |
19:11:17 | FromDiscord | <alehander42> today i tried to understand load factors in rust |
19:11:28 | FromDiscord | <alehander42> interesting ways to override that |
19:11:30 | Zevv | or include |
19:11:33 | supakeen | Thanks I'll look at the include. |
19:11:38 | Zevv | include might your best bet yeah |
19:11:51 | FromDiscord | <Clyybber> @alehander42 What is that? |
19:11:59 | Zevv | yeah, rust, what is that? |
19:12:16 | FromDiscord | <Clyybber> yeah rust, what? |
19:12:23 | supakeen | Yea, I like the include works without reorganizing :) |
19:12:28 | FromDiscord | <alehander42> i mean |
19:12:34 | FromDiscord | <alehander42> changing the load facrtor |
19:12:36 | FromDiscord | <nikki> is that like crust without the c |
19:12:39 | FromDiscord | <alehander42> when resizing a vec |
19:12:48 | FromDiscord | <alehander42> interesting if languages offer stuff like this |
19:13:07 | FromDiscord | <alehander42> probably just |
19:13:09 | FromDiscord | <Clyybber> oh, you mean the growth factor? |
19:13:27 | FromDiscord | <alehander42> yes |
19:13:30 | FromDiscord | <alehander42> maybe a custom method |
19:13:33 | FromDiscord | <nikki> load factor is percentage of stuff that is not filled |
19:13:34 | FromDiscord | <alehander42> is easiest usually |
19:13:45 | FromDiscord | <nikki> growth factor is newcap/oldcap i guess |
19:13:52 | ForumUpdaterBot | New post on r/nim by shujidev: How to do type inference on proc return?, see https://www.reddit.com/r/nim/comments/jgtogh/how_to_do_type_inference_on_proc_return/ |
19:14:02 | FromDiscord | <alehander42> ahhh thanks |
19:14:08 | FromDiscord | <alehander42> this makes sense |
19:14:16 | FromDiscord | <alehander42> well they are related |
19:14:17 | FromDiscord | <alehander42> i guess |
19:14:19 | FromDiscord | <Clyybber> @alehander42 Rust itself doesn't make strong guarantees about the internal growth factor, does it? |
19:14:31 | FromDiscord | <alehander42> well its impl defind i think |
19:14:39 | FromDiscord | <alehander42> currently 2.0 for most cases in vec! |
19:14:39 | FromDiscord | <Clyybber> yeah |
19:14:44 | FromDiscord | <nikki> definitely related -- if you are at capacity, then the growth factor - 1 is the load factor after resize |
19:14:44 | FromDiscord | <alehander42> but not for the first one |
19:14:47 | FromDiscord | <alehander42> i think it makes it 8b |
19:14:47 | reversem3 | Is there such thing as an Asynchronous input stream yet ? |
19:15:05 | FromDiscord | <alehander42> but its cool to think |
19:15:07 | FromDiscord | <alehander42> e.g. i didnt know |
19:15:10 | FromDiscord | <alehander42> shrink can reallocate |
19:15:13 | FromDiscord | <alehander42> like dude |
19:15:16 | FromDiscord | <alehander42> srsly |
19:15:18 | FromDiscord | <alehander42> but it makes sense |
19:15:22 | FromDiscord | <alehander42> because fragmentation |
19:15:22 | FromDiscord | <nikki> i've only seen 'load factor' mentioned more for eg. hash tables than vectors |
19:15:49 | FromDiscord | <nikki> yeah in eg. c++ -- removing elems doesn't relocate, but you can call `.shrink_to_fit` to make it do that |
19:15:51 | FromDiscord | <alehander42> depends on allocator it seems |
19:15:54 | FromDiscord | <nikki> reallocate |
19:15:56 | FromDiscord | <nikki> that too |
19:16:02 | FromDiscord | <alehander42> but my understanding is rust's |
19:16:08 | FromDiscord | <alehander42> shrink_to_fit can lead to realloc |
19:16:10 | FromDiscord | <alehander42> eventually |
19:16:14 | Zevv | it should |
19:16:15 | FromDiscord | <alehander42> i might be wrong |
19:16:15 | FromDiscord | <nikki> yeah |
19:16:18 | supakeen | Wew, I'm almost setup enough to start implementing the npeg bits in my project Zevv :) |
19:16:23 | FromDiscord | <nikki> also it's better to shrink only when you go below 0.25, if you expand on 2 |
19:16:30 | FromDiscord | <nikki> altho 2 is not a good growth factor IMO bc. you can never reuse old mem |
19:16:35 | FromDiscord | <alehander42> hm, it makes sense to be able |
19:16:38 | Zevv | supakeen: sweet. what ya parsing again? |
19:16:38 | FromDiscord | <alehander42> to generic those |
19:16:48 | FromDiscord | <nikki> like if you keep allocating 1, 2, 4, 8 -- every new array can't reuse old memory. you will keep growing your page |
19:16:53 | FromDiscord | <alehander42> e.g. Vec<Growth=1.5, Shrink=0.5> |
19:16:56 | * | landerlo quit (Remote host closed the connection) |
19:16:57 | supakeen | Zevv: Command lines, I just setup the re-assemble and properly quote argv so I can start feeding it into parsers. |
19:17:09 | FromDiscord | <alehander42> but i can see how this might be unexpectd |
19:17:13 | FromDiscord | <nikki> bc. size_i > sum_{j < i} size_j |
19:17:16 | supakeen | Going to define a few flavours of parsing and then write some things so you can define 'this is exclusive with that' and such :) |
19:17:24 | Zevv | supakeen: cool, keep me informed of your progress |
19:17:29 | supakeen | Will do! |
19:18:00 | FromDiscord | <Clyybber> @alehander42 if they are generic params are they convertible? |
19:18:30 | FromDiscord | <nikki> https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md#memory-handling |
19:18:43 | FromDiscord | <nikki> > This was not a good choice: it can be mathematically proven that a growth factor of 2 is rigorously the worst possible because it never allows the vector to reuse any of its previously-allocated memory. |
19:18:44 | FromDiscord | <alehander42> good question |
19:18:58 | FromDiscord | <alehander42> not sure |
19:19:12 | FromDiscord | <nikki> > remarkable equality |
19:19:16 | FromDiscord | <nikki> lol, word |
19:19:29 | FromDiscord | <alehander42> but they should be like with `::<>` |
19:19:41 | FromDiscord | <alehander42> i guess on theory |
19:20:04 | FromDiscord | <alehander42> but you wouldn't want to mix them too much |
19:20:07 | FromDiscord | <alehander42> i think |
19:20:25 | FromDiscord | <Clyybber> it won't cause incorrect behaviour but it might invalidate your expectations |
19:20:38 | FromDiscord | <Clyybber> but if you don't have them convertible you have to specialize everything |
19:20:48 | FromDiscord | <Clyybber> and end up with tons of code |
19:20:54 | FromDiscord | <alehander42> eh it can be just |
19:20:59 | FromDiscord | <alehander42> a constructor thing then |
19:21:06 | FromDiscord | <alehander42> Vec::new_with_growth(..) |
19:21:10 | FromDiscord | <alehander42> but this might be worse |
19:21:15 | FromDiscord | <Clyybber> then its a runtime value :D |
19:21:20 | FromDiscord | <alehander42> in nim |
19:21:24 | FromDiscord | <alehander42> hm |
19:21:28 | FromDiscord | <alehander42> i want to see concepts ! |
19:21:29 | FromDiscord | <alehander42> now |
19:21:36 | FromDiscord | <alehander42> with all the traits it seems so easy |
19:21:42 | FromDiscord | <alehander42> to specify custom behavior that way |
19:21:55 | FromDiscord | <alehander42> e.g. Error Deref Try |
19:22:21 | FromDiscord | <nikki> i like nim |
19:22:22 | FromDiscord | <alehander42> Try makes it so your custom type can use the `a?()` early err return thing |
19:22:46 | FromDiscord | <nikki> in nim ufcs kinda just makes that work right? |
19:22:52 | FromDiscord | <alehander42> well, not sure |
19:23:06 | FromDiscord | <alehander42> it's more about, how to make sure my type can be X |
19:23:20 | FromDiscord | <alehander42> i guess i can just overload a method / macro / function for it |
19:23:32 | FromDiscord | <alehander42> but what exactly is it: easiest to read that in a concept |
19:23:45 | FromDiscord | <alehander42> and be able to see Type implment Iterable, Try etc |
19:23:59 | FromDiscord | <alehander42> probably this is my newbie rust feel speaking, so i |
19:24:02 | FromDiscord | <nikki> yea for sure |
19:24:06 | FromDiscord | <alehander42> want to see what better alternatives there are |
19:24:11 | FromDiscord | <nikki> i was addessing rusty traits |
19:24:15 | FromDiscord | <nikki> concepts make sense to me |
19:24:16 | FromDiscord | <alehander42> typeclasses in haskell? |
19:24:28 | FromDiscord | <nikki> but depends on whether you mean "compiles(<any expr>)" |
19:24:59 | Zevv | so, what's on the roadmap for 1.6 by the way |
19:25:43 | FromDiscord | <alehander42> in nim tho |
19:36:41 | disruptek | 1.6 is ic and orc, baby. |
19:36:51 | Zevv | sweet sweet |
19:36:56 | disruptek | and hopefully, not nil. |
19:37:00 | reversem3 | can you use threads:on in inim ? |
19:38:20 | FromDiscord | <djazz> ic? |
19:38:34 | Prestige | incremental compilation |
19:38:39 | FromDiscord | <haxscramper> ~ic |
19:38:40 | disbot | no footnotes for `ic`. ๐ |
19:38:44 | FromDiscord | <djazz> ah sweet |
19:39:39 | FromDiscord | <djazz> i saw something about getting rid of nil |
19:40:55 | disruptek | blame alehander for that. |
19:41:38 | FromDiscord | <Clyybber> not nil should not be rushed |
19:42:09 | FromDiscord | <Clyybber> we have to come up with a good design that also considers z3 and the like |
19:44:30 | Zevv | how's that, we can't go forcing z3 on regular compilation, right? |
19:44:36 | disruptek | it might be gated, but it should still be in 1.6. |
19:45:07 | Zevv | I mean, disruptek has been working his ass of to get compilation fast as hell, and now we're slowing it down by a factor 30 by pulling in Z3 to prove my refs are not nil? |
19:45:19 | FromDiscord | <Clyybber> yeah exactly |
19:45:22 | disruptek | hah, i'm pretty sure my shit will slow down compilation. |
19:45:27 | FromDiscord | <Clyybber> its not a simple problem |
19:45:48 | FromDiscord | <Clyybber> and not nil should be general IMO |
19:45:54 | FromDiscord | <haxscramper> ~ic is an incremental compilation; It allows to cache compilation results, removing need to recompile all modules in project and speeding up recomilation. For relevant RFC see https://github.com/nim-lang/RFCs/issues/46 |
19:45:55 | disbot | ic: 11an incremental compilation; It allows to cache compilation results, removing need to recompile all modules in project and speeding up recomilation. For relevant RFC see https://github.com/nim-lang/RFCs/issues/46 |
19:45:55 | FromDiscord | <Clyybber> so as to allow for int not 0 |
19:46:03 | FromDiscord | <Clyybber> aka `T not value` |
19:46:50 | Zevv | wait what. |
19:47:05 | Zevv | how would you express that, that's something completely different |
19:47:20 | FromDiscord | <Clyybber> its just a generalization |
19:47:27 | FromDiscord | <haxscramper> Dependent types? |
19:47:32 | Zevv | So, would you be able to say 'int no 0 but also not 5' ? |
19:47:57 | disruptek | it's more like T not default(T) but i think he's mad. |
19:48:01 | Zevv | I'm no type doctor, but I think a ref pointing nowhere is something completely different then an int being 0 |
19:48:07 | disruptek | agree. |
19:48:07 | supakeen | Huh maybe I should turn my PEG design upside down mrm. |
19:48:21 | Zevv | supakeen: show me your stuff |
19:48:25 | Zevv | and I'll show you mine |
19:49:07 | supakeen | Zevv: I'm currently just thinking about it. My current plan is that a bunch of parsers exist which all parse to the same structure. Then I have a separate bit where the user can define constraints like mutual exclusivity. |
19:49:14 | FromDiscord | <Clyybber> Zevv: its exactly the same |
19:49:17 | supakeen | But then I thought what if you define it and then make it part of the grammar. |
19:49:19 | FromDiscord | <haxscramper> > I'm no type doctor, but I think a ref pointing nowhere is something completely different then an int being 0โต@Zevv I'm not an expert on a subject, but to me it seems like something /technically related/. All of this is probably amounts to constraints that you can put on z3 |
19:49:30 | FromDiscord | <haxscramper> And information that you can get from conrol flow graph etc. |
19:49:43 | FromDiscord | <Clyybber> Zevv: it only gets hard once you allow operations on the type :D |
19:50:08 | disruptek | true; operations on the type make me hard. |
19:50:34 | FromDiscord | <haxscramper> If we get this and drnim it would be awesome |
19:51:07 | supakeen | I'll write some code first so it's easier to reason about than just words. |
19:51:24 | FromDiscord | <Clyybber> I think about it this way: not nil is simple and binary, should be pretty usable without z3; using crude pessimistic analysis |
19:51:47 | disruptek | but clyyber, there is already implicit x = default. |
19:51:53 | FromDiscord | <Clyybber> not 0 is not much usable without z3 since our crude pessmistic analysis will prohibit much stuff |
19:52:22 | FromDiscord | <Clyybber> disruptek: Yeah? |
19:52:44 | disruptek | what meaning do you think you can presume about uninit value types? |
19:52:48 | FromDiscord | <Clyybber> Obviously T not default(T) can't be implicitly intialized like that |
19:52:59 | Zevv | but really, slurping in Z3 for a lint-like thingy I can see happening, but are we really considering putting a theorem prover into the compiler itself? |
19:53:01 | disruptek | well... fine for new code i guess. |
19:53:03 | FromDiscord | <Clyybber> just like a not nil ref type can't |
19:53:10 | disruptek | Zevv: it's already done. |
19:53:33 | FromDiscord | <Clyybber> disruptek: What? This is only about new code, your old code doesn't have not 0 anywhere |
19:53:51 | Zevv | disruptek: "grep -r z3 Nim/compiler" gives me zero results |
19:53:59 | FromDiscord | <Clyybber> drnim |
19:54:02 | disruptek | Zevv: drnim is a compiler with a prover in it. |
19:54:11 | disruptek | yeah, i'm fine with new code. |
19:54:30 | Zevv | disruptek: sure, but that will not work for everyday usage, will it |
19:54:32 | Zevv | it's like linting |
19:54:40 | disruptek | yes, but so what? |
19:54:53 | Zevv | but is "not nil" not something you'd want in your everyday usage |
19:55:02 | disruptek | why not? |
19:55:08 | FromDiscord | <alehander42> hey |
19:55:22 | Zevv | no, not "not", I mean "yes", I want that in my normal compiler |
19:55:22 | FromDiscord | <Clyybber> it would be cool if z3 could give a time estimate |
19:55:55 | FromDiscord | <alehander42> clyybber i agre and i dont |
19:55:58 | disruptek | lol |
19:56:01 | Zevv | I've played with z3, and in my experence it's pretty much exponentially slower when your input grows linearly complex |
19:56:04 | FromDiscord | <alehander42> but i am very biased |
19:56:04 | FromDiscord | <alehander42> like |
19:56:13 | FromDiscord | <alehander42> enum A{B} |
19:56:16 | FromDiscord | <alehander42> seems better than not 0 |
19:56:18 | FromDiscord | <alehander42> to me |
19:56:22 | FromDiscord | <alehander42> more obvious generalization |
19:56:25 | disruptek | lalala ic lalala |
19:56:54 | FromDiscord | <alehander42> and |
19:56:54 | Zevv | let's all sing the ic song |
19:57:03 | FromDiscord | <alehander42> many languages have it inside |
19:57:09 | FromDiscord | <alehander42> i dont want to offload it to a z3 tool |
19:57:19 | FromDiscord | <alehander42> that is not even a part of the compiler |
19:57:34 | FromDiscord | <Clyybber> I don't want to either; but I wonder how we can properly integrate it |
19:57:43 | Zevv | supakeen: yes, that's usually a good idea. first write some code :) |
19:57:47 | FromDiscord | <alehander42> and speed is important |
19:57:51 | FromDiscord | <Clyybber> yeah |
19:57:55 | disruptek | clyybber: it goes in the compiler server. |
19:57:59 | FromDiscord | <alehander42> i am not sure if calling to z3 for all not nil would be same speed |
19:58:04 | FromDiscord | <Clyybber> disruptek: not a bad idea |
19:58:08 | FromDiscord | <alehander42> and our stuff |
19:58:14 | FromDiscord | <Clyybber> no, of course not |
19:58:18 | Zevv | compiler server |
19:58:19 | FromDiscord | <alehander42> seems to already almost work (depending on how far you want to go) |
19:58:21 | FromDiscord | <Clyybber> thats not what I meant |
19:58:38 | FromDiscord | <Clyybber> I want the normal linear analysis to stay |
19:58:45 | FromDiscord | <Clyybber> and be used |
19:59:02 | FromDiscord | <Clyybber> I'm just wondering how we can integrate z3 into this |
19:59:23 | disruptek | clyybber: it goes in the compiler server. |
19:59:29 | Zevv | compiler server |
19:59:38 | disruptek | deja vu. |
19:59:44 | Zevv | is that a thing or a concept? |
19:59:50 | FromDiscord | <Clyybber> concept |
20:00:16 | FromDiscord | <Clyybber> I guess you could compile your code then, and wait for later for the compiler to assure you its safe |
20:00:20 | FromDiscord | <nikki> lmao |
20:00:21 | FromDiscord | <nikki> sent a code paste, see https://play.nim-lang.org/#ix=2BLz |
20:00:22 | FromDiscord | <alehander42> also |
20:00:35 | FromDiscord | <alehander42> i actually prefer better integration of syntax shortcuts for invariants |
20:00:39 | FromDiscord | <alehander42> but maybe Araq is right |
20:00:47 | FromDiscord | <alehander42> and just having the standard pragmas is smart |
20:00:50 | Zevv | nikki: yeah ar4q has opinions on unix |
20:01:34 | disruptek | the compiler server is the only way to z3. |
20:01:55 | * | luismanfroni joined #nim |
20:02:00 | FromDiscord | <Clyybber> doesn't even have to be a server; |
20:02:08 | Zevv | did you work with z3 yet disruptek |
20:02:17 | disruptek | yeah, it sucks. |
20:02:22 | Zevv | all of it |
20:02:33 | disruptek | well, no, the concept is fine but it's boring. |
20:02:36 | FromDiscord | <Clyybber> just the compiler compiling your code, even if it can't prove it with z3 yet, and then running further until it can |
20:02:59 | FromDiscord | <Clyybber> yeah magic is boring |
20:02:59 | disruptek | yes, but the server allows it to run subsequent solving in real time. |
20:03:10 | FromDiscord | <Clyybber> what does that mean |
20:03:38 | disruptek | it can already have checked everything but your change; so it merely vets the update. |
20:03:44 | FromDiscord | <nikki> if it keeps running it holds previous state in mem |
20:04:07 | FromDiscord | <Clyybber> does z3 support that? |
20:04:49 | disruptek | i don't know, but there's really no other way to make it work. it's too expensive otherwise, imo. |
20:04:58 | Zevv | right that's my point |
20:05:05 | disruptek | like, i would sooner rearchitect compilation. |
20:05:21 | disruptek | change the language if necessary. |
20:05:42 | Zevv | just take out the refs |
20:05:43 | disruptek | i'm sure that's a super unpopular position, of course. |
20:06:11 | FromDiscord | <Clyybber> disruptek: well if you don't make it concrete yeah |
20:06:56 | FromDiscord | <nikki> sent a code paste, see https://play.nim-lang.org/#ix=2BLA |
20:07:01 | FromDiscord | <Clyybber> yep |
20:07:03 | FromDiscord | <nikki> and then gradually reintroduce what types i want to be copyable |
20:07:06 | FromDiscord | <Clyybber> oh |
20:07:11 | FromDiscord | <Clyybber> eh, no |
20:07:14 | FromDiscord | <Clyybber> I don't think so |
20:07:18 | FromDiscord | <nikki> kk |
20:07:20 | FromDiscord | <Clyybber> but try it :D |
20:07:40 | FromDiscord | <nikki> just sez `signature for '=copy' must be proc[T: object](x: var T; y: T)` |
20:07:48 | supakeen | Zevv: Does this need a , in the README: `peg("pairs" userdata: Dict)`? |
20:08:03 | FromDiscord | <nikki> which afaict is the same but also i haven't gotten to the generics part of dom's book yet; still learning lol |
20:08:33 | FromDiscord | <nikki> maybe i mostly want to do it for strings anyways bc. the automatic string copying everywhere is getting to me |
20:08:59 | disruptek | so fix it. |
20:09:13 | FromDiscord | <alehander42> disruptek |
20:09:14 | Zevv | supakeen: there's a , in there? |
20:09:16 | FromDiscord | <alehander42> that's what i want |
20:09:22 | FromDiscord | <alehander42> change the language |
20:09:29 | FromDiscord | <alehander42> and reacrhcitect compilation |
20:09:30 | disruptek | nim is basically the sum of everyone's annoyances. |
20:09:36 | FromDiscord | <alehander42> so it's not unpopular maybe |
20:09:42 | FromDiscord | <alehander42> but .. a bit idealistic ๐ |
20:09:47 | FromDiscord | <djazz> ๐ |
20:09:47 | Zevv | supakeen: you mean in https://github.com/zevv/npeg#passing-state, right? |
20:09:50 | disruptek | well, there are two of us at least. |
20:10:04 | FromDiscord | <alehander42> i mean probably Araq also wants it in the way of "if i could write nim again" |
20:10:05 | FromDiscord | <nikki> is this the process of discovering what those fixes are, or is there another one |
20:10:08 | supakeen | "README fix" 31 seconds ago, nice. |
20:10:13 | FromDiscord | <alehander42> but practicality is another thing |
20:10:33 | FromDiscord | <nikki> i think the main thing is the lang seems flexible enough to let you get what you want in your own little space |
20:10:34 | FromDiscord | <Clyybber> disruptek @alehander42 maybe say something concrete once in a while :P |
20:10:54 | Zevv | c'mon, it's friday evening, let them |
20:10:54 | FromDiscord | <alehander42> we need a compilerdev repo rfc ๐ |
20:10:57 | FromDiscord | <haxscramper> > and reacrhcitect compilationโตJust a question from not-really-a-compiler-developer, how complicated would it be to separate compiler into set of libraries |
20:11:04 | FromDiscord | <alehander42> MAKE NIM PASCAL AGAIN ๐ |
20:11:06 | FromDiscord | <haxscramper> That can be used completely independently |
20:11:08 | FromDiscord | <Clyybber> rearchitect compilation by changing the lang is not an idea |
20:11:15 | FromDiscord | <haxscramper> Like parser + sempass + other things |
20:11:18 | FromDiscord | <Clyybber> concrete |
20:11:19 | FromDiscord | <alehander42> no clyybber |
20:11:32 | disruptek | i would design the compilation first and see how much of the lang i could fit into it. |
20:11:38 | FromDiscord | <alehander42> exactly ! |
20:11:43 | FromDiscord | <alehander42> that's what i wanted with my project |
20:11:46 | FromDiscord | <Clyybber> I said concrete |
20:11:54 | FromDiscord | <Clyybber> lol |
20:11:55 | FromDiscord | <alehander42> i wanted to start with proc/types/generics and basic macros |
20:12:04 | FromDiscord | <alehander42> and then you just see what else works and what not |
20:12:11 | FromDiscord | <alehander42> i had a plan for the compilation |
20:12:12 | Zevv | end you end up with an unusable crap language |
20:12:17 | FromDiscord | <Clyybber> yeah |
20:12:20 | FromDiscord | <alehander42> eh .. |
20:12:22 | Zevv | nim is what it is now for a reason |
20:12:25 | FromDiscord | <haxscramper> Error logging separate from everyhing else, wrap compiler core into something like cligen or embed it into some other program |
20:12:27 | FromDiscord | <Clyybber> not crap, but esoteric |
20:12:28 | FromDiscord | <haxscramper> Things like that |
20:12:29 | FromDiscord | <alehander42> not necesarrily |
20:12:33 | FromDiscord | <Clyybber> esoteric langs are exactly that |
20:12:37 | disruptek | well, i don't want this half-baked compile-time mode. i just want layers of compile->run->compile->run. |
20:12:38 | FromDiscord | <nikki> does what's going on with zig's compilation recently count toward an architecture y'all would be into? |
20:12:49 | Zevv | nim solves problems. the compiler is not the goal. |
20:12:51 | FromDiscord | <Clyybber> its not hard to make a neat language that can do everything |
20:12:52 | FromDiscord | <nikki> eg. you can patch part of the output binary to just recompile one func that changed |
20:12:55 | FromDiscord | <alehander42> yeah it can be done in a cleaner way |
20:13:01 | FromDiscord | <alehander42> but .. it can still be nim |
20:13:08 | FromDiscord | <alehander42> you don't need 100% of the stuf |
20:13:10 | FromDiscord | <alehander42> to be nim |
20:13:14 | FromDiscord | <Clyybber> all talk no concrete |
20:13:21 | FromDiscord | <alehander42> man |
20:13:24 | FromDiscord | <Clyybber> :p |
20:13:27 | FromDiscord | <alehander42> it's not smarter to put 1000 hours |
20:13:31 | FromDiscord | <alehander42> into something not thought out |
20:13:32 | FromDiscord | <alehander42> ๐ |
20:13:43 | FromDiscord | <Clyybber> how come you think nim is not thought out? |
20:13:44 | FromDiscord | <alehander42> so dont push us ๐ |
20:13:48 | FromDiscord | <alehander42> no i am talking about |
20:13:57 | FromDiscord | <alehander42> our "ideas" |
20:14:01 | FromDiscord | <Clyybber> oh :D |
20:14:02 | FromDiscord | <alehander42> nim is well thought out |
20:14:21 | Zevv | alehander42, what's wrong with your enter key, is it loose or trigger happy? |
20:14:25 | disruptek | yes. |
20:14:32 | FromDiscord | <alehander42> that's how i am dude |
20:14:41 | Zevv | "loose and trigger happy" |
20:14:44 | FromDiscord | <alehander42> my mind is enter happy |
20:14:49 | FromDiscord | <Clyybber> restarting or recreating something doesn't magically fix problems though |
20:14:52 | disruptek | it takes him three lines to sign his name. |
20:14:53 | FromDiscord | <nikki> it's a more direct brain-to-everyone-else connection |
20:15:10 | FromDiscord | <alehander42> exactly ๐ |
20:15:30 | FromDiscord | <alehander42> ok |
20:15:34 | disruptek | i can tell you what i don't like and i have some ideas on how to change it but i don't want to start another FUD fight. |
20:15:44 | FromDiscord | <Clyybber> no, say it |
20:15:45 | Zevv | anyway, what are we talking about actually? I'm doing my part, but I'm not sure about the subject |
20:15:48 | FromDiscord | <alehander42> sorry, i'll try to be more precise. I also have a plan, and a md somewhere |
20:15:48 | FromDiscord | <Clyybber> FUD is not saying it |
20:15:54 | FromDiscord | <djazz> ๐ฟ |
20:15:55 | FromDiscord | <alehander42> but i probably forgot it. |
20:16:09 | FromDiscord | <nikki> as long as it's constructive; seems useful disruptek |
20:16:17 | FromDiscord | <alehander42> just to be able to compile modules to some kinf of "cache files" is enough for me |
20:16:41 | FromDiscord | <nikki> also can you use the `asm " "` stuff for indirect goto rn... lolz |
20:16:44 | FromDiscord | <alehander42> this gives you something like basic IC, gives you paralel |
20:16:51 | FromDiscord | <alehander42> compilation |
20:17:01 | FromDiscord | <alehander42> and way to even distribute compilation files |
20:17:17 | FromDiscord | <nikki> another thing i've noticed is in langs -- the way people want things to be differs across library devs vs. application devs |
20:17:24 | supakeen | Will you look at this, babbies first parser actually does something :D |
20:17:29 | FromDiscord | <alehander42> but this might be a problem for compile time |
20:17:46 | FromDiscord | <nikki> which isn't a strong categorization; but still some authors tend to spend more attn on libraries for others to use; while others spend more attn using the lang + libs to make end-user-facing applications |
20:18:00 | FromDiscord | <alehander42> because know you have separate state for each "compilation set" ๐ |
20:18:07 | FromDiscord | <Clyybber> @alehander42 the current compiler can be parallelized too, it doesn't have to start anew IMO |
20:18:09 | FromDiscord | <alehander42> compile time state |
20:18:14 | FromDiscord | <alehander42> @Clyybber how ? |
20:18:19 | FromDiscord | <alehander42> i am talking about the same project |
20:18:25 | FromDiscord | <alehander42> a single big project |
20:18:32 | FromDiscord | <Clyybber> hmm? |
20:18:35 | FromDiscord | <Clyybber> I don't understand |
20:18:39 | FromDiscord | <alehander42> how would you parallelize it |
20:18:48 | FromDiscord | <Clyybber> how I would parallelize nim? |
20:18:58 | FromDiscord | <alehander42> a single compilation |
20:19:00 | FromDiscord | <alehander42> of nim |
20:19:04 | disruptek | almost any tree can be parallelized. |
20:19:08 | * | krux02 quit (Remote host closed the connection) |
20:19:20 | FromDiscord | <Clyybber> you look for independent parts and fork them |
20:19:21 | FromDiscord | <Clyybber> basically |
20:19:29 | FromDiscord | <alehander42> ok, but this is the same with IC |
20:19:33 | FromDiscord | <alehander42> it seems easy |
20:19:37 | FromDiscord | <alehander42> but it's not trivial .. |
20:19:38 | FromDiscord | <Clyybber> its not easy |
20:19:47 | FromDiscord | <alehander42> and it's easier if you are able |
20:19:53 | FromDiscord | <alehander42> to just compile a part of your project |
20:19:55 | disruptek | i may be naive but it does feel pretty easy so far. |
20:19:56 | FromDiscord | <alehander42> and just reuse it |
20:20:23 | FromDiscord | <Clyybber> no you are not naive |
20:21:01 | Zevv | you can call disruptek a lot of things, but naive is not one of those |
20:21:18 | disruptek | after ic i plan to cps up individual chunks and thread them out. |
20:21:34 | FromDiscord | <alehander42> but e.g. |
20:21:50 | FromDiscord | <alehander42> you can't really sccache artifacts |
20:21:54 | FromDiscord | <alehander42> between projects |
20:22:03 | FromDiscord | <alehander42> oh man! |
20:22:09 | disruptek | why is this so important to you? |
20:22:10 | FromDiscord | <alehander42> for example CI and rebuild |
20:22:17 | FromDiscord | <alehander42> how would you cache between builds |
20:22:20 | supakeen | Zevv: Is it possible to 'delay' a capture; for example I have a `>key * ('=' | ' ') * >value` but `key` is defined as `key <- ('-' * Alnum) | ("--" * +Alnum)` and I'd like my captures to be without `-/--`. |
20:22:22 | FromDiscord | <alehander42> without actual files with cache |
20:22:31 | disruptek | who said we wouldn't have files? |
20:22:33 | FromDiscord | <alehander42> because what i 've seen in the world |
20:22:39 | FromDiscord | <alehander42> is such cases |
20:22:55 | FromDiscord | <alehander42> ok, so we'd have files ๐ฎ |
20:22:55 | Zevv | supakeen: order matters |
20:22:59 | FromDiscord | <Clyybber> alehander92: You have so many assumptions about what nim can't or doesn't have :D |
20:23:13 | FromDiscord | <alehander42> i am not sure about the IC righ tnow |
20:23:18 | FromDiscord | <alehander42> and how exactly would it work |
20:23:28 | FromDiscord | <alehander42> i know that it can do stuff on theory |
20:23:31 | FromDiscord | <alehander42> but not of this works right now |
20:23:32 | disruptek | you can look at the code. i've explained it several times, but it's really quite simple. |
20:23:50 | FromDiscord | <alehander42> you're right, but so does it produce files |
20:24:05 | disruptek | it gets a top-level chunk of ast. it clones the module graph and compiles it. then it caches all the mutations to the graph. |
20:24:16 | Zevv | supakeen: pegs are happy when they find a match, and then abandon all other choices. So make sure your ordering reflects what you want to match |
20:24:17 | disruptek | if it gets a chunk and it has it cached, it merely applies the mutations. |
20:24:25 | disruptek | it's that simple. |
20:24:39 | supakeen | Si, will play with it some more. They're very nice! |
20:24:43 | FromDiscord | <alehander42> ok, so how can we parallelize it |
20:24:51 | FromDiscord | <Clyybber> trivial |
20:25:01 | FromDiscord | <alehander42> on the first build? |
20:25:07 | FromDiscord | <Clyybber> yes? |
20:25:13 | Zevv | supakeen: oh wait, I didn't understand your question I guess. You want to capture the keys without the leading dashes, right? |
20:25:15 | FromDiscord | <alehander42> i dont think its trivial |
20:25:18 | FromDiscord | <djazz> what would nim code look like without nil? |
20:25:22 | FromDiscord | <alehander42> to make the current compiler parallel |
20:25:29 | FromDiscord | <Clyybber> why not? |
20:25:31 | FromDiscord | <alehander42> like, share all this confg and graph changes |
20:25:35 | FromDiscord | <alehander42> in 8 threads |
20:25:38 | supakeen | Zevv: Correct so I was thinking if I can maybe define a capture in the key group. |
20:25:40 | FromDiscord | <Clyybber> so lock it? |
20:25:47 | FromDiscord | <alehander42> yes but this is not trivial ๐ |
20:25:48 | FromDiscord | <Clyybber> the config |
20:25:50 | FromDiscord | <Clyybber> it is |
20:25:54 | FromDiscord | <alehander42> it requires a lot of changes to the compiler |
20:25:58 | FromDiscord | <alehander42> and assumptions |
20:26:00 | FromDiscord | <Clyybber> the compiler isn't that big |
20:26:05 | disruptek | i guess less changes than you think. |
20:26:09 | FromDiscord | <alehander42> eh this is not trivial |
20:26:10 | FromDiscord | <alehander42> maybe not hard |
20:26:17 | disruptek | if the input is immutable, then it's pretty straightforward. |
20:26:20 | FromDiscord | <alehander42> but requires a lot of stuff |
20:26:26 | disruptek | instead of compiling one chunk, you compile 8 chunks. |
20:26:27 | FromDiscord | <Clyybber> oh sure, and it gets trivial if you write the compiler anew :D |
20:26:31 | FromDiscord | <alehander42> trivial means super easy |
20:26:40 | * | luismanfroni quit (Quit: Leaving) |
20:26:44 | Zevv | supakeen: so, you can use explicit '>' capturing, or split up your grammar in smaller pieces. I like to do the latter, it usually makes it more readable. Let me whip up an example |
20:26:49 | disruptek | you just can't fuck around with order, but there is a lot of independent code. |
20:26:51 | FromDiscord | <alehander42> but |
20:26:59 | FromDiscord | <alehander42> ok then if i compile A |
20:27:00 | FromDiscord | <alehander42> once |
20:27:06 | FromDiscord | <alehander42> can i make sure i dont need to recompile it |
20:27:10 | supakeen | I think I'll do the latter, I have to solve quoting still. |
20:27:13 | FromDiscord | <alehander42> nim can always load it from a file, right? |
20:27:17 | supakeen | But I have my initial blurp working! |
20:27:18 | disruptek | if you can't, then ic won't work anyway, right? |
20:27:39 | supakeen | Zevv: https://bpa.st/raw/UWQQ might give some idea of what I'm trying to do. |
20:27:43 | FromDiscord | <alehander42> and if I just pass the same cache files to nim |
20:27:49 | FromDiscord | <alehander42> on another compatible env |
20:27:58 | FromDiscord | <alehander42> it should just work? |
20:28:02 | disruptek | why not? |
20:28:06 | supakeen | Also these railroad diagrams are pure love. |
20:28:07 | FromDiscord | <alehander42> cool |
20:28:15 | FromDiscord | <alehander42> @haxscramper yeah on theory |
20:28:20 | FromDiscord | <alehander42> making it more modular might make sense |
20:28:48 | disruptek | it smells like someone needs to brush their teeth. |
20:28:54 | FromDiscord | <haxscramper> I don't have enough brainpower to discuss any complicated implementation details, but compile error reporting is just killing me |
20:29:22 | FromDiscord | <alehander42> you do have, pattern matching is just simialr to compilation |
20:29:31 | FromDiscord | <alehander42> disruptek well |
20:29:34 | FromDiscord | <alehander42> indeed man |
20:29:36 | disruptek | afaik, no one has made a proper effort to speed up the compiler in a long time. |
20:29:39 | FromDiscord | <alehander42> thanks for reminding me |
20:29:51 | FromDiscord | <alehander42> why speed up when you can run it on 8 cores |
20:29:51 | Zevv | supakeen: something like this (not tested): https://play.nim-lang.org/#ix=2BLH |
20:29:57 | disruptek | i don't even think it has been properly profiled in, like, maybe a couple years. |
20:30:00 | FromDiscord | <alehander42> kidding |
20:30:21 | supakeen | Zevv: Thanks bud, I'll take a look at that and solving quoting :) |
20:30:51 | Zevv | good. quoting is not that hard, but you can steal it from the examples |
20:31:02 | supakeen | Ah I see what you mean with the shorter definitions yea that's a good plan. |
20:31:16 | FromDiscord | <Clyybber> disruptek whats about your layers? |
20:31:26 | disruptek | what about them? |
20:31:28 | disruptek | they are slow. |
20:31:40 | FromDiscord | <Clyybber> what did you want to say |
20:31:50 | FromDiscord | <Clyybber> you said compiler->run->compiler->run |
20:31:52 | disruptek | i want to thank my parents and the academy. |
20:31:59 | FromDiscord | <Clyybber> not something I can parse |
20:32:02 | Zevv | supakeen: https://github.com/zevv/npeg/blob/master/tests/examples.nim#L94 shows the quoting for json. It's overkill with the unicode escapes etc, but it shows the idea |
20:32:24 | disruptek | well, the new ir opens up a lot of opportunity to exploit speed. |
20:32:56 | FromDiscord | <Clyybber> well earlier you and alehander both said you had ideas that would require changing the language |
20:33:12 | FromDiscord | <Clyybber> I don't see them |
20:33:22 | Zevv | talk talk. I'm off to bed. Nightynight ppl |
20:33:28 | disruptek | g'nite zevv. |
20:33:29 | supakeen | Zevv: Is there any example where the quoting is optional, I'm currently only quoting when there's unsafe in there: https://github.com/supakeen/clip/blob/master/src/clip.nim#L10 |
20:33:30 | FromDiscord | <Clyybber> Zevv: nighty |
20:33:37 | supakeen | nn |
20:33:39 | supakeen | I'll figure it out! |
20:33:43 | disruptek | no, i said i would change the compiler and then see what has to be removed from the language. |
20:34:02 | FromDiscord | <Clyybber> what makes you think anything has to be removed? |
20:34:14 | FromDiscord | <Clyybber> if you would develop that way jsonutils would be long nuked :D |
20:34:24 | Zevv | supakeen: sure. If your string starts with a ", you quote and escape and all that. If it doesn't, you eat up to the white space |
20:34:29 | disruptek | the sooner it's nuked, the better. |
20:34:52 | supakeen | + |
20:35:02 | FromDiscord | <Clyybber> the chad dev; doesn't care about tests; nukes them; fuck the spec I change it |
20:35:25 | FromDiscord | <Clyybber> vs the virgin dev; boring; adheres to spec; suffers from red CIs |
20:35:30 | disruptek | i would rather not have macros1->macros2->ast1->ast2->backend. |
20:35:34 | FromDiscord | <Clyybber> waits until tests pass |
20:35:51 | FromDiscord | <Clyybber> disruptek: What instead? |
20:36:03 | disruptek | ast1->ast2->backend |
20:36:09 | FromDiscord | <Clyybber> no macros |
20:36:12 | FromDiscord | <Clyybber> lol? |
20:36:12 | disruptek | no. |
20:36:14 | * | tribly quit (Ping timeout: 258 seconds) |
20:36:47 | disruptek | i told you it'd be unpopular. |
20:36:52 | * | ForumUpdaterBot quit (Read error: Connection reset by peer) |
20:37:06 | FromDiscord | <Clyybber> well, it amounts to saying "I can write a toy language and it will be simple" |
20:37:07 | * | ^Q-Master^ quit (Read error: Connection reset by peer) |
20:37:12 | FromDiscord | <Clyybber> which is ture |
20:37:14 | * | Q-Master joined #nim |
20:50:40 | * | NimBot joined #nim |
20:50:48 | FromDiscord | <nikki> js is actually ok if you want to use the web stuff for ui |
20:51:20 | FromDiscord | <nikki> lots of fun things to try in nim |
20:51:40 | * | letto quit (Max SendQ exceeded) |
20:51:47 | * | theelous3 joined #nim |
20:52:16 | * | letto joined #nim |
20:53:43 | FromDiscord | <alehander42> yes |
20:53:46 | FromDiscord | <alehander42> i used a lot of it |
20:53:58 | FromDiscord | <alehander42> maybe ~3 years working with the javascript backend |
20:54:13 | FromDiscord | <alehander42> that's why i dont agree with @disruptek ๐ฆ |
20:54:22 | FromDiscord | <alehander42> treeform also does a lot with it |
20:54:22 | FromDiscord | <alehander42> iirc |
20:56:45 | FromDiscord | <djazz> im a web dev but i've never used the js backend heh |
21:01:25 | disruptek | you don't have to agree with me as long as you admit you're wrong. |
21:03:01 | FromDiscord | <ElegantBeef> I mean the nimVM is easy to interop with natively now, so i dont like the JS vm abuse |
21:03:27 | FromDiscord | <nikki> does the nimvm run natively in people's web browsers? |
21:03:34 | FromDiscord | <ElegantBeef> No cause that's dumb |
21:03:51 | FromDiscord | <nikki> maybe that's why everyone's using it |
21:04:11 | FromDiscord | <ElegantBeef> > i feel like a good way to vm nim is to compile to js then run in a js vm lolโตIs what i'm responding to |
21:04:41 | FromDiscord | <nikki> yeah i explained later that on ios, it's the only way to get jit, if you want that |
21:04:54 | FromDiscord | <nikki> if you don't then you can use the nimvm, sure |
21:05:05 | FromDiscord | <ElegantBeef> I'm very much in the party of "eh, you dont need speed if you're using the nimVM" |
21:05:16 | * | krux02 joined #nim |
21:05:30 | FromDiscord | <nikki> right, so if you need speed then you're not using the nimvm |
21:05:42 | FromDiscord | <ElegantBeef> Exactly, just call native code from the VM |
21:05:42 | FromDiscord | <nikki> so far in my benchmarks, for non-jit perf luajit's vm has actually done the best |
21:05:44 | FromDiscord | <ElegantBeef> It's super easy |
21:05:57 | FromDiscord | <ElegantBeef> It's so easy i've wrapped it to make it painless ๐ |
21:06:48 | FromDiscord | <nikki> it's mostly for if you want to test your changes to the app quickly or if you want to let user-developed mods for a game etc. |
21:06:57 | FromDiscord | <nikki> (speaking about my use cases) |
21:06:58 | FromDiscord | <ElegantBeef> Yea so use nimscripter ๐ |
21:07:14 | FromDiscord | <ElegantBeef> JIT isnt needed for that stuff since the heavy operations are done inside native code |
21:08:25 | FromDiscord | <nikki> yeah i think it's a sensible approach for sure |
21:09:13 | FromDiscord | <nikki> a big q is also about the use of it for ui though; and it's nice to get the dom through eg. karax in js |
21:09:22 | FromDiscord | <nikki> but yeah that's a different thing than the pure nim mod aspect |
21:10:27 | FromDiscord | <ElegantBeef> You can also support plugin based mods, if you want to have support mods that can do native code, but it's obviously not cross platform if the mod creator doesnt release for all platforms |
21:10:41 | FromDiscord | <nikki> yeah it also doesn't quite work on ios cuz you can't just download a '.so' and run it in the app ๐ |
21:10:48 | FromDiscord | <nikki> it's a bit sandboxed |
21:10:51 | FromDiscord | <ElegantBeef> Yea but i mean who the fuck is going to mod ios games |
21:10:58 | FromDiscord | <ElegantBeef> It's a very very niche environment |
21:11:12 | FromDiscord | <nikki> it's niche because no one does it now |
21:11:15 | FromDiscord | <nikki> not because it's a bad idea |
21:11:22 | FromDiscord | <ElegantBeef> No it's it's niche cause they're ios games |
21:11:32 | FromDiscord | <ElegantBeef> Mobile games almost all suck and it's not due to lacking mod support |
21:12:02 | FromDiscord | <nikki> i think having a creative interactive environment for mobile could help people make stuff |
21:12:02 | FromDiscord | <ElegantBeef> It's due to shitty stores which cater to microtransactions and unfun games that generate revenue |
21:12:17 | FromDiscord | <nikki> and discover that they like making that stuff |
21:12:47 | FromDiscord | <ElegantBeef> If that's the point just use the NimVM directly, since learning means performance isnt too critical ๐ |
21:13:02 | FromDiscord | <nikki> it depends. it's pretty easy to make a for loop, then crank up the loop limit to 1000000 |
21:13:12 | FromDiscord | <nikki> like add some physics particles. then make it be 100000 particles. it's not hard |
21:13:28 | FromDiscord | <nikki> for ctx https://www.twitch.tv/videos/779422009 is the thing i'd been working on for a while -- it's a ui-based mobile creation tool for games etc. |
21:13:31 | FromDiscord | <ElegantBeef> I'd imagine for the most part you're controlling objects that are native |
21:13:40 | FromDiscord | <nikki> yeah def. the physics engine is box2d which is native. |
21:14:06 | FromDiscord | <nikki> u can kinda skip around the vid and get the idea: is a visual editor + logic editor + art editor |
21:14:27 | FromDiscord | <ElegantBeef> I assume you've seen the scripting stuff i've been working on, even for UI you could use it, i've tested it with fidget ๐ |
21:14:39 | FromDiscord | <nikki> yeah i've seen that ๐ |
21:14:41 | FromDiscord | <ElegantBeef> There are some issues with fidget due to it's heavy usage of templates |
21:15:01 | FromDiscord | <nikki> re: scripting auto binds i once did that for C with luajit by using this weird macro trick |
21:15:04 | FromDiscord | <nikki> https://github.com/nikki93/cgame/blob/master/src/sprite.h eg. in this file |
21:15:25 | FromDiscord | <nikki> the `SCRIPT` macro basically stringifies its argument, which luajit can parse to generate FFI to lol |
21:15:44 | FromDiscord | <nikki> no marshaling overhead on that one bc. luajit's ffi system actually understands C layouts |
21:16:28 | FromDiscord | <nikki> right now the thing in that twitch stream is mostly lua+love2d-based for the engine itself, and the app ui etc. is react native lol |
21:16:39 | FromDiscord | <nikki> plus c++ stuff here and there |
21:17:12 | FromDiscord | <ElegantBeef> The marshalling is a slight issue, but hey nimscript has templates/macros, and can always be plopped inside the code for performance |
21:17:39 | FromDiscord | <nikki> yeah also i think marshaling isn't a user-facing / api-breaking thing to optimize later. like you can make them just use shared mem or w/e later and stuff still works the same way |
21:18:03 | FromDiscord | <nikki> do nimvm types have the same in-mem layout as their C versions? maybe not... |
21:18:17 | FromDiscord | <ElegantBeef> As i understand it, no |
21:19:53 | FromDiscord | <nikki> i also wanna try impl'ing a VM in nim some time ๐ค https://godbolt.org/z/G1nonq was p fun. would be interesting to see how that nan-tagging / indirect goto stuff would work in nim |
21:20:52 | FromDiscord | <nikki> it got a huge speedup by making the stack a local that i close over, vs. a member of the c++ class ยฏ\_(ใ)_/ยฏ |
21:21:51 | FromDiscord | <nikki> this bit https://media.discordapp.net/attachments/371759389889003532/769309638172213269/unknown.png |
21:22:03 | FromDiscord | <ElegantBeef> No, dont make me attempt to read that |
21:22:21 | FromDiscord | <nikki> it's probably quicker to write it xD |
21:22:47 | FromDiscord | <ElegantBeef> Well considering the amount of time i've spent in C/C++ is like < 10 hours, no |
21:24:32 | * | xet7 joined #nim |
21:27:24 | FromDiscord | <nikki> it's basically an array on the stack, and then the rest of it is lambdas that close over that. and that's what i'm using for the vm's stack there |
21:50:04 | * | solitudesf quit (Ping timeout: 272 seconds) |
21:55:36 | * | Vladar quit (Quit: Leaving) |
22:17:27 | * | rockcavera quit (Remote host closed the connection) |
22:25:11 | FromDiscord | <19> void Memory;โตuint8 Row = (uint8)Memory;โตwhat is the equivalent of this in nim? |
22:27:06 | FromDiscord | <Recruit_main707> `var Memory: pointer`โต`var Row: ptr uint8 = cast[ptr uint8](Memory)` |
22:27:38 | FromDiscord | <19> thatโs what i wrote but the debugger says Row is null |
22:28:03 | FromDiscord | <19> weird |
22:28:18 | FromDiscord | <19> thanks anyway @Recruit_main707 |
22:31:56 | FromDiscord | <Rebel> Are there any nimble packages that implement AES encryption with support for padding? At least PKCS7. Very surprised that nimAES and nimcrypto don't โตas that is a very basic component of any block-based crypto system... |
22:34:49 | FromDiscord | <Recruit_main707> Row is null because Memory is null |
22:35:01 | FromDiscord | <Recruit_main707> you are missing something else |
22:44:32 | * | a_chou joined #nim |
22:46:07 | FromDiscord | <neow> wait, is there a nimdep cli? |
22:46:16 | FromDiscord | <neow> I remember generating the png of dependencies |
22:46:48 | FromDiscord | <neow> I don't remember how I did it though ๐ค |
22:47:17 | * | oprypin_ is now known as oprypin |
22:49:25 | * | a_chou quit (Client Quit) |
22:49:59 | * | tane quit (Quit: Leaving) |
22:56:04 | * | mbomba joined #nim |
23:12:01 | FromDiscord | <19> Memory is not null https://media.discordapp.net/attachments/371759389889003532/769337360621240350/unknown.png |
23:16:30 | FromDiscord | <Clyybber> set Row again, it surely is null right after `var Memory: pointer` |
23:17:44 | FromDiscord | <Gyllou> heya |
23:18:46 | FromDiscord | <19> @Clyybber i dont understand. |
23:19:44 | FromDiscord | <19> virtual alloc returns a void, then i can just cast it no? |
23:22:27 | FromDiscord | <19> bitmapMemory = VirtualAlloc( nil, cast[SIZE_T](bitmapMemorySize), MEM_COMMIT, PAGE_READWRITE )โตvar row:ptr uint8 = cast[ptr uint8](bitmapMemory) |
23:23:21 | FromDiscord | <Clyybber> sup |
23:23:25 | FromDiscord | <Clyybber> @19 yeah |
23:23:32 | * | arecacea1 quit (Read error: Connection reset by peer) |
23:23:57 | * | arecacea1 joined #nim |
23:29:57 | * | TomDotTom quit (Quit: Leaving) |
23:32:13 | * | manjaroi3 joined #nim |
23:32:52 | * | manjaroi3 quit (Client Quit) |
23:34:05 | * | TomDotTom joined #nim |
23:39:23 | * | xet7 quit (Quit: Leaving) |
23:48:56 | * | arecacea1 quit (Remote host closed the connection) |
23:50:21 | * | arecacea1 joined #nim |