00:03:35 | * | user1101 joined #nim |
00:27:35 | * | leorize quit (Ping timeout: 255 seconds) |
00:33:40 | * | leorize joined #nim |
00:41:20 | * | dddddd quit (Remote host closed the connection) |
01:07:26 | * | elrood quit (Quit: Leaving) |
01:21:46 | * | craigger quit (Quit: bye) |
01:24:26 | * | craigger joined #nim |
01:36:55 | * | craigger quit (Quit: bye) |
01:38:34 | FromGitter | <gogolxdong> @shashlick ,are you around? |
01:40:55 | * | craigger joined #nim |
01:41:07 | * | craigger quit (Remote host closed the connection) |
01:44:00 | * | craigger joined #nim |
01:53:41 | * | craigger_ joined #nim |
01:53:46 | * | craigger quit (Ping timeout: 264 seconds) |
01:54:21 | * | craigger_ quit (Client Quit) |
01:56:21 | * | craigger joined #nim |
02:20:21 | * | leorize quit (Ping timeout: 240 seconds) |
02:26:58 | * | krux02 quit (Remote host closed the connection) |
02:38:27 | * | leorize joined #nim |
02:45:10 | * | leorize quit (Read error: Connection reset by peer) |
03:09:39 | shashlick | @gogolxdong: what's up |
03:28:50 | * | endragor joined #nim |
03:52:20 | Tanger | Hey, anybody have any projects with some beginner/intermediate issues that I could have a crack at? Trawling through the projects on github atm, but if anybody has a suggestion, that would be coolibah |
03:53:34 | FromGitter | <Quelklef> I have a dead project |
03:54:53 | FromGitter | <Quelklef> that probably needs work if it's gonna be undeaded |
03:55:36 | Tanger | Oh yeah? I'll take a look if you want me to give it a bit of CPR |
03:55:50 | FromGitter | <Quelklef> hehehe |
03:56:05 | FromGitter | <Quelklef> https://github.com/Quelklef/lilt |
03:56:14 | * | mitai42 joined #nim |
03:56:28 | FromGitter | <Quelklef> It's a parser generator with some somewhat strange semantics |
03:56:40 | * | mitai quit (Read error: Connection reset by peer) |
03:56:53 | Tanger | Strange usually == fun |
03:57:01 | FromGitter | <Quelklef> i like that attitude |
03:57:19 | FromGitter | <Quelklef> if you actually get interested in it I'd love to work on it with oyu |
03:57:45 | Tanger | Sweet man, I'll read through the docs and have a peruse through the current code. Thanks |
03:57:48 | FromGitter | <Quelklef> the docs are pretty meh tbh so don't hesitate to ask me anything |
03:57:49 | FromGitter | <Quelklef> sure |
03:58:07 | FromGitter | <Quelklef> Understood if you're not interested, too; I don't think I'd be :P |
03:59:16 | * | fjvallarino quit (Remote host closed the connection) |
03:59:45 | * | fjvallarino joined #nim |
04:04:10 | * | fjvallarino quit (Ping timeout: 260 seconds) |
04:13:21 | FromGitter | <gogolxdong> @shashlick , I setup a windows built latest env on my own computer, followed the steps, remembered that there is a koch.exe in my repository |
04:23:49 | * | arecaceae quit (Remote host closed the connection) |
04:24:12 | * | arecaceae joined #nim |
04:36:49 | * | fjvallarino joined #nim |
04:37:49 | * | lompik joined #nim |
04:52:06 | shashlick | @gogolxdong: are you facing any issues? |
05:08:20 | ashleyk_ | hello nimbos |
05:08:30 | ashleyk_ | make anything cool lately? |
05:26:44 | * | miran joined #nim |
05:40:29 | * | Vladar joined #nim |
05:40:32 | FromGitter | <gogolxdong> @shashlick ,yeah , I don't have a koch.exe in my office compute Nim directory. |
05:41:48 | FromGitter | <gogolxdong> cannot remember where it came from on my home computer. |
05:43:57 | shashlick | you need to build it |
05:44:20 | shashlick | nim c koch |
06:06:06 | Tanger | Quelklef: Been looking through the code. One thing I don't understand is the ! (Guard) construct. I think defined here: https://github.com/Quelklef/lilt/blob/master/src/lilt/private/lilt.lilt#L52 |
06:06:35 | Tanger | And in context of a test: "/ Whitespace no newlines \n __: !newline _" |
06:07:01 | Tanger | Not sure whether it's a Nim idiom |
06:07:04 | FromGitter | <gogolxdong> @shashlick yeah |
06:08:07 | FromGitter | <Quelklef> Tanger: The logic is here: https://github.com/Quelklef/lilt/blob/master/src/lilt/private/interpret.nim#L313 |
06:08:19 | FromGitter | <Quelklef> guard is a little strange and requires thinking about the program iteratively |
06:08:29 | FromGitter | <Quelklef> or, more accurately, sequentially |
06:08:44 | FromGitter | <Quelklef> `!expr` reads like: *if we match `expr`, abort* |
06:09:23 | Tanger | Ah, sweet. Thanks |
06:09:43 | FromGitter | <Quelklef> I think the best explanatory use-case is `string: '"' *[!'"' any] '"'` |
06:13:21 | FromGitter | <Grabli66> Hi! What is the actual way to use interfaces in Nim? I found concept, vtables, some macroses. I don't understand, what is the best practice? |
06:13:40 | FromGitter | <Quelklef> Nim doesn't have interfaces |
06:15:06 | FromGitter | <Grabli66> Good :) |
06:15:50 | FromGitter | <Araq> there are macros that implement interfaces for you. |
06:16:40 | shashlick | Araq: what time is it there? |
06:17:30 | FromGitter | <Quelklef> oh @Araq you mentioned before you want to replace generics with macros sometime down the line in Nim. Is there some term for the strategy that'd be used instead? I want to learn more but I'm about to sleep |
06:18:29 | FromGitter | <Grabli66> @Araq Where i can find that macros? |
06:18:53 | FromGitter | <Araq> `nimble search interface` |
06:19:02 | FromGitter | <Araq> https://github.com/andreaferretti/interfaced |
06:19:03 | FromGitter | <Grabli66> Thanks |
06:21:49 | FromGitter | <Araq> @Quelklef it's a just a wild idea. in a nutshell ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b3db8fc7b811a6d63d0f235] |
06:22:14 | * | miran quit (Ping timeout: 256 seconds) |
06:24:14 | FromGitter | <Araq> `Tab` would be an anon, nominal type. but we also need the caching mechanism that generics use |
06:27:09 | FromGitter | <Araq> so the template in fact becomes something like `template table(key, val) {.cached.}` |
06:34:58 | FromGitter | <Grabli66> I tried concepts. And they are working :) |
06:35:28 | FromGitter | <Araq> yeah, this happens more and more :P |
06:36:29 | shashlick | araq: talking about concepts, any idea on this? https://github.com/nim-lang/nim/issues/6691 |
06:43:42 | FromGitter | <Araq> no |
06:45:11 | FromGitter | <Grabli66> @Araq I have a question about destructors. Sometimes I want a possibility to create dynamic libraries with Nim. Can we create dynamic libraries without GC and nimrtl, when destructors will be ready? |
06:46:49 | shashlick | araq: so it is a valid defect then |
06:53:58 | FromGitter | <admin0day> hi folks,how to achieve the pointer of C in Nim |
06:55:32 | shashlick | https://nim-lang.org/docs/system.html#addr,T |
06:57:18 | FromGitter | <admin0day> @FromIRC thx , i will check out this later |
06:57:29 | * | nsf joined #nim |
06:57:38 | FromGitter | <admin0day> funny ,hhhhh |
07:05:46 | FromGitter | <alehander42> @krux02 wow that's a good lifehack |
07:07:41 | FromGitter | <Araq> @Grabli66 yes |
07:13:56 | shashlick | just commented on 4 compiler crash issues that are potentially fixed - mini yay before I head to bed |
07:27:43 | * | user1101 quit (Quit: user1101) |
07:30:16 | FromGitter | <Araq> thanks |
07:34:35 | * | PMunch joined #nim |
07:34:41 | * | nsf quit (Quit: WeeChat 2.1) |
07:45:03 | FromGitter | <mratsim> I don’t know if this ships has sailed but, do you guys have thoughts on this particular unhygienic use of template (at least in my opinion): https://github.com/nim-lang/Nim/issues/8208 |
07:45:45 | * | yglukhov[i] joined #nim |
07:46:32 | PMunch | dom96, is there a way to call one task from another using Nimble? |
07:53:53 | PMunch | I have two build tasks to build separate components, and I want to build both before my run task |
08:08:12 | FromGitter | <Araq> @mratsim would break a ton of code. but I'm not really against it. |
08:09:13 | FromGitter | <mratsim> A warning can be added with a long transition period |
08:19:33 | FromGitter | <Vindaar> @mratsim I was honestly surprised about this the first time I noticed it's possible. So you have my +1 |
08:45:21 | * | noonien joined #nim |
08:51:40 | FromGitter | <survivorm> @mratsim you have my +1 too |
08:52:34 | FromGitter | <mratsim> :partyparrot: |
08:52:36 | * | arecaceae quit (Remote host closed the connection) |
08:53:00 | * | arecaceae joined #nim |
08:55:52 | FromGitter | <Grabli66> It's strange, there is no procedure "groupby" in sequtils. Maybe there is a library or other module with that procedure? |
08:56:38 | FromGitter | <mratsim> NimData has it |
09:01:23 | * | rosshadden quit (Read error: Connection reset by peer) |
09:02:54 | * | rosshadden joined #nim |
09:09:19 | * | xet7 joined #nim |
09:10:09 | * | pwntus joined #nim |
09:10:32 | * | pwntus quit (Changing host) |
09:10:33 | * | pwntus joined #nim |
09:23:03 | FromGitter | <Grabli66> Great |
09:25:03 | FromGitter | <mratsim> Why do I get moderated here: https://forum.nim-lang.org/t/3988 |
09:29:10 | FromGitter | <Araq> it's a forum bug, I think |
09:29:17 | FromGitter | <Araq> I banned the OP |
09:32:32 | FromGitter | <mratsim> If you check on the web he also intervened on Crystal (and maybe Rust as well) before Nim |
09:33:02 | FromGitter | <Araq> I can imagine. |
09:33:21 | FromGitter | <Araq> should they deal with him |
09:52:35 | PMunch | Why did his posts get deleted? That topic is really strange to read now :P |
09:53:34 | FromGitter | <kindlychung> ```code paste, see link``` |
09:53:42 | FromGitter | <kindlychung> Any idea why I got this in gintro? |
09:57:22 | FromGitter | <Araq> ah my bad |
09:58:33 | FromGitter | <Araq> hmm no difference, I think it's a forum bug :-) |
10:00:28 | FromGitter | <Araq> @kindlychung 'gintro' needs to be updated so that it compiles with newer versions of Nim. |
10:00:53 | FromGitter | <Araq> in fact, iirc the author of gintro asked for this error message :-) |
10:01:21 | FromGitter | <kindlychung> ok. |
10:02:57 | FromGitter | <kindlychung> So at the moment we don't have an up-to-date gtk3 wrapper, right? |
10:05:17 | FromGitter | <Araq> well try to patch it please |
10:05:31 | FromGitter | <Araq> with a bit of luck only a couple of declarations have to be removed |
10:06:51 | * | NamPNQ joined #nim |
10:15:46 | Abnegation | does arraymancer have support for local convolutions? |
10:19:54 | PMunch | Doesn't oldgtk3 still work? |
10:20:19 | * | Vladar quit (Quit: Leaving) |
10:21:11 | FromGitter | <gogolxdong> How does nim forum implement login using karax? |
10:22:29 | PMunch | gogolxdong: https://github.com/PMunch/SDLGamelib |
10:22:33 | PMunch | Woops, wrong link.. |
10:22:35 | PMunch | https://github.com/nim-lang/nimforum/tree/master/src |
10:22:44 | FromGitter | <mratsim> @Abnegation local convolution? like that? https://github.com/edubart/arraymancer-vision/blob/master/src/arraymancer_vision/filters.nim#L22 |
10:23:31 | FromGitter | <gogolxdong> Great, thanks. |
10:24:13 | FromGitter | <mratsim> @Abnegation, you can check the help there as well for convolution: https://mratsim.github.io/Arraymancer/nnp.nnp_convolution.html |
10:26:06 | PMunch | gogolxdong, however federico3 have also written a http authentication module: https://github.com/FedericoCeratto/nim-httpauth |
10:26:10 | PMunch | Which might be more apt |
10:27:31 | Abnegation | I'm quite new to deep learning and neural networks, it's quite hard for me to guess inputs and outputs sizes, but initially this convolution doesn't seem to be the type of convolution I'm referring too. |
10:30:35 | FromGitter | <gogolxdong> I'm fine with the authentication we are using now , but desire how to jump to the content page. |
10:32:07 | Abnegation | how hard would it be to add new types of convolutions for someone using arraymancer? I'm familiar with threading, gpu programming, and stuff, though I'm really not familiar with NIM, I'm not asking for this stuff to be implemented, but rather to ask how hard would it be for a Novice to implement it? |
10:32:40 | * | dddddd joined #nim |
10:40:45 | FromGitter | <admin0day> hi folks,how can i expression the size_t in C by using the Nim? |
10:40:48 | FromGitter | <gogolxdong> oh, I don't think it's the same,but a good material to learn karax. |
10:40:50 | * | Vladar joined #nim |
10:44:07 | FromGitter | <gogolxdong> login page and dashboard are isolated. |
10:48:15 | Yardanico | @admin0day what for? |
10:48:55 | Yardanico | there's uint types with different sizes |
10:48:59 | Yardanico | like uint32/uint64 |
10:55:46 | * | flipcoder joined #nim |
10:55:57 | FromGitter | <alehander42> @Araq do you think the config object outFile should contain the name even with no `--out` ? |
10:56:20 | FromGitter | <alehander42> otherwise how should i determine what is the default name |
10:56:43 | FromGitter | <alehander42> aah getOutFile |
10:56:49 | FromGitter | <alehander42> awesome |
10:57:42 | dom96 | @admin0day: csize https://nim-lang.org/docs/system.html#csize |
10:57:59 | Yardanico | dom96, oh |
11:00:00 | FromGitter | <alehander42> so `m.g.config.getOutFile(m.g.config.projectFull, "").rsplit("/", 1)[1]` |
11:00:07 | FromGitter | <alehander42> is there a better way to do it |
11:01:55 | FromGitter | <alehander42> uh no `if m.g.config.outFile.len > 0: m.g.config.outFile else: m.g.config.getOutFile(m.g.config.projectFull, "").rsplit("/", 1)[1]` |
11:11:20 | * | elrood joined #nim |
11:12:31 | * | gb00s joined #nim |
11:16:46 | * | NamPNQ quit (Remote host closed the connection) |
11:18:23 | * | flipcoder quit (Quit: Leaving) |
11:25:05 | FromGitter | <mratsim> @abnegation can you show me the convolution you are talking about. I don’t think it’s hard if you have an implementation in say Numpy it straightforward to port |
11:26:20 | FromGitter | <kindlychung> after fixing some proc overloading errors, now i keep getting this: ` ... /home/kaiyin/.nimble/pkgs/gintro-#head/gintro/gimpl.nim(78, 41) Error: index out of bounds` |
11:27:04 | FromGitter | <kindlychung> (https://files.gitter.im/nim-lang/Nim/yLcp/image.png) |
11:27:11 | federico3 | did anything change around indexing and bound checking? |
11:29:27 | FromGitter | <kindlychung> I couldn't find anything related to indexing in that particular line. |
11:33:11 | Yardanico | federico3, where? |
11:33:30 | Yardanico | well, in devel you can't access null terminator |
11:33:36 | federico3 | aha! |
11:33:48 | federico3 | quite a big, breaking change it seems |
11:33:58 | Yardanico | federico3, yeah |
11:34:07 | Yardanico | federico3, there's --laxStrings:on to restore old behaviour |
11:34:15 | Yardanico | (for deprecation period) |
11:34:45 | federico3 | accessing terminator byte in strings was a really ugly wart, so that's progress |
11:35:22 | dom96 | except that now practically all code is broken |
11:35:45 | Yardanico | dom96, well, we can fix it |
11:35:49 | Abnegation | |
11:35:50 | Abnegation | local_conv2d from keras backend https://keras.io/backend/ It's really really slow. Right now it's my bottleneck in my tensorflow implementation mratsim |
11:36:10 | Yardanico | Abnegation, you should use @ to ping someone on gitter |
11:36:11 | Yardanico | @mratsim |
11:36:19 | PMunch | Wait, does that mean that reverse indexing changes as well? |
11:36:31 | Yardanico | PMunch, it doesn't seem so |
11:36:33 | Abnegation | basically, it's a convolution but 1 set of weights per pixel, and each kernel runs just around one pixel. |
11:36:35 | PMunch | So [^0] is the last character in a string |
11:37:10 | dom96 | ^1 is |
11:37:43 | Abnegation | my question is not so much about slicing with numpy like commands, but rather, how hard would be to implement something at low level that runs fast, but still interacts with the rest of the library. |
11:38:19 | federico3 | dom96: that's also ugly. Any plan to fix it? |
11:39:30 | FromGitter | <mratsim> @Abnegation, I’m checking the implementation here - https://github.com/keras-team/keras/blob/ebdc1c8759f65768212b7e7113b5cae82e9df3d4/keras/backend/tensorflow_backend.py#L4335 ⏎ ⏎ I’m not surprised it’s slow, it’s implemented in Python |
11:39:44 | dom96 | federico3: no, it's the same as in Python except for the different symbol |
11:41:08 | Abnegation | mratsim, would you mind if I dm you for a moment? |
11:41:20 | Yardanico | Abnegation, you can DM him on gitter |
11:41:21 | FromGitter | <mratsim> I’m not too sure how to implement it with the best efficiency here, probably the im2col algorithm can be extended so it handles unshared weights |
11:41:25 | FromGitter | <mratsim> https://github.com/mratsim/Arraymancer/blob/master/src/nn_primitives/fallback/conv.nim |
11:41:47 | FromGitter | <mratsim> nop I don’t mind but you need to be on Gitter |
11:42:03 | FromGitter | <mratsim> there is a Gitter room for Arraymancer as well ;) |
11:48:27 | Abnegation | I messaged you on Gitter) |
11:48:48 | Yardanico | Abnegation, are you from Russia by any chance? :P |
11:48:49 | * | nsf joined #nim |
11:49:21 | Abnegation | No, I'm not, but I'm no native englishpeaker either. |
11:49:39 | Yardanico | Abnegation, because usually only people who speak russian a lot use smiles without eyes |
11:49:58 | Yardanico | ) |
11:50:10 | Abnegation | without eyes? |
11:50:15 | Yardanico | Abnegation, yep |
12:01:58 | * | fvs joined #nim |
12:17:41 | * | nasusiro joined #nim |
12:35:05 | * | SenasOzys quit (Ping timeout: 240 seconds) |
12:35:40 | FromGitter | <kindlychung> So the `$` op for `NimNode` doesn't exist any more? |
12:35:55 | FromGitter | <kindlychung> I am looking at some code in gintro here. |
12:40:48 | * | SenasOzys joined #nim |
12:45:15 | FromGitter | <kindlychung> I've got most of the examples working with nim 0.18.0 now, but the listview example has lots of problems, it seems. |
12:46:24 | * | leorize joined #nim |
12:47:23 | PMunch | kindlychung, NimNodes have various representations |
12:47:38 | PMunch | So which one should match with $ |
13:00:45 | * | PMunch quit (Quit: Leaving) |
13:07:07 | * | tanger_ joined #nim |
13:14:13 | Abnegation | what's the best resource to learn nim at its most advanced level in the shorter time, I don't mind not sleeping |
13:15:00 | FromGitter | <narimiran> what do you mean by "its most advanced level"? |
13:17:01 | * | fjvallarino quit (Remote host closed the connection) |
13:17:09 | * | fjvallarino joined #nim |
13:20:17 | Yardanico | Abnegation, well, probably reading source code |
13:20:20 | Yardanico | there's also a manual |
13:23:00 | Abnegation | Well, I suppose "advanced level would be" become able to read random code with a low chance of being surprised. |
13:26:45 | dom96 | Depends what you want to use Nim for |
13:26:54 | Yardanico | Abnegation, well, probably "Nim in Action" book will be good |
13:26:55 | Yardanico | it covers a lot |
13:27:35 | FromGitter | <Araq> also read the manual, people say it's really good (not sure why they say this :P ) |
13:27:52 | Yardanico | I also mentioned manual, yeah, it contains every advanced feature :) |
13:28:31 | dom96 | Nim in Action is of course the best :P https://book.picheta.me/ |
13:30:25 | Yardanico | dom96, it doesn't cover a few very advanced features like converters or term-rewriting macros ;) |
13:30:29 | Yardanico | but yeah, they're rarely useful |
13:31:19 | Yardanico | also sadly things like {.this: self.} and using statement are not in the book (they can be useful too) :) |
13:31:46 | Abnegation | will give it a deep look this afternoon. |
13:35:23 | dom96 | Yardanico: 90% of people won't care about those features |
13:45:08 | FromGitter | <Araq> I want to remove .this again... |
13:45:15 | FromGitter | <Araq> but 'using' is awesome :P |
13:45:53 | dom96 | 'using' should be removed too |
13:45:56 | dom96 | It can be implemented as a macro |
13:47:50 | FromGitter | <Araq> it can't |
13:47:54 | dom96 | Why? |
13:48:55 | FromGitter | <Araq> tbh I don't remember. |
13:49:00 | Yardanico | @Araq if you want to remove it - do it now :) |
13:49:07 | Yardanico | because almost no one knows about it really :D |
13:49:38 | Yardanico | well, it can only help to save a few keystrokes |
13:49:55 | dom96 | Maybe I should set up a poll to ask people which features they think should be removed/kept in Nim 1.0 ;) |
13:50:03 | FromGitter | <Araq> it is used in 'class' macros already... :-( |
13:50:13 | Yardanico | oh :( |
13:50:36 | FromGitter | <Araq> but we can deprecate it |
13:50:44 | Yardanico | sadly github has strange search so I can't search for "{.this" |
13:50:49 | Yardanico | because it brings results for "this" too |
13:51:09 | dom96 | GitHub's search is infuriatingly bad |
13:51:28 | Yardanico | https://help.github.com/articles/searching-code/#considerations-for-code-search |
13:51:58 | Yardanico | You can't use the following wildcard characters as part of your search query: . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]. The search will simply ignore these symbols. |
13:52:29 | dom96 | lol |
13:52:54 | Yardanico | @Araq btw, why do you want to remove {.this.} ? because it can lead to bugs? |
13:53:34 | FromGitter | <Araq> Python lacks it and survives |
13:53:58 | FromGitter | <Araq> and the complexity is better spent for a different builtin rewrite rule |
13:54:05 | Yardanico | ok then, I agree |
13:54:09 | dom96 | Python has a magical 'self' |
13:54:15 | FromGitter | <Araq> how so? |
13:54:29 | FromGitter | <Araq> self.foo + self.bar + self.killmealready is Python. |
13:54:42 | dom96 | If you're in a class context, no? |
13:55:04 | dom96 | Oh, you still need to explicitly specify 'self' then |
13:55:10 | dom96 | yeah, remove it |
13:55:21 | dom96 | Confused why 'class' macros use this |
14:04:56 | * | BitPuffin joined #nim |
14:08:13 | FromGitter | <mratsim> this doesn’t work with generics |
14:09:06 | FromGitter | <mratsim> strformat as well :/ |
14:09:36 | * | mitai42 quit (Remote host closed the connection) |
14:11:14 | FromGitter | <kayabaNerve> Morning. I'm surprised at how high quality the manual is and refer to it, but read the tutorials, not the manual. I also read Dom's book, and was very pleased with Nim by Example, again for reference. ⏎ ⏎ Read: Tutorials/Dom's Book ⏎ Refer: Manual/Nim by Example [https://gitter.im/nim-lang/Nim?at=5b3e2701e534eb69a5caa928] |
14:11:56 | tanger_ | ++ for Nim In Action |
14:14:04 | Abnegation | dom's book |
14:14:29 | FromGitter | <kayabaNerve> tanger_: I think you mean inc(Nim In Action) |
14:14:33 | FromGitter | <kayabaNerve> So uncivilized. |
14:15:04 | FromGitter | <kayabaNerve> Abnegation: Why not call it that? Others have already said its Nim In Action. I made sure not to ping him when I did it. |
14:16:38 | dom96 | very kind of you :) |
14:17:02 | yglukhov[i] | Araq: +1 for deprecating {.this.} :) |
14:19:02 | FromGitter | <kayabaNerve> That said, I was working on a book of my own, and he ruined the market :/ |
14:19:13 | tanger_ | Haha |
14:21:05 | FromGitter | <kayabaNerve> :P Joking. I wrote it when I was going through a bad time, I got out of that time, and then I stopped writing it. I don't have anything close to sharing. |
14:22:11 | Araq | http://envisage-project.eu/proving-android-java-and-python-sorting-algorithm-is-broken-and-how-to-fix-it/ |
14:36:08 | Araq | yay, PR for Ormin has arrived :D |
14:44:38 | * | PMunch joined #nim |
14:48:02 | * | nsf quit (Quit: WeeChat 2.1) |
14:50:40 | * | miran joined #nim |
14:54:39 | * | floppydh quit (Quit: WeeChat 2.1) |
15:05:26 | * | endragor quit (Remote host closed the connection) |
15:05:56 | * | endragor joined #nim |
15:07:39 | * | leorize quit (Read error: Connection reset by peer) |
15:10:22 | * | leorize joined #nim |
15:10:22 | * | endragor quit (Ping timeout: 256 seconds) |
15:12:51 | * | SenasOzys quit (Read error: Connection reset by peer) |
15:13:06 | * | SenasOzys joined #nim |
15:22:59 | * | leorize quit (Ping timeout: 276 seconds) |
15:24:55 | * | cryptocat1094 joined #nim |
15:26:44 | * | ng0 joined #nim |
15:27:35 | ng0 | hi, a whle back we started looking into potential replacements for our online irc logs. what is it you use? All I could get out of the server was "Jester" |
15:27:49 | ng0 | s/we/we at GNUnet/ |
15:27:53 | * | leorize joined #nim |
15:30:20 | Yardanico | ng0, it's a custom implementation |
15:30:24 | Yardanico | https://github.com/nim-lang/nimbot |
15:30:29 | Yardanico | NimBot collects all irc logs |
15:30:51 | Yardanico | and for html part - https://github.com/nim-lang/nimbot/blob/master/src/irclogrender.nim |
15:31:15 | ng0 | ah, written in nim. I did almost bet on it :) my other idea was perl |
15:31:21 | ng0 | thanks |
15:31:27 | dom96 | ng0: Should be easy to adjust for your needs :) |
15:32:05 | Yardanico | if anyone is interested: I did a quick port of https://github.com/guptarohit/asciigraph - https://gist.github.com/Yardanico/ed3d8e68910437376a108387c0171bbd should I make a nimble package out of it? |
15:32:15 | Yardanico | it's really just a straightforward port |
15:32:22 | Yardanico | go code maps almost 1:1 to nim code here |
15:32:31 | dom96 | sure |
15:32:49 | ng0 | so far we have a strong tendency to botbot.me selfhosted, at least we want something with a search function.. maybe we end up with custom code. what we have right now is horrible (Drupal 7 irc bot) |
15:33:29 | * | leorize quit (Read error: Connection reset by peer) |
15:34:50 | dom96 | hrm, does botbot.me have search? |
15:34:55 | ng0 | yes |
15:35:00 | ng0 | as far as I remember |
15:35:08 | Yardanico | dom96, yeah, it does |
15:35:43 | Yardanico | dom96, btw, does nimble supports package which both provides a binary and a library? |
15:35:44 | dom96 | Maybe I'm blind, but I don't see a search anywhere |
15:36:07 | ng0 | oh.. does it? It has been a while since I looked into it |
15:36:15 | ng0 | we scheduled the move for 2019 |
15:36:22 | dom96 | Yardanico: yes |
15:36:29 | Yardanico | dom96, ah, hmm, it doesn't |
15:36:37 | Yardanico | it has endless scroll though |
15:36:43 | * | leorize joined #nim |
15:36:45 | * | Vladar quit (Quit: Leaving) |
15:36:50 | dom96 | I dislike endless scroll though :P |
15:38:14 | ng0 | hm. weird. thanks for making us notice again :D |
15:39:01 | dom96 | I'm happy to assist if you want to hack NimBot :) |
15:39:21 | ng0 | being able to search years of logs would be a benefit for the communities depending on our public log service. guess we have to talk about the topic again |
15:39:29 | * | leorize quit (Read error: Connection reset by peer) |
15:40:32 | dom96 | Abusing google for this works pretty well: https://goo.gl/8uJ9LZ |
15:40:35 | ng0 | I only came across nim because one of my friends and fellow developers started using it, helped debugging it to be functional on Guix. If anything I'm fairly new to this language. |
15:41:37 | ng0 | I think it should be relatively easy to build a search function. but reinventing the wheel when you don't need to is (sometimes) no fun |
15:43:52 | * | leorize joined #nim |
15:44:10 | * | Trustable joined #nim |
15:48:20 | ng0 | I'm not sure if our needs fit into what you target with nimbot. besides gnunet we have around 5 community channels and many years of logs depending on it. search is the number 1 feature everyone misses for finding references, etc. the database is I think in mysql but can be coverted to anything including simple irc log styles. I think we wanted timestamps to be gone as well as join/quit/part messages and other |
15:48:22 | ng0 | "informational messages". |
15:52:23 | ng0 | I'll read the source soon and see what could be done and what's already there. I have to get back to work. thanks for the chat :) |
16:08:12 | dom96 | Sure. Thanks for dropping by. Feel free to ping me if you've got any questions about the source :) |
16:08:16 | * | nsf joined #nim |
16:08:47 | ng0 | ok, thanks |
16:08:53 | dom96 | This simple PR I just made should fix 4 async issues at once https://github.com/nim-lang/Nim/pull/8209 :D |
16:10:12 | * | yglukhov[i] quit (Remote host closed the connection) |
16:11:26 | * | leorize quit (Quit: Quit) |
16:17:36 | * | yglukhov[i] joined #nim |
16:24:50 | Yardanico | oh, parseopt doesn't support things like "-key value" at all? :( |
16:25:44 | * | sotrhraven joined #nim |
16:26:48 | FromGitter | <Araq> it does |
16:26:54 | FromGitter | <Araq> check the devel version. |
16:34:57 | Yardanico | @Araq I've meant something like this - https://gist.github.com/Yardanico/844e8aebb6371df4377961b3a6c9f144 |
16:35:31 | FromGitter | <Araq> I know, check its docs |
16:35:49 | FromGitter | <Araq> this feature was recently added, but you need to predeclare which options take arguments |
16:41:44 | * | yglukhov[i] quit (Remote host closed the connection) |
16:43:37 | PMunch | Hmm, what is the actual difference between an int and a cint? |
16:47:34 | FromDiscord | <k0pernicus> Sort of `typedef` of an `int`...? |
16:47:43 | FromDiscord | <k0pernicus> (I don't see the difference too) |
16:56:41 | FromGitter | <Varriount> PMunch: A cint is always 32 bits. An int is the size of a pointer. |
16:57:41 | PMunch | Wait, always 32 bit? |
16:59:52 | FromGitter | <kayabaNerve> Isn't a 64 bit system pointer 64 bits? |
17:00:14 | FromGitter | <kayabaNerve> Isn't that the whole point of having a 64 bit system? |
17:01:03 | * | SenasOzys quit (Ping timeout: 268 seconds) |
17:05:37 | sotrhraven | well you could check the value of an int. I am new just starting nim. |
17:06:18 | PMunch | kaybaNerve, yeah hence a Nim int is 64 bits on a 64 bit system, and 32 bits on a 32 bit system |
17:10:14 | FromGitter | <mratsim> in C a int is 32 bit on x86 and x86_64. So Nim int and C int are different, if you want C int in Nim use `cint`or `int32` (though C int might be 16-bit on 16-bit sytems, I’m not sure) |
17:12:16 | sotrhraven | is there a proc to check value remeber (I am new) |
17:12:26 | Yardanico | sotrhraven, check what? |
17:12:32 | sotrhraven | value of an int |
17:12:37 | sotrhraven | or float |
17:12:46 | sotrhraven | like 32 or 64 |
17:12:49 | sotrhraven | bit |
17:13:13 | Yardanico | you can check bytes |
17:13:17 | Yardanico | !echo sizeof(int) |
17:13:25 | Yardanico | !eval echo sizeof(int) |
17:13:27 | NimBot | 8 |
17:13:31 | Yardanico | ^64bit |
17:14:25 | sotrhraven | 8 |
17:15:13 | sotrhraven | cint 4 |
17:15:17 | PMunch | mratsim, a C int can be different things |
17:15:40 | Yardanico | !echo sizeof(cint) |
17:15:45 | Yardanico | !eval echo sizeof(cint) |
17:15:47 | NimBot | 4 |
17:15:49 | PMunch | It's a minimum of 16 bit, but as long as it is smaller or equal to a long and bigger or equal to a short it's fine |
17:15:54 | PMunch | Varies by implementation |
17:18:29 | sotrhraven | so I am on Solus linux amd64 |
17:18:51 | Yardanico | sotrhraven, it depends on the compiler |
17:18:59 | Yardanico | and you shouldn't use cint in normal nim code |
17:19:05 | Yardanico | you should use it only when you're interfacing with C |
17:19:58 | sotrhraven | ok, so different if I was using llvm or js instead of gcc |
17:20:54 | Yardanico | sotrhraven, you can't use cint with LLVM (if you mean nlvm) or JS backends |
17:21:03 | Demos[m] | it's literally just "int" in C |
17:22:08 | Demos[m] | https://en.cppreference.com/w/c/language/arithmetic_types |
17:22:55 | sotrhraven | cool, good things to know |
17:34:15 | * | noonien quit (Quit: Connection closed for inactivity) |
17:35:50 | * | yglukhov[i] joined #nim |
17:39:32 | * | sotrhraven quit (Quit: Konversation terminated!) |
17:49:08 | * | thomasross quit (Remote host closed the connection) |
17:49:31 | * | thomasross joined #nim |
18:04:00 | * | find0x90 joined #nim |
18:04:42 | * | nsf quit (Quit: WeeChat 2.1) |
18:10:20 | * | rockcavera quit (Remote host closed the connection) |
18:12:50 | * | find0x90 quit (Quit: find0x90) |
18:15:48 | * | rockcavera joined #nim |
18:19:27 | * | Vladar joined #nim |
18:33:39 | * | find0x90 joined #nim |
18:42:47 | * | find0x90 quit (Quit: find0x90) |
18:43:01 | * | fvs quit (Remote host closed the connection) |
18:43:06 | * | fvs` joined #nim |
18:44:13 | * | find0x90 joined #nim |
19:13:57 | * | find0x90 quit (Quit: find0x90) |
19:15:06 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
19:15:42 | * | yglukhov[i] joined #nim |
19:23:18 | * | fvs` left #nim ("ERC (IRC client for Emacs 25.3.1)") |
19:34:18 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
19:34:57 | * | yglukhov[i] joined #nim |
19:35:55 | * | find0x90 joined #nim |
20:01:46 | * | Vladar quit (Quit: Leaving) |
20:11:16 | * | find0x90 quit (Quit: find0x90) |
20:11:18 | dom96 | https://github.com/TechEmpower/FrameworkBenchmarks/pull/3912 🚀 |
20:14:04 | FromGitter | <mratsim> Next lib should be called HttpWerewolf |
20:19:13 | dom96 | Maybe WereSocket for a WebSocket implementation |
20:20:10 | * | krux02 joined #nim |
20:23:51 | FromDiscord | <exelotl> time to read nim book chapter 3 |
20:24:49 | FromDiscord | <exelotl> 1 and 2 were pretty straightfoward, biggest takeaway for me was the difference between objects and tuples |
20:27:42 | * | lompik quit (Ping timeout: 256 seconds) |
20:35:18 | FromGitter | <Quelklef> @exelotl and whats the difference between objects and tuples |
20:36:54 | * | fjvallarino quit (Remote host closed the connection) |
20:37:21 | * | fjvallarino joined #nim |
20:38:56 | FromDiscord | <exelotl> objects use nominative typing, so two differently named object types with exactly the same fields in exactly the same order are not considered to be the same type |
20:39:43 | FromGitter | <Quelklef> Oh! I thought Nim was totally structurally typed. TIL |
20:40:52 | FromDiscord | <exelotl> yeah, and then with tuples being structurally typed, even the names of the fields don't matter. They just have to have the same field types in the same order to be considered the same type |
20:41:14 | FromDiscord | <exelotl> yeah, and then with tuples being structurally typed, even the names of the fields don't matter (if they have names). They just have to have the same field types in the same order to be considered the same type |
20:41:27 | * | fjvallarino quit (Ping timeout: 245 seconds) |
20:46:56 | dom96 | yay, my writing is teaching people stuff :D |
20:47:17 | dom96 | Thank you for picking up a copy exelotl :) |
20:55:07 | * | cryptocat1094 quit (Quit: later) |
20:59:35 | * | BitPuffin quit (Remote host closed the connection) |
21:06:29 | FromDiscord | <exelotl> thank you for writing it :) |
21:20:24 | * | miran quit (Quit: Konversation terminated!) |
21:22:20 | * | fjvallarino joined #nim |
21:22:36 | PMunch | Hmm Araq, any examples on using this: https://github.com/Araq/libffi ? |
21:32:35 | * | Trustable quit (Remote host closed the connection) |
21:44:48 | * | find0x90 joined #nim |
21:54:53 | * | PMunch quit (Quit: leaving) |
21:59:42 | * | NimBot joined #nim |
22:05:17 | * | krux02 quit (Remote host closed the connection) |
22:06:29 | FromGitter | <Quelklef> `git config --global user.name` probably |
22:07:55 | * | yglukhov[i] quit (Remote host closed the connection) |
22:10:23 | dom96 | yep |
22:21:28 | * | xet7 quit (Quit: Leaving) |
22:29:30 | nasusiro | Quelklef and dom96: confirmed |
22:29:36 | nasusiro | for a moment I freaked out lol |
22:34:58 | * | fjvallarino quit (Remote host closed the connection) |
22:35:04 | * | fjvallarino joined #nim |
22:40:42 | CodeVance | how to get the path to a nim package |
22:40:55 | * | yglukhov[i] joined #nim |
22:45:07 | dom96 | nimble path pkg |
22:45:21 | * | yglukhov[i] quit (Ping timeout: 248 seconds) |
22:49:14 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
22:50:22 | CodeVance | nimble.directory isn't working |
22:50:22 | CodeVance | 400 |
22:57:36 | federico3 | thanks CodeVance |
22:57:51 | * | find0x90 quit (Quit: find0x90) |
22:58:18 | CodeVance | :) |
22:59:47 | * | elrood quit (Quit: Leaving) |
23:01:44 | nasusiro | dom96: when you run nimble init, it asks you about Package type and you have to choose between lib and bin |
23:02:08 | nasusiro | whatever you choose, it creates an src and tests directories |
23:02:28 | nasusiro | why does it do so for a lib? |
23:04:27 | CodeVance | nasusiro: bin -> src/packagenamepkg lib src/packagename |
23:05:06 | nasusiro | CodeVance: meaning? |
23:06:48 | dom96 | nasusiro: hrm? It's not just about directories/files |
23:06:51 | dom96 | Check the .nimble file |
23:07:01 | CodeVance | that a bin package has to have a different package source folder name, or else the binary's name will clash with it on certain os. |
23:07:02 | CodeVance | binary also get sent to the .nimble/tools folder I think |
23:07:17 | CodeVance | .nimble/bin |
23:07:56 | * | rockcavera quit (Ping timeout: 256 seconds) |
23:08:03 | dom96 | CodeVance: That's only the case for "hybrid" packages |
23:08:05 | nasusiro | dom96: I borrowed your book from my university's library and I'm doing the Nimble example from Chapter 5 |
23:08:24 | dom96 | whoa, which uni is this? :O |
23:08:51 | nasusiro | :D why are you so interested to know about it? |
23:09:22 | dom96 | Because it's either my university, or a completely different university library that stocks my book (which is awesome) |
23:09:39 | nasusiro | it's one of our public technological university's |
23:09:45 | nasusiro | *universities |
23:10:07 | nasusiro | anyhow |
23:10:25 | nasusiro | the example contains NimbleExample/NimbleExample |
23:10:27 | nasusiro | correct? |
23:11:30 | nasusiro | inside the inner NimbleExample, I should have data.nim, math.nim, and private directory with utils.nim |
23:11:46 | nasusiro | on the outer NimbleExample I run nimble init |
23:11:58 | nasusiro | and asked me about lib or bin |
23:11:58 | dom96 | nasusiro: I guess you don't want to publicly say your uni, that's okay :) |
23:12:02 | * | dom96 was just curious |
23:13:04 | nasusiro | I can give you their name, but they have a policy that forbids us from sharing books' title names in public for some reason |
23:13:42 | nasusiro | I don't know why is that and also they forbid people from taking pictures with books' title and uploading on FB and Instagram |
23:13:46 | dom96 | That's odd. But anyway, hrm, it's actually possible that this was broken in the book |
23:13:52 | dom96 | previous versions of Nimble didn't create those directories |
23:14:52 | nasusiro | too bad this book is not FOSS-ed so we can fix it and keep it updated |
23:15:07 | nasusiro | it could attract so many people that are interested in Nim |
23:17:04 | dom96 | Printed books cannot be edited easily :) |
23:17:41 | nasusiro | I meant if it were in a markdown format or even HTML |
23:17:42 | * | rockcavera joined #nim |
23:19:19 | dom96 | There are plenty of guides/manuals/tutorials which are open |
23:21:43 | dom96 | In any case, I'll look into this. I created an issue as a reminder: https://github.com/dom96/nim-in-action-code/issues/4 |
23:25:05 | nasusiro | cool |
23:25:23 | nasusiro | before I return this book, I will let you know with details and possible errata |
23:25:34 | nasusiro | one unfair comparison you did was with C |
23:25:39 | dom96 | yeah, always helpful |
23:25:47 | nasusiro | about the use of curly braces |
23:25:53 | dom96 | That doesn't sound like errata :P |
23:26:04 | nasusiro | that's part of the details wiseguy :P |
23:26:20 | dom96 | You can post other errata you find here btw: https://forum.nim-lang.org/t/3716 |
23:26:45 | nasusiro | cool |
23:27:36 | nasusiro | by the way dom96, is there anywhere a v1.0 roadmap? |
23:28:14 | FromGitter | <honewatson> https://github.com/nim-lang/Nim/milestone/2 |
23:28:15 | dom96 | https://github.com/nim-lang/Nim/milestone/2 |
23:28:38 | nasusiro | thank you both |
23:30:24 | FromGitter | <honewatson> Lot of issues relating to Concepts[T] and static[T] |
23:33:30 | FromGitter | <honewatson> Sometimes feel like Nim v1 will not be released until the perfect language has been created |
23:45:02 | * | dddddd quit (Remote host closed the connection) |
23:58:16 | nasusiro | dom96: based on this ticket of yours, this "case" isAsync: bool syntax looks new to me. You are not mentioning anything of such syntax in NIA |
23:58:34 | nasusiro | is it a newly added feature after the book got released? |