00:02:17 | * | king3vbo left #nim ("Leaving") |
00:05:59 | * | jakob0094 quit (Remote host closed the connection) |
00:12:34 | * | seni quit (Quit: Leaving) |
00:25:12 | * | NimBot joined #nim |
01:06:13 | * | theelous3_ quit (Ping timeout: 246 seconds) |
01:10:28 | * | lritter quit (Ping timeout: 245 seconds) |
01:11:12 | * | lritter joined #nim |
01:22:19 | * | dddddd quit (Remote host closed the connection) |
01:26:24 | * | shpx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
01:50:06 | * | zachk quit (Quit: Leaving) |
02:29:53 | * | deech joined #nim |
02:30:10 | * | abm quit (Ping timeout: 268 seconds) |
02:31:10 | deech | Is there a way to see the results of a compile time evaluation in the code? Sort of like macroexpansion ... |
02:32:20 | * | shpx joined #nim |
02:43:57 | FromGitter | <zetashift> @Vindaar you still there by any chance? |
02:48:43 | FromGitter | <m4d3bug> any idea about how to send a csv with the tab page? |
02:48:50 | FromGitter | <m4d3bug> in Nim |
02:49:56 | FromGitter | <m4d3bug> I want to send a string to write in the csv with the tab page. |
02:51:29 | FromGitter | <zetashift> nvm I looked at narimiran solution and scanf will help parse the input instead of going through regexp fun |
02:55:23 | * | masquino joined #nim |
02:56:15 | masquino | hello everyone! quick question.. does nim have the concept of static methods on a type? like type Something = object of RootObj ... Something.doStuff |
02:59:31 | FromGitter | <zetashift> @masquino aren't static methods methods that can be used without instantiating a class? Are you looking for something like this: https://nim-lang.org/docs/tut2.html#object-oriented-programming-method-call-syntax |
02:59:45 | masquino | oh.. doStuff(t: typedesc) shuld do it right? |
03:00:35 | FromGitter | <zetashift> yeah replace `typedesc` with the the type of the object and you're set |
03:02:06 | masquino | wait, but the link shows the syntax for instance methods |
03:02:54 | masquino | I mean, I don't care about passing the receiver as an argument or as the receiver.. but I can the first argument to be a type, not an instance of a type |
03:03:22 | masquino | I kinda achieved that with typedesc, but I'm not sure if thats the way to go about this |
03:07:43 | * | banc quit (Quit: ZNC - http://znc.in) |
03:09:35 | FromGitter | <zetashift> You could just do `proc doStuff(x: Foo) =` and call it the procedure like `doStuff(x: Foo)` no? |
03:14:56 | masquino | mm can I? I'm either not getting something or not being clear about what I need.. doStuff in that case takes an instance of Foo as an argument |
03:16:05 | masquino | I don't want an instance of Foo, or T, or an instance of anything.. I just want the argument to be a type as a type itself, not an instance of a type |
03:16:28 | masquino | I dont want Foo().doStuff .. just Foo.doStuff (no parens, no instantiation) |
03:18:22 | * | deech quit (Ping timeout: 250 seconds) |
03:22:43 | * | lritter quit (Ping timeout: 246 seconds) |
03:23:32 | * | banc joined #nim |
03:26:27 | shashlick | deech: check out https://nim-lang.org/docs/system.html#repr%2CT |
03:26:30 | FromGitter | <zetashift> ah yeah I get what you mean, I don't know how this works in Nim since I haven't encountered it yet |
03:40:54 | * | masquino quit (Ping timeout: 250 seconds) |
04:27:10 | * | ftsf joined #nim |
04:36:08 | * | narimiran joined #nim |
04:44:27 | * | endragor joined #nim |
04:44:52 | * | nsf joined #nim |
04:47:24 | * | endragor_ joined #nim |
04:49:32 | * | endragor quit (Ping timeout: 268 seconds) |
04:57:30 | FromGitter | <Vindaar> @zetashift sorry, was asleep :) |
04:57:37 | narimiran | good morning :) |
04:57:45 | FromGitter | <Vindaar> morning! :) |
05:42:05 | * | xet7 joined #nim |
06:06:35 | FromDiscord_ | <technicallyagd> @citycide Thank you! and yeah... `[let a, b] <- someSeq` causes syntax error. |
06:07:56 | FromDiscord_ | <technicallyagd> @deech do you mean [expandMacros](https://nim-lang.org/docs/macros.html#expandMacros.m%2Ctyped)? |
06:08:29 | FromDiscord_ | <technicallyagd> @deech do you mean expandMacros?. https://nim-lang.org/docs/macros.html#expandMacros.m%2Ctyped |
06:08:42 | FromDiscord_ | <technicallyagd> @deech do you mean expandMacros? https://nim-lang.org/docs/macros.html#expandMacros.m%2Ctyped |
06:10:02 | FromDiscord_ | <technicallyagd> It's pretty awesome, you just need `nim check file.nim` to see the result of the expansion |
06:23:32 | * | cyraxjoe quit (Read error: Connection reset by peer) |
06:24:03 | * | shpx quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
06:24:40 | * | cyraxjoe joined #nim |
07:06:09 | * | narimiran quit (Remote host closed the connection) |
07:06:25 | * | krux02 joined #nim |
07:10:27 | * | Jesin quit (Ping timeout: 246 seconds) |
07:28:44 | FromGitter | <alehander42> @citycide , hey, so basically you can use let inside your if conditions : this is very important for gara because of unification and guards |
07:28:58 | FromGitter | <alehander42> I am not sure if you can do it directly in your code tho |
07:29:31 | FromGitter | <alehander42> the point is that e.g. for `@[@x, @x]` you need to generate |
07:30:11 | FromGitter | <alehander42> `a.len == 2 and (let x = a[0]; true) and x == a[1]:` |
07:30:19 | FromGitter | <alehander42> or something like that, not totally sure |
07:31:43 | FromGitter | <alehander42> about the rust thing: not quite sure why their `match` as expr can return: our lib can be reworked to do this, but it would be not too pleasant, and it does clash with the behavior of `if` `case` as expression |
07:32:47 | Nandraj | Does anybody developed android app with nimx or any other nim package? |
07:51:38 | Araq | Nandraj, yglukhov[m] did |
07:52:17 | Nandraj | Is it on playstore? |
08:01:52 | Araq | it used to be, I don't know the current state of the project |
08:03:10 | livcd | kinda sad that that's the only example there is |
08:05:45 | Nandraj | Ok |
08:05:57 | * | stefanos82 joined #nim |
08:06:46 | FromGitter | <m4d3bug> any idea to write down a csv with one more sheet? |
08:12:42 | Tanger | m4d3bug: Try this - https://github.com/khchen/winim |
08:14:15 | Tanger | A sheet is specific to excel-ish processors, a csv is just delimiter separated file of values, so overhead, no byte reading or anything |
08:18:21 | * | anamok joined #nim |
08:18:23 | anamok | hello |
08:18:47 | anamok | How can I remove the last element of a seq? In Python it's `list.pop()` . |
08:21:01 | FromGitter | <narimiran> anamok: sequtils.pop |
08:21:50 | FromGitter | <narimiran> nope, not in sequtils, just `yourList.pop()`, don't forget to `discard` if you don't need the value popped |
08:22:23 | FromGitter | <narimiran> (i think i know why you need it :)) |
08:22:46 | anamok | Sorry, my bad. I tried it with an array, forgot the `@` sign. Thanks! |
08:23:01 | anamok | narimiran[m], ehh :) |
08:23:19 | anamok | I'm improving my working solution. |
08:27:44 | * | ftsf quit (Read error: Connection reset by peer) |
08:29:19 | FromDiscord_ | <technicallyagd> I failed so spectacularly for that task today lol |
08:30:38 | anamok | geez, it became ultra fast |
08:34:30 | FromDiscord_ | <technicallyagd> wow, you are right. |
08:36:06 | FromDiscord_ | <technicallyagd> so does `str = str[0..^2]` copies the entire string? |
08:36:58 | anamok | technicallyagd: I tried that too and it was slower than calling `replace()` |
08:37:31 | FromDiscord_ | <technicallyagd> That was my solution in the first attempt |
08:37:38 | FromDiscord_ | <technicallyagd> before seeing your message just now |
08:38:00 | FromDiscord_ | <technicallyagd> I would not finish if I don't turn on `-d:release` |
08:38:03 | * | Ven`` joined #nim |
08:38:12 | anamok | technicallyagd: actually what I tried was `text[i .. j] = ""`, and it was slower than replacing that part to an empty string |
08:40:10 | anamok | bye |
08:40:12 | FromDiscord_ | <technicallyagd> @anamok wait, so you just work with the input inplace? |
08:40:18 | FromDiscord_ | <technicallyagd> oh ok bye |
08:40:25 | anamok | still here |
08:40:57 | anamok | Yes, if a string is declared with `var`, it can be modified unlike in Python. |
08:41:28 | anamok | but since this string is big, changing in place was slow |
08:41:42 | * | Jesin joined #nim |
08:41:43 | FromDiscord_ | <technicallyagd> yeah, |
08:42:08 | FromDiscord_ | <technicallyagd> I guess the correct way is to use pop then |
08:42:25 | FromDiscord_ | <technicallyagd> I also tried to just keep count |
08:42:41 | anamok | Choosing the right data structure is crucial, I saw it today :) |
08:43:00 | FromDiscord_ | <technicallyagd> since all you need for both tasks are the character count |
08:43:08 | FromDiscord_ | <technicallyagd> indeed. |
08:43:43 | anamok | but you need the character count only at the end, when the text was processed |
08:44:29 | anamok | I need to go now. Bye. |
08:44:34 | FromDiscord_ | <technicallyagd> bye |
08:44:36 | * | anamok quit (Remote host closed the connection) |
09:02:13 | * | rockcavera quit (Ping timeout: 246 seconds) |
09:02:48 | * | rockcavera joined #nim |
09:06:18 | * | floppydh joined #nim |
09:06:39 | * | stefanos82 quit (Remote host closed the connection) |
09:41:14 | * | dom96_w joined #nim |
09:43:37 | * | kapil____ quit (Quit: Connection closed for inactivity) |
09:45:16 | * | ftsf joined #nim |
09:57:50 | Araq | hi yglukhov[m], your LL is inconsistent with nkFuncDef vs nkProcDef |
09:58:24 | * | PMunch joined #nim |
09:58:38 | FromGitter | <yglukhov> Araq: not sure what you mean. LL is yours, not mine :) |
09:58:52 | Araq | hmmm |
09:59:05 | Araq | you rewrote it, no? |
09:59:56 | FromGitter | <yglukhov> i wouldn't say so. maybe only patched slightly... |
10:00:12 | Araq | well I don't know the correct variant |
10:00:19 | Araq | either 'func' is wrong or 'proc' |
10:00:40 | FromGitter | <yglukhov> Can you elaborate on the problem? I still don't follow. |
10:01:17 | Araq | https://github.com/nim-lang/Nim/blob/devel/compiler/lambdalifting.nim#L461 |
10:01:33 | Araq | for 'nkProcDef' it takes the 'discard' variant |
10:01:40 | Araq | which I think is the correct one |
10:02:08 | Araq | and likely nkIteratorDef should go to there too |
10:02:24 | * | dom96_w quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:02:30 | FromGitter | <yglukhov> hm. feels wrong indeed. |
10:03:30 | * | dom96_w joined #nim |
10:06:12 | Araq | well nkFuncDef is just nkProcDef + .noSideEffect so it's objectively wrong |
10:10:25 | FromGitter | <yglukhov> Araq: maybe it's just a typo. nkFuncDef is there since you first introduced it: https://github.com/nim-lang/Nim/commit/1a61c4d46d |
10:11:31 | FromGitter | <yglukhov> but nkIteratorDef is interesting... |
10:13:32 | * | Vladar joined #nim |
10:26:20 | Araq | well that's an anon iterator |
10:26:43 | Araq | changing it doesn't seem to break anything |
10:27:52 | * | stefanos82 joined #nim |
10:34:10 | * | Ven`` quit (Ping timeout: 268 seconds) |
10:41:38 | * | Ven`` joined #nim |
10:46:00 | * | dddddd joined #nim |
10:48:10 | * | Ven`` quit (Ping timeout: 250 seconds) |
10:57:04 | * | Ven`` joined #nim |
10:57:46 | * | PMunch quit (Remote host closed the connection) |
10:58:05 | * | PMunch joined #nim |
10:59:44 | * | abm joined #nim |
11:25:54 | * | kapil____ joined #nim |
11:53:23 | * | banc quit (Read error: Connection reset by peer) |
11:56:04 | * | dom96_w quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:01:26 | * | banc joined #nim |
12:03:56 | * | vlad1777d joined #nim |
12:25:30 | * | stefanos82 quit (Ping timeout: 252 seconds) |
12:26:54 | * | stefanos82 joined #nim |
12:27:36 | * | rockcavera quit (Read error: Connection reset by peer) |
12:35:00 | * | Ven`` quit (Read error: Connection reset by peer) |
12:42:46 | * | platoff joined #nim |
12:47:24 | * | jakob0094 joined #nim |
12:49:21 | * | Ven`` joined #nim |
12:57:22 | * | dom96_w joined #nim |
13:06:18 | PMunch | Hmm, interesting. Trying to do "window.onLoad = proc(event: Event) {.exportc.} = <body>" and compiling for the js target causes Nim to create JS code with a syntax error |
13:09:37 | * | banc quit (Read error: Connection reset by peer) |
13:10:18 | * | krux02 quit (Ping timeout: 250 seconds) |
13:17:52 | * | banc joined #nim |
13:24:21 | FromGitter | <alehander42> what would exportc do here o.O |
13:24:37 | PMunch | Create a JS valid name for it |
13:25:13 | FromGitter | <alehander42> the only think I know about exportc |
13:25:21 | FromGitter | <alehander42> is that it exports the nim name by default |
13:25:25 | FromGitter | <alehander42> but this proc is anon |
13:25:46 | FromGitter | <alehander42> are you saying, this should be a compile time error? |
13:28:54 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:31:21 | * | rockcavera joined #nim |
13:43:34 | * | masquino joined #nim |
13:54:21 | * | Ven`` joined #nim |
14:06:07 | FromGitter | <alehander42> is there a valid usecases where somebody would want to do ⏎ `a = a[0 .. ^2]` ? |
14:07:50 | FromGitter | <Varriount> @alehander42 Shortening a string? |
14:07:56 | FromGitter | <mratsim> that or a[0 ..^ 2] |
14:08:35 | FromGitter | <alehander42> yes, but my point is |
14:08:53 | FromGitter | <alehander42> compared to `.setLen(a.len - 1)` (or a better way to pop) |
14:09:28 | FromGitter | <alehander42> b = a[0 .. ^2] makes sense: you might want to be sure that b doesnt get changed by a's changes, so it's a copy |
14:09:34 | FromGitter | <mratsim> you don’t pop in tensors |
14:09:53 | FromGitter | <alehander42> i am talking about strings/seqs |
14:10:18 | FromGitter | <mratsim> ideally if I need that, I’d like an openarray |
14:10:33 | FromGitter | <alehander42> I still don't see what does this have to do with seq/string :D |
14:10:41 | FromGitter | <mratsim> when a slice a seq |
14:10:48 | FromGitter | <mratsim> I usually want an openarray |
14:11:08 | FromGitter | <alehander42> but people very often do need a seq |
14:12:06 | * | endragor_ quit (Remote host closed the connection) |
14:13:00 | FromGitter | <alehander42> ah this is the issue i was trying to find https://github.com/nim-lang/Nim/issues/5753 |
14:16:32 | FromGitter | <alehander42> anyway, I was just wondering if `a = a[slice]` to be cgenned as a pointer/len change instead of a copy would be a safe optimization |
14:16:44 | FromGitter | <alehander42> but views would be more general indeed |
14:20:00 | FromGitter | <mratsim> views, slices, spans, ranges … :P there are like 3 related RFCs |
14:22:16 | FromGitter | <alehander42> yeah haha |
14:24:12 | FromGitter | <mratsim> I think the latest discussion which linked to all the other is this one: https://github.com/nim-lang/Nim/issues/7337#issuecomment-373453594, it’s a bit hard to follow because there is the string vs seq[byte] interleaved. |
14:25:54 | * | endragor joined #nim |
14:30:28 | * | endragor quit (Ping timeout: 250 seconds) |
14:57:29 | * | ng0 joined #nim |
15:01:42 | * | shpx joined #nim |
15:04:40 | FromGitter | <citycide> @alehander42 right on. `repr` does not include the parentheses around the `let` condition which is what makes it look invalid |
15:08:32 | FromGitter | <citycide> regardless I still need to figure out why bounds checking works for seqs but not arrays. seems like they both generate the same conditions |
15:09:07 | FromGitter | <alehander42> can you give me an example of a pattern that should work? |
15:24:12 | FromGitter | <citycide> @alehander42 something like this: https://ptpb.pw/Mrb-/nim |
15:24:30 | FromGitter | <citycide> but I only have local changes for array support right now |
15:25:02 | FromGitter | <citycide> by extracting the logic for seqs. but the bounds checking doesn't work so the first condition causes an out of range error to be raised |
15:30:26 | * | nsf quit (Quit: WeeChat 2.3) |
15:30:32 | FromGitter | <alehander42> well, it's basically ⏎ ⏎ ```let minTest = quote do: `input`.len >= `min` ⏎ test = quote do: `minTest` and `t```` [https://gitter.im/nim-lang/Nim?at=5c07ef178336e22a7de6446d] |
15:31:07 | FromGitter | <alehander42> I think this should be exactly the same as in the other case |
15:31:48 | FromGitter | <alehander42> min is `+= 1 or += elementMin` |
15:32:10 | FromGitter | <alehander42> in the loop through subpatterns |
15:33:13 | FromGitter | <alehander42> elementMin is for `*` |
15:36:35 | * | ghost64 quit (Quit: See you!) |
15:38:39 | * | ftsf quit (Ping timeout: 246 seconds) |
15:39:01 | * | narimiran joined #nim |
15:41:39 | * | ghost64 joined #nim |
15:56:41 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:19:42 | * | platoff quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:20:32 | * | vlad1777d quit (Ping timeout: 250 seconds) |
16:28:12 | * | Trustable joined #nim |
16:33:25 | * | PMunch quit (Remote host closed the connection) |
16:48:02 | * | rockcavera quit (Read error: Connection reset by peer) |
16:48:28 | * | krux02 joined #nim |
16:49:09 | * | rockcavera joined #nim |
16:49:09 | * | rockcavera quit (Changing host) |
16:49:09 | * | rockcavera joined #nim |
16:50:36 | * | floppydh quit (Quit: WeeChat 2.3) |
16:54:53 | * | Trustable quit (Remote host closed the connection) |
17:01:45 | * | platoff joined #nim |
17:10:19 | * | wildlander joined #nim |
17:20:12 | * | freddy92 quit (Quit: Client disconnecting) |
17:35:58 | * | zakora joined #nim |
17:49:29 | * | Valac joined #nim |
17:49:33 | * | Valac left #nim (#nim) |
18:12:01 | FromGitter | <zacharycarter> https://compileandrun.com/struggles-with-rust.html |
18:22:31 | * | dom96_w quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:28:00 | * | nsf joined #nim |
18:38:24 | * | leorize quit (Quit: WeeChat 2.2) |
18:44:09 | * | leorize joined #nim |
18:49:31 | * | theelous3_ joined #nim |
19:07:43 | * | lritter joined #nim |
19:12:03 | * | shpx quit (Ping timeout: 252 seconds) |
19:23:35 | FromGitter | <mratsim> > Note: at this point I have no idea when to_string() or to_owned() are used. My usually strategy is to try as_str(), to_str(), as_string(), to_string(), and to_owned(), until the compiler stops complaining. ⏎ ⏎ I had the same issues, also iter() and into_iter(), and borrow(), borrow_mut() |
19:24:23 | FromGitter | <mratsim> But I think after developing in Nim at low-level I’m much more familiar with aliasing, ownership and memory safety so I would be a much better Rust dev |
19:31:30 | * | rockcavera quit (Remote host closed the connection) |
19:35:12 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
19:45:25 | * | nsf quit (Quit: WeeChat 2.3) |
19:54:59 | * | narimiran quit (Remote host closed the connection) |
19:58:00 | * | rockcavera joined #nim |
20:03:32 | * | nolanv joined #nim |
20:06:33 | * | nolanv quit (Client Quit) |
20:10:50 | FromGitter | <arnetheduck> https://twitter.com/jcksie/status/1070409974365519872 |
20:13:26 | FromGitter | <arnetheduck> my experience with rust is generally that it's very similar to what *good* c++ looks like - a lot of the same concepts, but enforced by the compiler (ie use unique_ptr but not raw pointers, etc).. if you're unfamiliar with those concepts, or if you just want to hack together a quick script, you have a learning curve to real with or you're simply in the wrong language for the task at hand.. |
20:27:06 | FromGitter | <StefanSalewski> masquino, for your unanswered question your may see https://forum.nim-lang.org/t/4433#27746 |
20:43:50 | masquino | :ok_hand: thanks!! |
20:50:49 | * | zakora quit (Quit: WeeChat 2.2) |
21:04:25 | * | wildlander quit (Quit: Konversation terminated!) |
21:10:35 | * | nolanv joined #nim |
21:11:54 | * | nolanv quit (Client Quit) |
21:14:00 | * | nolanv joined #nim |
21:46:15 | * | stefanos82 quit (Remote host closed the connection) |
22:22:17 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
22:31:52 | * | platoff quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
23:00:52 | * | Vladar quit (Remote host closed the connection) |
23:07:48 | FromGitter | <zetashift> Is day 5 of Advent of Code not just one hella big foldRight call? |
23:08:16 | FromGitter | <zetashift> I solved it in Scala with foldl, reverse and pattern matching on a list |
23:08:30 | FromGitter | <zetashift> with the Nim one I'm having more problem solving this recursively |
23:10:45 | abeaumont | no need to use recursion to solve it |
23:12:08 | * | xace quit (Ping timeout: 268 seconds) |
23:12:26 | * | xace joined #nim |
23:12:37 | FromGitter | <zetashift> oh!? |
23:24:11 | * | vlad1777d joined #nim |
23:27:08 | * | theelous3_ quit (Ping timeout: 245 seconds) |
23:27:33 | * | ftsf joined #nim |
23:44:26 | * | krux02 quit (Remote host closed the connection) |
23:45:07 | * | krux02 joined #nim |
23:46:25 | * | krux02 quit (Remote host closed the connection) |