00:05:12 | * | plexigras quit (Ping timeout: 240 seconds) |
00:08:36 | * | couven92 quit (Quit: Client Disconnecting) |
00:08:50 | * | zachk quit (Quit: zzzzz) |
00:32:43 | * | relax joined #nim |
00:33:29 | def-pri-pub | heyas |
00:35:25 | * | Demos joined #nim |
00:35:42 | * | Demos quit (Client Quit) |
00:43:03 | FromGitter | <krux02> yglukhov, are you there? where do you have portable_gl? |
00:43:12 | FromGitter | <krux02> I can't find it in rod |
00:49:14 | FromGitter | <barcharcraz> wowah does nim compile without any dependencies on any headers now? |
00:50:11 | FromGitter | <krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/neuralnetwork.gif |
00:50:39 | FromGitter | <barcharcraz> I did a koch boot --cc:clang on windows and everything worked |
00:50:40 | FromGitter | <barcharcraz> how |
00:50:42 | FromGitter | <barcharcraz> why |
00:51:00 | FromGitter | <krux02> maybe nim comes with dependencies on windows? |
00:51:03 | FromGitter | <krux02> I don't know |
00:51:09 | FromGitter | <barcharcraz> I got it from github |
00:51:13 | FromGitter | <barcharcraz> so like idk |
00:51:24 | FromGitter | <krux02> no github is without dependencies |
00:51:25 | FromGitter | <barcharcraz> and none of the windows headers are in my INCLUDE |
00:51:35 | FromGitter | <barcharcraz> yeah see that's what I thought |
00:51:51 | FromGitter | <barcharcraz> and yet |
00:52:02 | FromGitter | <krux02> what do you think about the trippy gif animation? |
00:52:17 | FromGitter | <barcharcraz> pretty much sums up my reaction to anything working on windowws |
00:55:27 | FromGitter | <barcharcraz> oh I had patched thing |
00:55:36 | FromGitter | <barcharcraz> still not sure how it found my windows headers |
00:58:32 | FromGitter | <barcharcraz> does the pure directory in the stdlib actually have any meaning these days? |
01:07:39 | FromGitter | <krux02> it has intention I think |
01:15:13 | * | Ven`` quit (Ping timeout: 248 seconds) |
01:20:01 | FromGitter | <barcharcraz> but like nativesockets and stuff is in there |
01:20:06 | FromGitter | <barcharcraz> which .... is not pure |
01:21:31 | FromGitter | <barcharcraz> what toolchains does CI have> |
01:21:39 | * | vlad1777d quit (Ping timeout: 252 seconds) |
01:29:43 | FromGitter | <barcharcraz> I wanna submit these patches but I don't want to break mingw, icl, or vcc |
01:31:36 | FromGitter | <barcharcraz> huh clang finds windows headers automatically |
01:32:06 | FromGitter | <barcharcraz> so clang+windows kit + minor patches -> full MSVC ABI toolchain with gcc command syntax |
01:34:00 | FromGitter | <barcharcraz> and no need to change your path either |
01:34:56 | FromGitter | <barcharcraz> would be a good alternitive to the bundled mingw in the releases if not for the kit licensing and size (the minimal amd64 install is 1.5gb) |
01:35:02 | * | relax quit (Ping timeout: 260 seconds) |
01:35:11 | FromGitter | <barcharcraz> although tbh that size could probably shrink if you bypassed their installer |
01:38:20 | * | dhalinar joined #nim |
01:51:54 | * | chemist69 quit (Ping timeout: 252 seconds) |
01:51:59 | * | endragor joined #nim |
01:53:17 | * | endragor_ joined #nim |
01:53:22 | * | relax joined #nim |
01:56:15 | * | endragor quit (Ping timeout: 248 seconds) |
01:57:52 | FromGitter | <barcharcraz> allright I uploaded said patches |
02:05:23 | * | chemist69 joined #nim |
02:11:05 | * | relax quit (Ping timeout: 255 seconds) |
02:17:24 | * | relax joined #nim |
02:24:38 | * | endragor_ quit (Remote host closed the connection) |
02:35:45 | * | ShalokShalom quit (Ping timeout: 248 seconds) |
02:36:15 | * | jjido_ joined #nim |
02:38:08 | * | jjido quit (Ping timeout: 240 seconds) |
02:39:58 | * | m712 quit (Ping timeout: 255 seconds) |
02:40:13 | * | sz0 quit (Quit: Connection closed for inactivity) |
02:41:12 | * | m712 joined #nim |
02:42:24 | * | def-pri-pub left #nim (#nim) |
02:56:53 | * | endragor joined #nim |
02:57:19 | * | endragor quit (Remote host closed the connection) |
02:58:07 | * | endragor joined #nim |
03:02:06 | * | Marak joined #nim |
03:02:40 | Marak | is the javascript backend supported for Mac os? i'm seeing the following error when trying to compile a .nim file into javascript: lib/pure/os.nim(27, 10) Error: OS module not ported to your operating system! |
03:13:27 | * | dddddd quit (Remote host closed the connection) |
03:21:45 | Marak | anyone? i'm trying to compile https://github.com/h3rald/nimhttpd into javascript to see what the output looks like. we are evaluating switching some of our production applications from Node.js to Nim |
04:10:50 | FromGitter | <Yardanico> Try to add "-d:nodejs" |
04:11:16 | FromGitter | <Yardanico> But anyway you'll need to write some JS code by hand |
04:11:46 | FromGitter | <Yardanico> Ah, this project would be hard to port to JS |
04:11:56 | FromGitter | <Yardanico> Why do you want JS output? |
04:13:27 | * | dhalinar quit (Ping timeout: 246 seconds) |
04:20:03 | Marak | FromGitter: Hello. The command I was running was: `nim js -d:nodejs -r nimhttpd.nim` |
04:20:04 | FromGitter | Marak, I'm a bot, *bleep, bloop*. I relay messages between here and https://gitter.im/nim-lang/Nim |
04:20:10 | Marak | errr |
04:21:07 | Marak | Yardanico, I was attempting to run that argument. It's from the documentation I read at https://nim-lang.org/docs/backends.html#backends-the-javascript-target |
04:21:12 | * | rirc_3083 joined #nim |
04:21:33 | Marak | I want JS output because I was to understand the kind of JS code Nim is going to produce should it choose to use the JS backend |
04:21:55 | Marak | I'm guessing the Http request response stuff isn't support for javascript backend? |
04:23:15 | * | relax_ joined #nim |
04:23:51 | * | onionhammer joined #nim |
04:24:35 | * | bozaloshtsh_ joined #nim |
04:25:59 | * | BlaXpirit joined #nim |
04:29:49 | * | relax quit (*.net *.split) |
04:29:50 | * | onionhammer1 quit (*.net *.split) |
04:29:51 | * | adamchainz quit (*.net *.split) |
04:29:51 | * | SunDwarf quit (*.net *.split) |
04:29:51 | * | shodan45 quit (*.net *.split) |
04:29:51 | * | dave24 quit (*.net *.split) |
04:29:51 | * | bozaloshtsh quit (*.net *.split) |
04:29:52 | * | niv quit (*.net *.split) |
04:29:52 | * | oprypin quit (*.net *.split) |
04:29:52 | * | d10n quit (*.net *.split) |
04:29:52 | * | Amun_Ra quit (*.net *.split) |
04:29:54 | * | BlaXpirit is now known as oprypin |
04:30:24 | * | shodan45 joined #nim |
04:30:34 | * | SunDwarf joined #nim |
04:32:04 | * | adamchainz joined #nim |
04:33:32 | * | d10n joined #nim |
04:33:32 | * | d10n quit (Changing host) |
04:33:32 | * | d10n joined #nim |
04:33:39 | Marak | I'm guessing that the JS backend target is intended for use in the browser? |
04:35:03 | * | adeohluwa joined #nim |
04:36:32 | * | niv joined #nim |
04:37:24 | * | Amun_Ra joined #nim |
04:59:03 | Araq | yes |
05:07:43 | Marak | thanks |
05:22:22 | * | kunev joined #nim |
05:25:33 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
05:27:12 | * | relax_ quit (Ping timeout: 260 seconds) |
05:30:26 | Marak | should i be able to import fsmonitor, or has it been removed from core? watch.nim(1, 57) Error: cannot open 'fsmonitor' |
05:33:33 | * | jjido joined #nim |
05:35:28 | * | jjido_ quit (Ping timeout: 240 seconds) |
05:54:31 | FromGitter | <mratsim> This could be a good place to start Nim conquest of Wikipedia: https://en.m.wikipedia.org/wiki/Concept_(generic_programming) |
06:02:52 | Araq | Marak: it was moved to some subdir, forgot which one |
06:02:56 | * | BigEpsilon joined #nim |
06:05:29 | * | Marak quit (Ping timeout: 260 seconds) |
06:10:13 | * | solitudesf joined #nim |
06:10:51 | FromGitter | <ephja> we have a tar unpacker, but no tar packer, right? |
06:12:14 | * | Vladar joined #nim |
06:14:20 | * | PMunch joined #nim |
06:15:10 | Araq | I think so, yes |
06:18:01 | Araq | https://github.com/Araq/ormin/blob/master/examples/forumproto.nim what do you think? |
06:18:58 | FromGitter | <ephja> do you think GNU tar is full of preprocessor magic? I'm sure it is :p found something called "microtar". I might port that |
06:20:11 | Etheco | Sweet Nim in Action ordered, can't wait to give it a read |
06:20:22 | Etheco | hopefully let me understand Nim properly :D |
06:21:56 | Araq | 37 lines of the protocol description produce 500 lines of optimized SQL prepared statements plus the message passing between client and server |
06:26:02 | FromGitter | <ephja> looks interesting |
06:34:13 | * | nsf joined #nim |
06:38:00 | FromGitter | <mratsim> Interesting alternative to htop: https://github.com/nicolargo/glances |
06:40:35 | * | adeohluwa quit (Quit: Connection closed for inactivity) |
06:46:10 | * | chemist69 quit (Quit: WeeChat 1.9) |
06:48:10 | FromGitter | <ephja> damn, we only have half the amount of stars |
06:48:46 | FromGitter | <Bennyelg> ornim tends to be amazing |
06:48:53 | FromGitter | <Bennyelg> @mratsim thanks |
06:50:59 | FromGitter | <ephja> reminds me of Conky, but I dunno if 'Glances' is interactive |
06:51:48 | FromGitter | <mratsim> that doesn’t work? ⏎ ⏎ ```when defined(native): ⏎ {.passC: "-march=native”.}``` [https://gitter.im/nim-lang/Nim?at=59cb4a847b7d98d30d3fa0f5] |
06:54:30 | FromGitter | <mratsim> mm no it does on my mac but not on my linux server, strange |
07:04:24 | * | guelosk quit (Ping timeout: 260 seconds) |
07:07:14 | * | plexigras joined #nim |
07:08:02 | FromGitter | <Varriount> How about someone makes a proper task manager for *nix systems, rather than creating 20 different variations of top? |
07:09:09 | Araq | varriount: because that would be progress and *nix is a religion. |
07:12:41 | * | jjido_ joined #nim |
07:14:31 | * | gokr joined #nim |
07:16:34 | * | jjido quit (Ping timeout: 264 seconds) |
07:16:55 | * | chemist69 joined #nim |
07:19:54 | libman | Then there would be 21 variations of `top`... |
07:23:39 | * | claudiuinberlin joined #nim |
07:26:31 | libman | We should™ invade Redox OS by implementing components in Nim. |
07:27:22 | * | Arrrr joined #nim |
07:27:22 | * | Arrrr quit (Changing host) |
07:27:22 | * | Arrrr joined #nim |
07:34:28 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
07:37:51 | * | jjido_ quit (Ping timeout: 246 seconds) |
07:38:02 | * | jjido joined #nim |
07:41:36 | * | claudiuinberlin joined #nim |
07:48:33 | FromGitter | <Grabli66> May be should write Nim OS ? :) |
07:52:28 | libman | When I say "we should", I don't mean me. I'm too lazy / incompetent to actually do things. But talking about doing things is half >1% the fun at <1% the effort... |
07:56:22 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
07:58:12 | * | yglukhov joined #nim |
07:58:41 | * | endragor quit (Remote host closed the connection) |
07:59:08 | * | couven92 joined #nim |
08:00:20 | Arrrr | Too late https://github.com/dom96/nimkernel |
08:00:29 | * | endragor joined #nim |
08:00:35 | * | endragor quit (Remote host closed the connection) |
08:01:30 | * | endragor joined #nim |
08:02:11 | * | claudiuinberlin joined #nim |
08:02:32 | * | yglukhov quit (Ping timeout: 255 seconds) |
08:02:42 | * | yglukhov joined #nim |
08:02:55 | * | yglukhov quit (Remote host closed the connection) |
08:03:07 | * | yglukhov joined #nim |
08:04:31 | * | salewski joined #nim |
08:07:48 | salewski | Araq, is it really that hard to provide someting like a "ThisModule" symbole? |
08:08:23 | Araq | no |
08:08:29 | salewski | From https://forum.nim-lang.org/t/3192 it is clear that I have to prefix the activate() procs |
08:08:50 | * | Arrrr quit (Ping timeout: 255 seconds) |
08:09:03 | salewski | witzh module name, so that I have for module test4 test4.activate() in example code. |
08:09:52 | salewski | Araq, when it is not that hard, than such thing would be really nice to have. |
08:10:31 | salewski | And no, I can not provide a PR for that. If I could, I would have done. |
08:11:52 | Araq | ThisModule.activate is still not really good though |
08:13:12 | salewski | I think some languages may use self.active(). |
08:13:29 | Araq | I think your wrapper needs some refactorings :P |
08:14:13 | salewski | Yes, of course. At leat very mach cleanup. |
08:14:46 | euantor | couven92: Regarding your earlier talk about debuggers/autocomplete/etc, I wonder how difficult it would be to write a wrapper for NimSuggest to follow the Language Server spec: https://github.com/Microsoft/language-server-protocol - Rust have adopted it and there's apparently a good plugin for VS Code (or is it buiult in?) to provide full support. Since it's an MS spec, I'd be surprised if it doesn't appear in Visual Studio itself soon (if it's |
08:14:46 | euantor | not already there) |
08:15:27 | salewski | But I have no idea to improve the connect macro further currently. |
08:15:58 | Araq | euantor: I looked at it and barfed, but don't let that stop you |
08:16:07 | salewski | Rewriting using AST API yes. But that will not change the fact that I have to pass a proc |
08:16:28 | euantor | Araq: You know better than me ;) I've only heard about it quite a lot recently, haven't looked at the actual spec |
08:16:31 | salewski | as typed parameter because I have to investigate its parameter list. |
08:16:58 | Araq | salewski: then maybe 'connect' is the wrong idea? |
08:17:01 | salewski | And for passing proc typed I need a module name prefix. |
08:17:55 | Araq | but what's wrong with uiElement.connect(onclick, proc () = ... ) |
08:18:17 | Araq | pass it an anon proc, no disambiguation cries |
08:18:53 | FromGitter | <Bennyelg> Hey guys, anyway to read file inMemory ? |
08:18:58 | Araq | euantor: we adopted Emacs's protocol which came much earlier fwiw |
08:19:10 | salewski | Araq, connect is provided by many wrappers, Ruby for example. I think for manny more languages too. |
08:19:33 | Araq | ? |
08:19:39 | couven92 | euantor, yes interesting idea! Yes, might definitely be worth thinking about... I know some 3rd party .NET tools also use symbol server (e.g. dotPeek) |
08:19:39 | salewski | So people exspect to have a connect() GTK. |
08:19:46 | euantor | Ah, hadn't realised that. It's good to know. I'd imagine it's well documented in that case |
08:20:55 | couven92 | euantor, yes, I think it is... However, isn't Symbol Server still just serving the streams from a pdb? So we would probably need a nim2pdb anyways |
08:20:59 | FromGitter | <Bennyelg> Reading file in nim and chunk it using splitLines takes plantey of time |
08:21:13 | FromGitter | <Bennyelg> 2m rows in 1 minutes this is bad |
08:21:15 | salewski | And GTK's connect is very powerfull, I fear that simple onClick() procs will never be able to replace it. |
08:21:41 | euantor | couven92: I'm not sure, I've only worked with symbol server inside VS and haven't looked at how the technology actually works |
08:22:09 | * | skrylar joined #nim |
08:22:21 | couven92 | yeah, me neither |
08:23:06 | couven92 | but i'll have a look... But my M.Sc. thesis is due in october... so I won't do a lot on that just yet :P |
08:25:25 | euantor | Good luck! |
08:25:35 | couven92 | :) thx! |
08:26:07 | Araq | salewski: I'm not sure what 'connect' does but for now I assume it's a design mistake. ;-) |
08:28:26 | salewski | Araq, connect() with all its variants and many different parameters are a core component of GTK. |
08:29:05 | salewski | I plain C it is not type safe at compile time, higher level wrappers try to provide type |
08:29:17 | salewski | safety at compile time. |
08:30:11 | Araq | if type safety is not available a singe void* environment parameter suffices, you don't need a plethora of signatures |
08:30:12 | salewski | And people comming from C, Ruby, Python and many other languages expect to have a connect(). |
08:30:37 | Araq | I come from Nim, I expect an API that is not full of bullshit |
08:30:53 | Araq | ;-) |
08:31:21 | salewski | But very few people are comming from Nim currently. |
08:31:51 | salewski | NimX or NiGUI may be indeed better concepts. |
08:32:12 | salewski | But for me that are more toys currently. |
08:32:24 | Araq | here is what I would do: |
08:32:46 | salewski | The RED/Rebol GUI is also interesting. But also more a toy. |
08:33:17 | Araq | - create a low level GTK3 wrappers, even keeping the prefixes if they cause so much pain otherwise (gtk3.true() anyone?) |
08:33:22 | salewski | Toy GUIs are nice for programs with small, simple GUI. |
08:33:51 | Araq | - write a high level API on top of that that covers the simple cases/UI elements |
08:34:23 | Araq | that supports Nim's closures etc so that people feel at home |
08:35:10 | salewski | Yes, a more Nim-ish GUI would be the next level. |
08:35:29 | skrylar | i have a little bit of fltk working so far. |
08:35:52 | skrylar | although i am not sure how "safe" the way i used to wrap closures was with rawenv and just shoving them in to C. it worked when i did it, but it felt like the GC might not know to keep those envs alive |
08:36:22 | salewski | But for now my goal is that gintro module covers all that what for exapmle Ruby-GTK and many other wrappers cover. |
08:38:05 | * | endragor quit (Ping timeout: 255 seconds) |
08:38:16 | couven92 | on the computer I am using right now, I only have version 0.17.0 installed, shouldn't nimble complain about me not fulfilling the `requires "nim >= 0.17.1"` in my nimble? |
08:38:53 | FromGitter | <Grabli66> I use Vala, and it's C# like language for gobject, for writing GTK applications. And in this language you dont need to use "connect" directly, there are "signals"(event handlers) for all widgets like clicked, pressed, activate, etc. |
08:41:02 | * | sleepyqt joined #nim |
08:41:21 | dom96 | couven92: it should |
08:41:33 | couven92 | it doesn't |
08:41:41 | dom96 | are you sure? What are you running? |
08:41:54 | salewski | Yes, I will look at Vala API again -- I had some years ago already. But of course Vala is very death. |
08:42:15 | couven92 | ah! I am running a task defined in the nimble file that invokes the compiler through exec |
08:42:35 | euantor | It looks like there may be a post needing moderation here: https://forum.nim-lang.org/t/2453/3 - for some reason it's near the top of the forum even though the last visible post was 2016 |
08:42:43 | skrylar | vala is being used by elementaryos, so i wouldn't say it's that dead. |
08:42:55 | skrylar | although it's life is heavily constrained due to being shackled to gtk and thus linux |
08:43:02 | euantor | Budgie was using Vala but they've dropped it |
08:43:25 | euantor | They said that it was too slow for them |
08:43:34 | skrylar | i would be surprised. it compiles to C |
08:43:49 | skrylar | although gtk itself has gotten quite bogus in its complexity |
08:44:16 | salewski | Rust has an active and not too tiny GTK community. But I had not the time to follow it curently. |
08:44:45 | euantor | skrylar: I believe the reason they found it was slow is that it uses dynamic dispatch nearly everywhere |
08:44:54 | skrylar | i once wrote a little character sheet application in Fltk, C99 and Luajit. The entire application was maybe 900k or less memory for a GUI and the database (which was in luajit.) A much less complete version in wx on windows took something like 10+mb with no data. I don't know what GTK is up to |
08:45:00 | euantor | https://github.com/budgie-desktop/budgie-desktop/issues/501 |
08:46:17 | skrylar | pushed some bugfixes to rfc3339 |
08:47:29 | FromGitter | <mratsim> @euantor that's some serious rant |
08:47:40 | euantor | Yep, just a little |
08:47:49 | euantor | > At the end of the day, it's not a real programming language. It's translated into C and then the compiler does the real work |
08:48:13 | euantor | Perhaps Vala doesn't generate as good C code as Nim does :) |
08:48:40 | skrylar | is any code that relies on glib good :^) |
08:49:16 | skrylar | anyway |
08:49:58 | skrylar | I had no real issues with Vala, when I used it. I should say I had no issues that were not to be expected from a language of its community size. |
08:50:12 | skrylar | It had no macros, and thus I still had to resort to external tools to eliminate boilerplate |
08:52:29 | skrylar | I was looking at some raytracing/raymarching stuff and intel has this superset of c that compiles to SIMD code. and i wondered how much of that is a total waste of time, because they don't have a macro system |
08:54:35 | skrylar | the tl;dr is that vala slowness is likely because like most languages, they don't allow high power concepts in order to prevent fools from shooting themselves. which leads to a lot of abstractions being paid at runtime to cover up an inability to just slap syntax sugar on basic stuff |
08:54:41 | FromGitter | <mratsim> There was a blog about building a raytracer in Nim from scratch btw |
08:54:49 | skrylar | i might do that |
08:54:55 | skrylar | i have the raymarching paper for distance field geometry |
08:55:56 | FromGitter | <mratsim> Well Haskell probably has lots of high level concepts (and Idris too) but it's not that fast |
08:56:15 | FromGitter | <mratsim> And template Haskell is unusable/undocumented |
08:57:36 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
08:58:46 | couven92 | Is it just me or does play.nim-lang.org automatically indent 4 spaces? it drives me crazy :( |
09:00:16 | * | endragor joined #nim |
09:01:10 | * | thomasross quit (Remote host closed the connection) |
09:01:37 | * | thomasross joined #nim |
09:04:53 | FromGitter | <stisa> couven92 it's because it's using python highlighter, Ace doesn't have one for Nim |
09:07:54 | * | scriptum joined #nim |
09:10:06 | * | claudiuinberlin joined #nim |
09:14:06 | couven92 | Hmm... for a bitflags stringify proc: How should I best represent unknwon bit patterns (e.g. if someone sets a reserved bit)? Print all known flags values and then the numeric value? |
09:14:18 | * | salewski quit (Quit: WeeChat 1.9) |
09:17:12 | couven92 | like: for (0b1101).OptionFlags -> `"{ OPT1, OPT2, 16 }"` or rather: `"{ 19 }"` or maybe: `"{ OPT1, OPT2 } (19)"` |
09:17:40 | couven92 | or maybe hex instead of 19? |
09:18:16 | couven92 | (yes, sorry should be 11 instead of 19, my bad) |
09:20:01 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:23:50 | * | claudiuinberlin joined #nim |
09:34:40 | Araq | couven92: just produce something and move on |
09:35:10 | Araq | once you *use* it these questions are usually answered |
09:35:23 | couven92 | Araq :D yeah, I was just cosidering if there were any gotchas here |
09:35:59 | * | Arrrr joined #nim |
09:36:30 | couven92 | but yeah, I decided not to do flags as C# does, so there will be a mix of known flags and the remainder as a numeric at the end... easiest to implement :) |
09:36:45 | Arrrr | Everytime i use templates https://www.youtube.com/watch?v=VvMFhYMVawk |
09:41:10 | * | Arrrr quit (Ping timeout: 255 seconds) |
09:53:41 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:05:46 | * | solitudesf quit (Ping timeout: 264 seconds) |
10:15:35 | * | libman quit (Quit: Connection closed for inactivity) |
10:28:00 | * | Arrrr joined #nim |
10:30:52 | * | dddddd joined #nim |
10:36:38 | couven92 | how to call a macro inside another macro? |
10:38:36 | couven92 | ah, getAst, right? |
10:54:58 | FromGitter | <krux02> couven92: what do you mean? |
10:55:05 | FromGitter | <krux02> you can use a macro in macro code |
10:55:27 | FromGitter | <krux02> you can create a call to a macro in the result ast |
10:56:16 | FromGitter | <krux02> I had problems with getAst, therefore I wrote a two level marco |
10:56:54 | FromGitter | <krux02> the outer macro generates a call to an inner macro |
10:57:12 | couven92 | @krux02, hmm... I am overloading my macro, so the second implementation is a one-liner call to the first with an additional static parameter value |
10:57:14 | FromGitter | <mratsim> or result = quote do |
10:57:46 | FromGitter | <krux02> can you show me the codes |
10:57:59 | FromGitter | <mratsim> @couven92 macro calling macro: https://github.com/mratsim/Arraymancer/blob/master/src/arraymancer/accessors_slicer.nim#L468 |
10:58:00 | FromGitter | <krux02> I have trouble to understand when I don't see what you want |
10:58:22 | couven92 | Hmm... quote looks nice! := |
10:58:51 | couven92 | But anyways, getAst worked for me, so I'll just leave it with that |
10:59:59 | FromGitter | <krux02> well you can make desugar a proc that takes a NimNode |
11:00:25 | FromGitter | <krux02> proc desugar(arg: NimNode): NimNode {.compileTime.} = ... |
11:00:39 | FromGitter | <krux02> no getAst required |
11:00:54 | couven92 | @krux02 yes, I have done that, too... :) |
11:01:10 | couven92 | even marked the proc with {.compileTime.} for good measure :P |
11:02:51 | FromGitter | <krux02> just a tiny hint: you can use newLit(1) instead of newIntLitNode(1) |
11:03:39 | FromGitter | <krux02> I extended newLit, so that it works with all sorts of types (object, tuple, array, seq) |
11:04:34 | FromGitter | <couven92> Yeah, I saw that in my nimsuggest, I've never used new*LitNode |
11:05:15 | FromGitter | <krux02> what editor do you use if I may ask? |
11:05:47 | FromGitter | <krux02> by the way I also had a Tensor project |
11:06:02 | FromGitter | <krux02> I implemented Einstein notation |
11:06:57 | FromGitter | <krux02> t[a,b,c] = t1[a,x,y] * t2[b,x] * t3[c,y] |
11:08:21 | FromGitter | <krux02> but I did not continue |
11:10:07 | FromGitter | <couven92> @krux02 using VS Code |
11:10:36 | FromGitter | <krux02> like many people |
11:10:39 | FromGitter | <krux02> it's dead simple |
11:11:23 | FromGitter | <couven92> Yup, and I usually use full VS for Python, C and especially C# |
11:12:28 | FromGitter | <krux02> I wrote a macro so that I coud writes this ⏎ ⏎ ```s"Your slice start: $a, and stop: $b, or your step: $step ..."``` [https://gitter.im/nim-lang/Nim?at=59cb879c32fc8b7e4046d1f6] |
11:12:57 | FromGitter | <krux02> works beautifully and was just a few lines |
11:13:09 | FromGitter | <krux02> I use it all the time now |
11:13:15 | FromGitter | <couven92> Hmm, like the C# interpolated strings, I like it :) |
11:13:52 | FromGitter | <Bennyelg> @krux02 where can I find the code |
11:14:11 | FromGitter | <krux02> it was more inspired by scrala though |
11:14:13 | FromGitter | <krux02> but yes |
11:14:52 | FromGitter | <krux02> https://github.com/krux02/opengl-sandbox/blob/master/fancyglpkg/macroutils.nim#L85 |
11:15:09 | FromGitter | <couven92> I just finished my macro that makes it easy to create enums and flag types as distinct numeric types for situations where you need that for importc interop |
11:16:06 | FromGitter | <Bennyelg> @krux02 Thanks.! |
11:16:11 | FromGitter | <couven92> https://github.com/couven92/nim-importc-helpers/blob/master/test/timportc_distinct.nim |
11:16:56 | FromGitter | <Jipok> @genotrance What are you trying to do? You can't put breakpoint? |
11:17:10 | FromGitter | <couven92> Auto implements stringify, parse, and all the set procs for bitflag types :) |
11:17:45 | FromGitter | <krux02> there is also this: https://github.com/bluenote10/nim-stringinterpolation |
11:18:06 | FromGitter | <krux02> I just use my version, because it is all I need |
11:22:37 | * | Snircle joined #nim |
11:27:07 | * | Snircle quit (Read error: Connection reset by peer) |
11:27:07 | * | Snircle_ joined #nim |
11:28:03 | FromGitter | <Bennyelg> @krux02 , I am trying to understand the nnkStmtListExpr.newTree, genSym thing I cant find fine explanation even in the docs |
11:31:01 | FromGitter | <Bennyelg> other than that, the macro is great, In my opinion this macro should be a default way for nim to formating strings. with minor changes ⏎ ⏎ 1) f"" instead of s"" ⏎ 2) #{name} instead of ${name} because the simple reason `$ ` is already defined on nim. [https://gitter.im/nim-lang/Nim?at=59cb8bf5b20c64242991befd] |
11:31:21 | FromGitter | <Bennyelg> ====== |
11:31:38 | FromGitter | <Bennyelg> ```#{name} instead of ${name} because the simple reason $ is already defined on nim``` |
11:35:11 | * | skrylar quit (Quit: Leaving) |
11:35:21 | FromGitter | <krux02> nnkStmtListExpr.newTree will be this: |
11:36:08 | FromGitter | <Bennyelg> @krux02 ⏎ I can't echo the outputs , how can I debug this? I would like to learn about all the nnk evaluations as well |
11:36:21 | FromGitter | <krux02> ``(var buffer = "abc"; buffer.add($obj); buffer.add(" ... "); buffer)`` |
11:37:03 | FromGitter | <krux02> well at the end of the macro you can call ``echo result.repr`` |
11:37:09 | FromGitter | <krux02> echo result.treeRepr |
11:37:51 | FromGitter | <krux02> a stmtListExpr is like a statement list, just that it evaluates to the last member of the expression |
11:38:05 | FromGitter | <krux02> sorry I mean the last expression of the stmtList |
11:39:32 | FromGitter | <krux02> and I used gensym, because I had problems with identifier resolution, so I did it manually |
11:40:32 | * | yglukhov quit (Remote host closed the connection) |
11:40:32 | FromGitter | <krux02> genSym is like an identifier, just that you will never accidently find that identifier, when you want to use that symbol it has to be that symbol, an identifier of the same name will not be enough. |
11:41:12 | FromGitter | <Yardanico> Hello Nimers (or Nimistas? wtf) ! |
11:43:33 | dom96 | Nimians, Nimsters, Nimmers |
11:44:26 | FromGitter | <Yardanico> what's the preferred way though? |
11:44:34 | FromGitter | <Yardanico> I like 1st one |
11:45:10 | FromGitter | <Yardanico> Real questions™ |
11:46:59 | couven92 | Yeah, Nimers is nice :) |
11:47:09 | FromGitter | <Bennyelg> Nimmers |
11:47:25 | couven92 | Though I usually open with: Hello #nim! :P (less trouble) |
11:47:50 | FromGitter | <Bennyelg> @krux02 Thanks |
11:51:39 | FromGitter | <genotrance> @Jipok I am going to try it, didn't know the syntax but found it in the manual |
11:52:04 | Arrrr | Nimerians |
11:52:59 | FromGitter | <Jipok> I decided to understand this man's problem. ⏎ https://forum.nim-lang.org/t/2453/3 ⏎ https://gist.github.com/Jipok/8e85c378da5616fec7d6d314754c65c7 ⏎ But all that I have not tried, does not help. Maybe Set type is not the best option? ⏎ https://i.imgur.com/ju6MfOw.png ... [https://gitter.im/nim-lang/Nim?at=59cb911b177fb9fe7e0b2fb4] |
11:53:02 | FromGitter | <Bennyelg> @krux02 ⏎ ⏎ ```result.add(quote do: ⏎ `str`.add(`lit`) ⏎ )``` ⏎ ⏎ What does `quote do:` do [https://gitter.im/nim-lang/Nim?at=59cb911e177fb9fe7e0b2fb8] |
11:54:55 | * | yglukhov joined #nim |
11:56:15 | FromGitter | <Bennyelg> How did you got this diagram @Jipok |
11:56:48 | FromGitter | <Jipok> hotspot - gui for perf |
11:57:11 | FromGitter | <Bennyelg> Great, How Do I install it and run my nim's using it |
11:57:24 | FromGitter | <Jipok> hmm |
11:57:28 | FromGitter | <Jipok> linux? win? |
11:57:40 | FromGitter | <Bennyelg> @Jipok sorry for beign root Is brilliant |
11:57:45 | FromGitter | <Bennyelg> mac, |
11:57:48 | FromGitter | <Bennyelg> linux same same |
11:58:02 | FromGitter | <Jipok> I took it from aur |
11:58:09 | FromGitter | <Jipok> (https://files.gitter.im/nim-lang/Nim/pIAY/___________.png) |
11:58:26 | FromGitter | <Jipok> https://github.com/KDAB/hotspot |
11:59:24 | FromGitter | <Bennyelg> Then, you run the nim code and enter this gui ? |
11:59:27 | * | yglukhov quit (Ping timeout: 248 seconds) |
11:59:45 | FromGitter | <Jipok> https://stackoverflow.com/questions/23200704/install-perf-on-mac |
12:00:53 | FromGitter | <Bennyelg> @Jipok thanks main |
12:00:55 | FromGitter | <Bennyelg> man\ |
12:02:11 | FromGitter | <krux02> quote do simply creates a nim node |
12:02:27 | FromGitter | <krux02> the argument to quote do is parsed as a syntax tree |
12:02:37 | FromGitter | <Jipok> @Bennyelg No. I just compile without --d:release. And then I run hotspot |
12:03:15 | FromGitter | <Jipok> (https://files.gitter.im/nim-lang/Nim/GhsK/___________.png) |
12:04:09 | * | claudiuinberlin joined #nim |
12:04:46 | FromGitter | <Bennyelg> Ic, with osx its problem to install the perf |
12:04:49 | FromGitter | <Bennyelg> i'll dig into |
12:07:37 | FromGitter | <Jipok> I think that in osx there should be profilers |
12:07:43 | * | yglukhov joined #nim |
12:07:44 | * | yglukhov quit (Remote host closed the connection) |
12:08:14 | FromGitter | <Bennyelg> I tried use the "instruments" |
12:08:51 | FromGitter | <Bennyelg> but I try to run the executable nim and I get "cannot open" message |
12:11:21 | FromGitter | <Bennyelg> @krux02 and syntax tree is a tuple of vals ? |
12:11:37 | FromGitter | <mratsim> Instruments works for me on mac |
12:11:48 | * | yglukhov joined #nim |
12:11:48 | * | yglukhov quit (Remote host closed the connection) |
12:12:00 | FromGitter | <mratsim> you need to run the binary produced by nim/gcc |
12:12:04 | FromGitter | <mratsim> clang* |
12:12:07 | FromGitter | <Bennyelg> You choose file > open and then the executable ? |
12:12:24 | FromGitter | <Bennyelg> I need to compile it clang ? what is the default ? |
12:15:09 | FromGitter | <Jipok> @Bennyelg try this http://devdocs.io/nim/estp |
12:16:03 | * | yglukhov joined #nim |
12:16:07 | * | yglukhov quit (Remote host closed the connection) |
12:16:11 | FromGitter | <Jipok> this gives interesting results ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59cb968bb20c642429920585] |
12:16:13 | FromGitter | <mratsim> On mac clang is the default |
12:16:28 | * | yglukhov joined #nim |
12:16:44 | * | yglukhov quit (Remote host closed the connection) |
12:16:48 | FromGitter | <Bennyelg> so I cant import my executable it's carying canot open |
12:17:03 | * | endragor quit (Remote host closed the connection) |
12:17:08 | * | solitudesf joined #nim |
12:17:38 | * | yglukhov joined #nim |
12:18:25 | FromGitter | <mratsim> @benny you just choose your executable and CLI argument here: |
12:18:48 | FromGitter | <mratsim> (https://files.gitter.im/nim-lang/Nim/2iAg/2017-09-27_14-17-28.png) |
12:19:06 | FromGitter | <mratsim> after clicking on Time profiler |
12:19:16 | * | jjido_ joined #nim |
12:20:09 | FromGitter | <mratsim> Then you click on the “Record” icon |
12:20:21 | FromGitter | <mratsim> (https://files.gitter.im/nim-lang/Nim/hvFa/2017-09-27_14-19-53.png) |
12:21:48 | * | yglukhov quit (Ping timeout: 240 seconds) |
12:22:08 | * | jjido quit (Ping timeout: 240 seconds) |
12:25:02 | * | yglukhov joined #nim |
12:25:05 | * | yglukhov quit (Remote host closed the connection) |
12:25:40 | FromGitter | <Bennyelg> @Thomas |
12:26:07 | FromGitter | <Bennyelg> @mratsim thanks |
12:26:43 | * | yglukhov joined #nim |
12:27:43 | FromGitter | <Bennyelg> I tried also to compile it using `nim c --profiler:on --stackTrace:on --threads:on nim_file.nim` and `profile_results.txt` not created |
12:30:53 | * | yglukhov quit (Ping timeout: 246 seconds) |
12:32:28 | FromGitter | <Jipok> import nimprof? |
12:35:23 | FromGitter | <Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59cb9b0bcfeed2eb6557b368] |
12:35:37 | FromGitter | <Bennyelg> some one can explain me what is the bottleneck ? :D |
12:47:31 | FromGitter | <Jipok> strutils.nim: parseChunks |
12:48:31 | FromGitter | <Jipok> which is called from ⏎ csvql_p.nim: parseChunksWrapper ⏎ which is called from ⏎ threadpool.nim: slave [https://gitter.im/nim-lang/Nim?at=59cb9e1f614889d4754612a0] |
12:49:16 | * | Arrrr quit (Ping timeout: 255 seconds) |
12:50:42 | FromGitter | <Jipok> *strutils.nim: parseChunks* takes 31% of the time. |
12:58:48 | * | Arrrr joined #nim |
12:58:48 | * | Arrrr quit (Changing host) |
12:58:48 | * | Arrrr joined #nim |
13:02:57 | * | Arrrr quit (Ping timeout: 248 seconds) |
13:03:25 | * | yglukhov joined #nim |
13:05:16 | FromGitter | <Jipok> *parseChunks* takes 31% of the calls |
13:05:42 | * | jjido_ quit (Ping timeout: 240 seconds) |
13:11:36 | * | ivmachiavelli joined #nim |
13:11:55 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:12:37 | * | PMunch quit (Quit: Leaving) |
13:13:51 | * | jjido joined #nim |
13:15:03 | * | nattefrost joined #nim |
13:22:20 | * | claudiuinberlin joined #nim |
13:23:24 | * | endragor joined #nim |
13:23:55 | * | claudiuinberlin quit (Client Quit) |
13:34:26 | * | claudiuinberlin joined #nim |
13:35:03 | * | couven92 quit (Quit: Client disconnecting) |
13:35:21 | * | gmpreussner quit (Ping timeout: 252 seconds) |
13:46:32 | * | sleepyqt quit (Quit: WeeChat 1.9.1) |
13:52:56 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:54:36 | * | claudiuinberlin joined #nim |
13:57:49 | subsetpark | dom96: choosenim is now waiting for user input, which breaks my deployment scripts :( |
13:58:13 | dom96 | https://github.com/dom96/choosenim/blob/master/.travis.yml#L17 |
13:59:44 | subsetpark | mm, aye... let me see if i can make that a one liner... |
13:59:59 | * | relax joined #nim |
14:00:27 | * | vlad1777d joined #nim |
14:04:35 | subsetpark | `curl https://nim-lang.org/choosenim/init.sh -sSf | bash -s -- -y` works |
14:07:20 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:16:12 | * | claudiuinberlin joined #nim |
14:25:54 | * | ajusa joined #nim |
14:26:34 | ajusa | Hello, I have been trying to use the windows api provided by Winim for a while, and I don't understand what I am doing wrong. I am trying to simulate a keypress in Nim, for a program I am writing. |
14:27:38 | ajusa | My code currently looks like this: https://pastebin.com/KVNGWyvY |
14:28:30 | ajusa | It is failing on ip.u1.ki.wScan = 0, saying that it is attempting to read from nil |
14:33:45 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:37:30 | * | TjYoco joined #nim |
14:38:54 | ajusa | anyone understand winim/windows api? |
14:41:21 | * | nattefrost quit (Remote host closed the connection) |
14:43:13 | * | vlad1777d quit (Remote host closed the connection) |
14:46:04 | * | claudiuinberlin joined #nim |
14:47:09 | * | nsf quit (Quit: WeeChat 1.9) |
14:50:59 | FromGitter | <Jipok> `````` |
14:53:21 | * | ajusa quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
14:54:39 | * | PMunch joined #nim |
14:57:11 | * | jjido_ joined #nim |
14:57:37 | FromGitter | <BigEpsilon> Hello, does anybody have vim working with nimsuggest ? (autocompletion and goto def) |
14:58:34 | * | gmpreussner joined #nim |
14:58:56 | * | jjido quit (Ping timeout: 246 seconds) |
14:59:04 | * | gmpreussner quit (Client Quit) |
15:02:51 | FromGitter | <cabhishek> @BigEpsilon have you tried https://github.com/zah/nim.vim ? |
15:04:16 | * | gmpreussner joined #nim |
15:04:29 | FromGitter | <BigEpsilon> No I'm actually using this https://github.com/baabelfish/nvim-nim |
15:04:36 | TjYoco | I tried getting it to work for 2 days before I just stuck with VSCode |
15:05:08 | FromGitter | <BigEpsilon> That's was my initial solution |
15:05:31 | FromGitter | <BigEpsilon> but i'd love be able to stay in vim |
15:05:53 | TjYoco | VSCode has a pretty decent vim plugin. A lot of the keyboard shortcuts work pretty well |
15:06:39 | FromGitter | <BigEpsilon> Yes I use it, it is pretty good |
15:07:05 | * | Jesin quit (Quit: Leaving) |
15:07:34 | FromGitter | <cabhishek> I couldn't get it working with `baabelfish/nvim-nim` but with `zah/nim.vim ` I atleast got it working where it shows me errors/hints on file save |
15:09:49 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:11:54 | FromGitter | <BigEpsilon> I wish a had time to work on it |
15:13:24 | * | claudiuinberlin joined #nim |
15:15:49 | * | sz0 joined #nim |
15:20:12 | * | Jesin joined #nim |
15:25:28 | Araq | BigEpsilon: what's the status of .reorder: on ? |
15:28:09 | FromGitter | <mratsim> @BigEpsilon zah.vim works fine for me |
15:31:32 | FromGitter | <BigEpsilon> @Araq , I think it is ready for merging. I may change/improve it if I find bugs while writting my opencv wrapper. |
15:31:50 | FromGitter | <BigEpsilon> But for few days I'm still working on c2nim |
15:32:22 | FromGitter | <BigEpsilon> @mratsim , thanks then I'll give it a try |
15:33:13 | * | Trustable joined #nim |
15:34:54 | * | miran joined #nim |
15:36:22 | FromGitter | <mratsim> Pony is not dead https://www.reddit.com/r/programming/comments/72rhzb/open_sourcing_wallaroo_a_fast_scalable_data/ |
15:39:39 | * | Jesin quit (Quit: Leaving) |
15:41:49 | * | libman joined #nim |
15:42:09 | * | TjYoco quit (Quit: Leaving) |
15:46:39 | dom96 | Nice. Always good to have more healthy languages out there. |
15:47:53 | * | Arrrr joined #nim |
15:47:53 | * | Arrrr quit (Changing host) |
15:47:53 | * | Arrrr joined #nim |
15:49:28 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:52:10 | * | Jesin joined #nim |
15:54:33 | Elronnd | mratsim: nice! |
15:57:13 | FromGitter | <cabhishek> @mratsim does goto definition/nimsuggest work in zah.vim for you? |
15:59:56 | FromGitter | <mratsim> Didn't try, I use vim for quickedits on my headless machine but I mainly use VScode on my Mac |
16:00:31 | * | claudiuinberlin joined #nim |
16:00:38 | * | claudiuinberlin quit (Client Quit) |
16:00:48 | FromGitter | <Yardanico> lol, they found the problem! |
16:00:49 | FromGitter | <Yardanico> https://forum.nim-lang.org/t/3198 |
16:01:02 | FromGitter | <Yardanico> this user used tiny c compiler instead of GCC :P |
16:01:09 | FromGitter | <Yardanico> nothin bad though |
16:08:33 | * | Arrrr quit (Ping timeout: 248 seconds) |
16:16:33 | * | relax quit (Ping timeout: 248 seconds) |
16:19:46 | * | couven92 joined #nim |
16:23:18 | * | mahsav2 left #nim (#nim) |
16:24:15 | FromGitter | <Yardanico> also, maybe it would be good to let moderators and admins add "[Solved]" tag to forum post? just make it as a separate button? |
16:37:06 | * | ivmachiavelli quit (Quit: Lost terminal) |
16:41:31 | libman | If only all these obscure native-compiled languages could share more of a common ecosystem, the way JVM languages do. |
16:42:38 | voice_ftp | nvim-nim works fine for me (autocomplete + jump to def) |
16:45:01 | * | mwbrown quit (Ping timeout: 240 seconds) |
16:46:29 | * | mwbrown joined #nim |
16:47:59 | FromGitter | <BigEpsilon> @Araq , I saw your comment on the reorder PR, I'll do the changes once I finish with my c2nim PR |
16:48:50 | FromGitter | <BigEpsilon> I started by just adding parsing of "typedef typename" and I ended up doing the wall nested types thing |
16:48:57 | FromGitter | <BigEpsilon> because every thing is related |
16:55:07 | * | jjido joined #nim |
16:57:25 | FromGitter | <Jipok> (https://files.gitter.im/nim-lang/Nim/uPoH/___________.png) |
16:57:39 | FromGitter | <Jipok> It looks like it should be with a space ⏎ ⏎ `````` [https://gitter.im/nim-lang/Nim?at=59cbd883f7299e8f537c62ee] |
16:58:18 | * | jjido_ quit (Ping timeout: 252 seconds) |
16:58:45 | FromGitter | <Yardanico> well it doesn't matter in nim :) |
16:59:47 | FromGitter | <Yardanico> I think this is a special rule only for strings, but I may be wrong |
17:00:09 | FromGitter | <Yardanico> ```proc test(x: string): auto = 5 ⏎ ⏎ echo test"hello"``` [https://gitter.im/nim-lang/Nim?at=59cbd9197b7d98d30d431e17] |
17:06:06 | * | TjYoco joined #nim |
17:06:42 | * | yglukhov quit (Remote host closed the connection) |
17:09:47 | FromGitter | <Yardanico> @Araq, wow, it's actually very nice that func matches proc when I have a table name: proc |
17:11:19 | * | TjYoco quit (Quit: Leaving) |
17:12:36 | FromGitter | <Yardanico> "func" looks cooler than "proc" :P because it's something neeew |
17:16:27 | * | Snircle_ quit (Quit: Textual IRC Client: www.textualapp.com) |
17:19:00 | * | sz0 quit (Quit: Connection closed for inactivity) |
17:23:50 | * | solitudesf quit (Remote host closed the connection) |
17:29:23 | FromGitter | <cabhishek> Will `func` be an alias to `proc`? Or it introduces new semantics ? |
17:30:25 | FromGitter | <Yardanico> @cabhishek it introduces new semantics |
17:30:41 | FromGitter | <cabhishek> |
17:30:57 | FromGitter | <Yardanico> ? |
17:31:29 | FromGitter | <cabhishek> Why is there a need for it? |
17:31:53 | FromGitter | <Yardanico> write tracking |
17:31:56 | FromGitter | <Yardanico> noSideEffect pragma |
17:32:17 | FromGitter | <Yardanico> you wouldn't be able to overwrite global variable inside of "func" |
17:33:41 | * | nsf joined #nim |
17:59:25 | * | yglukhov joined #nim |
18:04:39 | * | relax joined #nim |
18:12:02 | FromGitter | <mratsim> If func comes with optimization on seq temp variable I’d love it |
18:13:04 | * | yglukhov quit (Remote host closed the connection) |
18:17:33 | FromGitter | <genotrance> Module sph is broken: https://github.com/aidansteele/sph/issues/2 |
18:18:14 | PMunch | cabhishek, the entire point of the "func" keyword is to provide "functions" and those are, from a mathematical (and functional programming) point of view procedures which don't alter any state. This means that given the same input they will always produce the same output. This is practical for many different things :) |
18:20:38 | * | yglukhov joined #nim |
18:21:59 | FromGitter | <Jipok> pure func? |
18:22:17 | PMunch | That's the idea |
18:22:47 | FromGitter | <Jipok> But why? There is noSideEffect pragma |
18:24:07 | PMunch | 1. Few people would care to take the extra time to use noSideEffect, func is easier. 2. Func imposes an even stricter set of limits than noSideEffect |
18:24:17 | * | Ven`` joined #nim |
18:24:44 | * | nsf quit (Quit: WeeChat 1.9) |
18:26:33 | * | yglukhov quit (Remote host closed the connection) |
18:26:42 | Araq | noSideEffect is actually inferred, but 'func' is even more strict |
18:27:01 | Araq | if you know the "ParaSail" programming language, that's where we're heading with 'func' |
18:27:10 | ehmry | and its good because it teaches people the difference between functions and procedures |
18:28:24 | PMunch | Araq, are you planning on adding the extra restrictions as pragmas as well? |
18:28:37 | PMunch | I could see someone wanting to use a noGlobalAccess pragma |
18:29:02 | Araq | mratsim: what optimization do you want? |
18:29:28 | FromGitter | <mratsim> Escape analysis ;) ? |
18:30:18 | FromGitter | <mratsim> basically I want to limit memory allocation when the compiler detects than the original seq can directly be used because no mutation |
18:30:40 | * | Trustable quit (Remote host closed the connection) |
18:31:30 | FromGitter | <mratsim> And for temporary seq, switch to stack arrays when possible |
18:32:50 | * | BigEpsilon quit (Remote host closed the connection) |
18:33:03 | * | BigEpsilon joined #nim |
18:38:10 | * | BigEpsilon quit (Ping timeout: 264 seconds) |
18:40:57 | Araq | the original seq can be used directly because of no mutation? |
18:41:17 | PMunch | Doesn't nim already do that? |
18:41:21 | Araq | that's what you FP guys dream about, is there any compiler that can do this analysis? what is its name? |
18:41:31 | PMunch | Pass a ref if it's not marked with var? |
18:42:54 | FromGitter | <mratsim> Rust? :P |
18:44:49 | FromGitter | <mratsim> well anything that optimize away memory allocation is good. Because uncompressed images in memory take quite a lot of space. |
18:45:25 | Araq | again, what's the name of this optimization? |
18:45:36 | Araq | hint: it's not "deforestation". |
18:46:32 | FromGitter | <mratsim> A compiler can use the results of escape analysis as a basis for optimizations:[1] ⏎ ⏎ Converting heap allocations to stack allocations.[2] If an object is allocated in a subroutine, and a pointer to the object never escapes, the object may be a candidate for stack allocation instead of heap allocation. In garbage-collected languages this can reduce how often the collector needs to run. ⏎ Synchronization elision. |
18:46:32 | FromGitter | ... If an object is found to be accessible from one thread only, operations on the object can be performed without synchronization. ⏎ Breaking up objects or scalar replacement.[3] An object may be found to be accessed in ways that do not require the object to exist as a sequential memory structure. This may allow parts (or ... [https://gitter.im/nim-lang/Nim?at=59cbf208f7299e8f537cffe6] |
18:46:58 | FromGitter | <mratsim> that would be nice, I saw you talking about that in the forum in a couple of threads |
18:47:42 | FromGitter | <mratsim> I don’t need Haskell deforestation, I can use a template instead |
18:48:00 | FromGitter | <mratsim> or term rewriting macro for the common case |
18:48:36 | * | yglukhov joined #nim |
18:48:53 | * | libman quit (Quit: Connection closed for inactivity) |
18:48:56 | FromGitter | <mratsim> ah, something that would be awesome, something like “closure inlining" |
18:49:51 | FromGitter | <mratsim> My code is littered with parts like that: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59cbf2cf210ac269207c6391] |
18:50:17 | * | Vladar quit (Quit: Leaving) |
18:52:49 | * | Ven`` quit (Ping timeout: 248 seconds) |
18:53:27 | * | Ven`` joined #nim |
18:54:51 | Araq | huh? make map2 a template to get the inlining |
18:55:22 | yglukhov | mratsim: can you explain how arraymancer relates to tensorflow to someone who is not concerned? |
18:55:58 | FromGitter | <mratsim> @yglukhov Arraymancer will eat Tensorflow alive :P |
18:56:32 | yglukhov | im sure about that =) |
18:56:50 | yglukhov | so is arraymancer a superset of tensorflow? |
18:57:06 | yglukhov | or planned to be? |
18:57:17 | FromGitter | <mratsim> For now it’s nothing but everything you can do in TF you should be able to do in the future in Arraymancer |
18:57:41 | yglukhov | do you mean the computation graph related things as well? |
18:57:46 | FromGitter | <mratsim> interesting @Araq, I’ll check if it works |
18:58:07 | yglukhov | or is it already done in some way? |
18:58:20 | FromGitter | <mratsim> no, Tensorflow computation graph and also “compiler optimization” will be replaced by term-rewriting macros |
18:58:51 | yglukhov | iirc, tensorflow allows to distribute the graph across several nodes? |
18:59:04 | FromGitter | <mratsim> They need that because otherwise they have to process sequentially the input from the Python interpreter. |
18:59:28 | FromGitter | <mratsim> Nim is compiled so I can use Nim compiler to directly optimize the operations |
18:59:47 | FromGitter | <mratsim> The distributed computing, I have no idea however. we’ll see when we get there |
19:00:04 | dom96 | yglukhov: Is SSPKrolik's nimasset package still being maintained? |
19:00:30 | yglukhov | hrm.. yeah, i thought its main feature is the distributed computing... i may be wrong though |
19:01:01 | yglukhov | dom96: i think thats one of our dependencies =) so... |
19:01:12 | yglukhov | anything wrong with it? |
19:01:17 | * | solitudesf joined #nim |
19:01:25 | FromGitter | <mratsim> The main feature of Tensorflow compared to the other frameworks was its production focus, with possibility to be deployed on ARM devices, and other stuff |
19:01:27 | dom96 | yglukhov: Yeah, I found some small issues |
19:01:33 | dom96 | I'll create a PR eventually :) |
19:01:56 | FromGitter | <mratsim> the thing is, Tensorflow syntax is a pain, you basically have to learn a whole new language |
19:02:07 | * | jjido quit (Ping timeout: 260 seconds) |
19:02:31 | FromGitter | <mratsim> and TF is slower than all other main DL framework. I heard that “Google is not interested in optimizing for less than 100+ GPUs" |
19:03:30 | yglukhov | mratsim: so your marketing is for lower-end users than google? |
19:03:45 | FromGitter | <mratsim> Anyway, TF biggest issue is text analysis, images can be made to all have the same dimensions, text cannot, and TF static graph is a liabilities for that |
19:03:58 | FromGitter | <mratsim> So TF is losing momentum to Facebook’s PyTorch |
19:04:40 | FromGitter | <mratsim> Except that PyTorch is only researched focus. ⏎ ⏎ My marketing would be “bridge the gap between research and production" |
19:04:56 | FromGitter | <mratsim> (got to go for a while) |
19:05:03 | yglukhov | I see. ok, thanks for the insight. thats a strong point, i guess. |
19:05:58 | FromGitter | <Jipok> @yglukhov: How do you find repositories like this? ⏎ https://github.com/jangko/razcal |
19:06:19 | FromGitter | <Yardanico> language:nim :D ? |
19:06:41 | Araq | mratsim: oh that's very cool, what's THE most pressing issue to get this into shape? |
19:06:47 | FromGitter | <Jipok> @Yardanico no |
19:07:55 | yglukhov | Jipok: or follow jangko and check his repos periodically ;) |
19:08:02 | * | jjido joined #nim |
19:09:04 | FromGitter | <Jipok> (https://files.gitter.im/nim-lang/Nim/gJXK/___________.png) |
19:09:06 | FromGitter | <Jipok> what am I doing wrong? |
19:10:01 | FromGitter | <Yardanico> search by updated |
19:11:04 | FromGitter | <Jipok> but why does not it work? |
19:11:20 | FromGitter | <Jipok> (https://files.gitter.im/nim-lang/Nim/njR6/___________.png) |
19:14:36 | * | zachk joined #nim |
19:25:25 | * | ipjk joined #nim |
19:26:47 | * | couven92 quit (Quit: Client disconnecting) |
19:29:23 | * | jjido_ joined #nim |
19:32:11 | * | jjido quit (Ping timeout: 240 seconds) |
19:33:41 | * | jjido_ quit (Ping timeout: 240 seconds) |
19:37:11 | * | Sentreen quit (Ping timeout: 240 seconds) |
19:37:16 | * | jjido joined #nim |
19:38:36 | * | nsf joined #nim |
19:50:25 | * | Sentreen joined #nim |
19:51:32 | * | Snircle joined #nim |
20:01:13 | yglukhov | anyone seen a saml lib in nim? |
20:02:42 | livcd | dom96: hi what is your opinion about criticism from this guy ? https://www.amazon.com/Nim-Action-Dominik-Picheta/dp/1617293431 (maciej's comment) |
20:07:30 | dom96 | Nice feedback. My goal with this book was to teach the reader the language, going through features one by one would be incredibly boring in my opinion. So I decided to teach the reader about the language by showing them how to develop practical software in Nim. |
20:08:13 | dom96 | Nim is a large language, and explaining everything would take a couple of books. |
20:08:49 | dom96 | If the reviewer's aim was to be shown all the features of Nim then they should indeed look at the website. The manual is there for this exact purpose :) |
20:09:18 | * | couven92 joined #nim |
20:09:55 | FromGitter | <zacharycarter> o/ |
20:09:58 | livcd | well the thing is |
20:10:08 | FromGitter | <mratsim> @Araq To bridge the gap between research and production in DL? I guess time, also VTables would be nice, I could do with object Variant + methods though |
20:11:20 | livcd | dom96: that sounds like something you would have expected from in Practice series not in Action |
20:11:30 | livcd | but ok your part 2 is called Nim in Practice :D |
20:14:17 | Araq | mratsim, meh, VTables are slow |
20:14:34 | FromGitter | <mratsim> well that solves my waiting :P |
20:15:03 | FromGitter | <mratsim> I will use object variant |
20:16:07 | FromGitter | <mratsim> btw, the OpenMP `|| ` works great, Arraymancer is faster than PyTorch on CPU now |
20:18:22 | * | adeohluwa joined #nim |
20:18:40 | FromGitter | <zacharycarter> \o/ |
20:19:29 | Araq | nice to hear |
20:23:17 | FromGitter | <mratsim> Is there equivalent to `{.passL: … .}` pragma for clibdir and dynlibOverride? ⏎ ⏎ MKL is a pain to configure (see .nimble file): ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59cc08b57b7d98d30d443c32] |
20:23:39 | FromGitter | <zacharycarter> make your own? |
20:24:01 | * | miran quit (Ping timeout: 248 seconds) |
20:24:08 | FromGitter | <zacharycarter> because I don't think so |
20:24:14 | FromGitter | <mratsim> I thought it was compiler magic since it’s passed to the compiler |
20:24:24 | FromGitter | <zacharycarter> it might be... |
20:24:31 | FromGitter | <zacharycarter> not sure how passL is implemented |
20:24:46 | FromGitter | <zacharycarter> Araq? |
20:25:37 | dom96 | livcd: Maybe. :) |
20:26:02 | dom96 | In general I wanted the book to teach you Nim and not just by showing you code, but by actually getting you to write some. |
20:26:15 | FromGitter | <mratsim> @zacharycarter seems to be implemented here: https://github.com/nim-lang/Nim/blob/82453825e98872862fc0adab536d2dd8c6f24116/compiler/commands.nim#L531 |
20:26:22 | dom96 | (And small code samples don't count :)) |
20:27:35 | FromGitter | <zacharycarter> @mratsim mmph :/ I guess it may not be possible then |
20:27:37 | livcd | dom96: right :-) i am just saying that the series are usualyl divided like this in action (lang features,stdlib ...) in practice -> practical examples |
20:27:55 | FromGitter | <mratsim> or here: https://github.com/nim-lang/Nim/blob/50f62ff44a4c448eceacd2d0f8b8fe8457a2e820/compiler/pragmas.nim#L847 |
20:28:39 | dom96 | livcd: Then I wonder why Manning didn't mind :) |
20:28:53 | FromGitter | <zacharycarter> I almost always find - write a twitter bot examples in manning books |
20:28:57 | FromGitter | <zacharycarter> in action ones I mean |
20:29:06 | FromGitter | <zacharycarter> err write a twitter clone, sorry |
20:30:13 | FromGitter | <zacharycarter> Nim is too young / not well known enough to have a book like C programming language |
20:30:18 | FromGitter | <zacharycarter> it hasn't even hit 1.0 yet |
20:30:25 | livcd | dom96: well i am not surprised ...recently a lot of the books i bought lack the polishing |
20:31:04 | livcd | sadly my go in practice is unreadable on kindle |
20:31:22 | FromGitter | <mratsim> agree, I think Rosetta code is fine for small code sample but to find code with all the blocks put together is tough |
20:31:48 | FromGitter | <zacharycarter> what Nim really needs is a good reference on some of it's more low level features |
20:31:54 | * | claudiuinberlin joined #nim |
20:31:55 | FromGitter | <zacharycarter> so basically Araq needs to write a book now |
20:31:59 | FromGitter | <zacharycarter> :P |
20:32:33 | FromGitter | <mratsim> I think one of the thing that must be promoted is the GC, lots of people see GC, oh can’t be good |
20:32:50 | FromGitter | <zacharycarter> the community is severely lacking in examples dealing with things like threadpools, shared memory, etc |
20:33:03 | FromGitter | <zacharycarter> well the gc has its costs... |
20:33:20 | FromGitter | <zacharycarter> but the fact you can pick and choose your gc alleviates them somewhat |
20:33:44 | FromGitter | <Varriount> I prefer 'Nimster' |
20:33:55 | FromGitter | <zacharycarter> to what @Varriount ? |
20:34:35 | FromGitter | <mratsim> There is this blog with naive and efficient impplementations of a Minecraft something to show how GC may pose problems and how to deal with them in Java C# and also C++ and Rust as no GC example: https://jackmott.github.io/programming/2016/09/01/performance-in-the-large.html |
20:34:37 | livcd | why not nimean |
20:34:42 | livcd | like "nemean" |
20:36:15 | FromGitter | <mratsim> @zacharycarter I found a reference on Nim low level features! From January 2016 though: https://nim-lang.org/docs/intern.html |
20:36:37 | dom96 | I don't think GC is that much of a deal for people |
20:36:40 | FromGitter | <zacharycarter> nice!!! |
20:36:44 | dom96 | plenty of programmers use Go... |
20:36:49 | FromGitter | <zacharycarter> and Java |
20:36:56 | FromGitter | <zacharycarter> and C# |
20:37:07 | FromGitter | <Bennyelg> I use go because I have to in my work |
20:37:15 | FromGitter | <mratsim> I don’t think they choose to use Java and C# :p |
20:37:15 | FromGitter | <Bennyelg> But go is ONE BIG SHIT |
20:37:54 | FromGitter | <zacharycarter> I think there are quite a few worse languages than Go |
20:38:06 | FromGitter | <Bennyelg> GO is the suckest language I ever wrote in |
20:38:13 | FromGitter | <zacharycarter> go write in Java |
20:38:23 | FromGitter | <zacharycarter> you'll appreciate Go about 100x more |
20:38:29 | FromGitter | <Bennyelg> heheh |
20:38:32 | FromGitter | <mratsim> According to Stackoverflow, most programmer would rather use Haskell: https://stackoverflow.blog/2017/02/07/what-programming-languages-weekends/, https://stackoverflow.blog/2017/04/19/programming-languages-used-late-night/ |
20:38:38 | FromGitter | <Bennyelg> I wish we will use NIM sometime |
20:38:43 | FromGitter | <Bennyelg> in the near future |
20:38:44 | FromGitter | <zacharycarter> @Bennyelg just do it |
20:38:48 | FromGitter | <zacharycarter> I did it at carfax |
20:38:55 | FromGitter | <zacharycarter> hopefully I don't get fired |
20:39:08 | FromGitter | <Bennyelg> I work with big company I cant do that |
20:39:08 | FromGitter | <Bennyelg> lol |
20:39:16 | FromGitter | <zacharycarter> I work with carfax - pretty big company |
20:39:22 | FromGitter | <mratsim> If people were using Pony lang at J.P. Morgan you can use Nim in any company ;) |
20:39:33 | FromGitter | <Bennyelg> Gett (Former - gettaxi) |
20:39:36 | FromGitter | <zacharycarter> you have to find a decent use case and just plug it in |
20:39:41 | dom96 | And btw Manning did a good job on my book IMO |
20:39:42 | livcd | you can get Nim big if you hit 1.0 and advertise in china :D |
20:39:54 | livcd | dom96: is it readable on kindle ? :P |
20:40:05 | dom96 | Good question :) |
20:40:11 | dom96 | I hope so |
20:41:10 | FromGitter | <zacharycarter> @Bennyelg find something that doesn't perform well in another language, write it in Nim, profit |
20:41:25 | FromGitter | <Bennyelg> yea |
20:41:36 | FromGitter | <Bennyelg> I still have long way to understand nim |
20:41:45 | FromGitter | <zacharycarter> hell I wrote my apps so that all the user needs is docker to compile them |
20:41:51 | FromGitter | <zacharycarter> they don't even need to install Nim on their machine |
20:41:54 | dom96 | The best way to promote Nim is to A) Write libraries in Nim B) Write blog posts about how awesome Nim was at implementing your libraries, |
20:42:08 | * | FromGitter * zacharycarter needs a blog first |
20:42:10 | dom96 | mratsim: you're already doing A) ;) |
20:42:26 | dom96 | zacharycarter: no you don't, you can write on nim-lang.org |
20:42:48 | livcd | dom96: Go got really big in China just because of 3 things 1) paralellism 2) self contained binaries 3) it's from Google |
20:42:58 | FromGitter | <Bennyelg> you are right libraries - alot of libraries = soft landing to new comers |
20:43:16 | FromGitter | <zacharycarter> or just have Golang's stdlib |
20:43:21 | FromGitter | <zacharycarter> which does everything |
20:44:06 | FromGitter | <zacharycarter> @dom96 - true - do you think a post about my experience with AWS lambda and Nim would be a good one? |
20:44:09 | yglukhov | speaking of which... anyone willing to do SAML impl? =)) |
20:44:38 | FromGitter | <Varriount> SAML? |
20:44:47 | dom96 | zacharycarter: Sure :) |
20:44:54 | yglukhov | https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language |
20:45:06 | yglukhov | single sign on |
20:45:44 | yglukhov | wanna kickstart a new internal service in our company... |
20:45:58 | FromGitter | <mratsim> I don’t want to touch that … That’s one of the best way to get a project delayed :P |
20:46:53 | dom96 | Perfect excuse to make PRs for Nim https://github.com/blog/2433-celebrate-open-source-this-october-with-hacktoberfest |
20:49:18 | dom96 | 4 PRs = free t-shirt :) |
20:50:11 | FromGitter | <mratsim> I’m ready to add 4 tests to Nim codebase :P |
20:51:18 | dom96 | Go for it :) |
20:53:38 | FromGitter | <mratsim> We’ll see, I would really like to tackle the inline iterator chaining issue |
20:54:19 | subsetpark | dom96: what would it take to put https://github.com/nim-lang/Nim/pull/6404 in the ground? |
20:55:29 | dom96 | I'll merge. I gave people a chance to complain if it's wrong :) |
20:56:23 | subsetpark | :) |
20:56:26 | * | endragor_ joined #nim |
20:57:35 | * | endragor quit (Ping timeout: 248 seconds) |
20:57:39 | FromGitter | <mratsim> How does that relates to Areq’s “op” a.k.a. Option types done right? |
20:57:58 | subsetpark | wazzat? |
20:58:27 | FromGitter | <mratsim> https://github.com/nim-lang/Nim/commit/f7f3a25be8614ca046166194d19c6941b423a941 |
20:59:53 | FromGitter | <Yardanico> It's not usable yet afaik |
21:00:23 | * | endragor joined #nim |
21:00:31 | FromGitter | <mratsim> I think it would be very useful for NimData to represent missing values |
21:01:18 | * | endragor_ quit (Read error: Connection reset by peer) |
21:01:20 | subsetpark | Is the idea to make option-checking statically analyzable? |
21:02:26 | * | PMunch quit (Quit: leaving) |
21:05:02 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
21:06:49 | * | yglukhov quit (Remote host closed the connection) |
21:08:53 | * | nul joined #nim |
21:09:01 | * | nul left #nim (#nim) |
21:09:15 | * | nul joined #nim |
21:09:22 | dom96 | yeah... Araq told me about this and I still dislike it. |
21:09:30 | dom96 | So now we'll have two option types :\ |
21:09:55 | Xe | dom96: at the very least that choice gives uses options :D |
21:09:58 | Xe | users* |
21:09:58 | * | nul left #nim (#nim) |
21:10:01 | FromGitter | <mratsim> wy not deprecate the other? |
21:10:08 | * | dom96 slow claps |
21:11:02 | * | relax quit (Ping timeout: 260 seconds) |
21:12:14 | * | endragor_ joined #nim |
21:12:43 | * | endragor quit (Read error: Connection reset by peer) |
21:12:57 | * | solitudesf quit (Ping timeout: 252 seconds) |
21:23:11 | * | rusua quit (Quit: Connection closed for inactivity) |
21:32:31 | * | endragor joined #nim |
21:33:13 | * | endragor_ quit (Read error: Connection reset by peer) |
21:35:02 | dom96 | ugh, I wish whoever created basic2d/basic3d just used an array for these matrices. |
21:36:10 | * | yglukhov joined #nim |
21:40:47 | dom96 | Interesting exploit in Rust. Is Nim's macro system vulnerable to this? http://blog.community.rs/underhanded/2017/09/27/underhanded-serejkaaa512-submission1.html |
21:41:17 | dom96 | Hrm, doesn't seem likely. |
21:41:47 | dom96 | But I do find it surprising that you can override macros in Rust with no error message! |
21:52:11 | * | plexigras quit (Ping timeout: 240 seconds) |
21:57:22 | * | Ven`` quit (Ping timeout: 264 seconds) |
22:11:36 | * | jsgrant quit (Read error: Connection reset by peer) |
22:12:16 | * | skrylar joined #nim |
22:12:30 | * | jsgrant joined #nim |
22:20:49 | skrylar | you know |
22:20:56 | skrylar | if fltk wasn't ugly it would be nearly perfect |
22:21:12 | skrylar | also this terminal is borked, brb |
22:21:13 | * | skrylar quit (Quit: WeeChat 1.9) |
22:22:23 | * | skrylar joined #nim |
22:32:52 | * | libman joined #nim |
22:41:48 | * | m712 quit (Ping timeout: 240 seconds) |
22:43:47 | * | m712 joined #nim |
22:49:12 | * | m712 quit (Ping timeout: 252 seconds) |
22:49:15 | * | gokr quit (Ping timeout: 246 seconds) |
22:49:46 | * | Jesin quit (Quit: Leaving) |
22:55:51 | * | m712 joined #nim |
23:00:38 | * | nsf quit (Quit: WeeChat 1.9) |
23:07:27 | skrylar | you can get some weird looking asts in macros |
23:07:54 | skrylar | worked on that finite state machine macro for a little bit, noticed things like how nim parses foo(bar, baz: thing) |
23:08:16 | skrylar | outside of a proc definition it will recognize that, but you can't use semicolons inside the ()'s or it breaks |
23:12:17 | skrylar | i'm torn between having an explicit "self" parameter that has to be part of a message definition, which makes it obvious how a proc is calling back to its own state machine, vs. injecting one because having explicit self is a waste of space in this context |
23:16:19 | skrylar | anyway will work on it more tomorrow |
23:16:30 | skrylar | know a lot of people don't really care about FSM generators but i've always found them super productive |
23:25:12 | * | Jesin joined #nim |
23:25:30 | * | skrylar quit (Ping timeout: 252 seconds) |
23:40:21 | * | kunev quit (Ping timeout: 252 seconds) |
23:40:41 | * | skrylar joined #nim |
23:44:38 | * | skrylar quit (Remote host closed the connection) |
23:44:54 | * | skrylar joined #nim |
23:46:56 | * | ipjk quit (Read error: Connection reset by peer) |
23:49:01 | * | skrylar quit (Ping timeout: 240 seconds) |