<< 27-09-2017 >>

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:29def-pri-pubheyas
00:35:25*Demos joined #nim
00:35:42*Demos quit (Client Quit)
00:43:03FromGitter<krux02> yglukhov, are you there? where do you have portable_gl?
00:43:12FromGitter<krux02> I can't find it in rod
00:49:14FromGitter<barcharcraz> wowah does nim compile without any dependencies on any headers now?
00:50:11FromGitter<krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/neuralnetwork.gif
00:50:39FromGitter<barcharcraz> I did a koch boot --cc:clang on windows and everything worked
00:50:40FromGitter<barcharcraz> how
00:50:42FromGitter<barcharcraz> why
00:51:00FromGitter<krux02> maybe nim comes with dependencies on windows?
00:51:03FromGitter<krux02> I don't know
00:51:09FromGitter<barcharcraz> I got it from github
00:51:13FromGitter<barcharcraz> so like idk
00:51:24FromGitter<krux02> no github is without dependencies
00:51:25FromGitter<barcharcraz> and none of the windows headers are in my INCLUDE
00:51:35FromGitter<barcharcraz> yeah see that's what I thought
00:51:51FromGitter<barcharcraz> and yet
00:52:02FromGitter<krux02> what do you think about the trippy gif animation?
00:52:17FromGitter<barcharcraz> pretty much sums up my reaction to anything working on windowws
00:55:27FromGitter<barcharcraz> oh I had patched thing
00:55:36FromGitter<barcharcraz> still not sure how it found my windows headers
00:58:32FromGitter<barcharcraz> does the pure directory in the stdlib actually have any meaning these days?
01:07:39FromGitter<krux02> it has intention I think
01:15:13*Ven`` quit (Ping timeout: 248 seconds)
01:20:01FromGitter<barcharcraz> but like nativesockets and stuff is in there
01:20:06FromGitter<barcharcraz> which .... is not pure
01:21:31FromGitter<barcharcraz> what toolchains does CI have>
01:21:39*vlad1777d quit (Ping timeout: 252 seconds)
01:29:43FromGitter<barcharcraz> I wanna submit these patches but I don't want to break mingw, icl, or vcc
01:31:36FromGitter<barcharcraz> huh clang finds windows headers automatically
01:32:06FromGitter<barcharcraz> so clang+windows kit + minor patches -> full MSVC ABI toolchain with gcc command syntax
01:34:00FromGitter<barcharcraz> and no need to change your path either
01:34:56FromGitter<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:11FromGitter<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:52FromGitter<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:40Marakis 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:45Marakanyone? 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:50FromGitter<Yardanico> Try to add "-d:nodejs"
04:11:16FromGitter<Yardanico> But anyway you'll need to write some JS code by hand
04:11:46FromGitter<Yardanico> Ah, this project would be hard to port to JS
04:11:56FromGitter<Yardanico> Why do you want JS output?
04:13:27*dhalinar quit (Ping timeout: 246 seconds)
04:20:03MarakFromGitter: Hello. The command I was running was: `nim js -d:nodejs -r nimhttpd.nim`
04:20:04FromGitterMarak, I'm a bot, *bleep, bloop*. I relay messages between here and https://gitter.im/nim-lang/Nim
04:20:10Marakerrr
04:21:07MarakYardanico, 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:33MarakI 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:55MarakI'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:39MarakI'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:03Araqyes
05:07:43Marakthanks
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:26Marakshould 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:31FromGitter<mratsim> This could be a good place to start Nim conquest of Wikipedia: https://en.m.wikipedia.org/wiki/Concept_(generic_programming)
06:02:52AraqMarak: 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:51FromGitter<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:10AraqI think so, yes
06:18:01Araqhttps://github.com/Araq/ormin/blob/master/examples/forumproto.nim what do you think?
06:18:58FromGitter<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:11EthecoSweet Nim in Action ordered, can't wait to give it a read
06:20:22Ethecohopefully let me understand Nim properly :D
06:21:56Araq37 lines of the protocol description produce 500 lines of optimized SQL prepared statements plus the message passing between client and server
06:26:02FromGitter<ephja> looks interesting
06:34:13*nsf joined #nim
06:38:00FromGitter<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:10FromGitter<ephja> damn, we only have half the amount of stars
06:48:46FromGitter<Bennyelg> ornim tends to be amazing
06:48:53FromGitter<Bennyelg> @mratsim thanks
06:50:59FromGitter<ephja> reminds me of Conky, but I dunno if 'Glances' is interactive
06:51:48FromGitter<mratsim> that doesn’t work? ⏎ ⏎ ```when defined(native): ⏎ {.passC: "-march=native”.}``` [https://gitter.im/nim-lang/Nim?at=59cb4a847b7d98d30d3fa0f5]
06:54:30FromGitter<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:02FromGitter<Varriount> How about someone makes a proper task manager for *nix systems, rather than creating 20 different variations of top?
07:09:09Araqvarriount: 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:54libmanThen there would be 21 variations of `top`...
07:23:39*claudiuinberlin joined #nim
07:26:31libmanWe 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:33FromGitter<Grabli66> May be should write Nim OS ? :)
07:52:28libmanWhen 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:20ArrrrToo 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:48salewskiAraq, is it really that hard to provide someting like a "ThisModule" symbole?
08:08:23Araqno
08:08:29salewskiFrom 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:03salewskiwitzh module name, so that I have for module test4 test4.activate() in example code.
08:09:52salewskiAraq, when it is not that hard, than such thing would be really nice to have.
08:10:31salewskiAnd no, I can not provide a PR for that. If I could, I would have done.
08:11:52AraqThisModule.activate is still not really good though
08:13:12salewskiI think some languages may use self.active().
08:13:29AraqI think your wrapper needs some refactorings :P
08:14:13salewskiYes, of course. At leat very mach cleanup.
08:14:46euantorcouven92: 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:46euantornot already there)
08:15:27salewskiBut I have no idea to improve the connect macro further currently.
08:15:58Araqeuantor: I looked at it and barfed, but don't let that stop you
08:16:07salewskiRewriting using AST API yes. But that will not change the fact that I have to pass a proc
08:16:28euantorAraq: You know better than me ;) I've only heard about it quite a lot recently, haven't looked at the actual spec
08:16:31salewskias typed parameter because I have to investigate its parameter list.
08:16:58Araqsalewski: then maybe 'connect' is the wrong idea?
08:17:01salewskiAnd for passing proc typed I need a module name prefix.
08:17:55Araqbut what's wrong with uiElement.connect(onclick, proc () = ... )
08:18:17Araqpass it an anon proc, no disambiguation cries
08:18:53FromGitter<Bennyelg> Hey guys, anyway to read file inMemory ?
08:18:58Araqeuantor: we adopted Emacs's protocol which came much earlier fwiw
08:19:10salewskiAraq, connect is provided by many wrappers, Ruby for example. I think for manny more languages too.
08:19:33Araq?
08:19:39couven92euantor, 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:39salewskiSo people exspect to have a connect() GTK.
08:19:46euantorAh, hadn't realised that. It's good to know. I'd imagine it's well documented in that case
08:20:55couven92euantor, 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:59FromGitter<Bennyelg> Reading file in nim and chunk it using splitLines takes plantey of time
08:21:13FromGitter<Bennyelg> 2m rows in 1 minutes this is bad
08:21:15salewskiAnd GTK's connect is very powerfull, I fear that simple onClick() procs will never be able to replace it.
08:21:41euantorcouven92: 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:21couven92yeah, me neither
08:23:06couven92but 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:25euantorGood luck!
08:25:35couven92:) thx!
08:26:07Araqsalewski: I'm not sure what 'connect' does but for now I assume it's a design mistake. ;-)
08:28:26salewskiAraq, connect() with all its variants and many different parameters are a core component of GTK.
08:29:05salewskiI plain C it is not type safe at compile time, higher level wrappers try to provide type
08:29:17salewskisafety at compile time.
08:30:11Araqif type safety is not available a singe void* environment parameter suffices, you don't need a plethora of signatures
08:30:12salewskiAnd people comming from C, Ruby, Python and many other languages expect to have a connect().
08:30:37AraqI come from Nim, I expect an API that is not full of bullshit
08:30:53Araq;-)
08:31:21salewskiBut very few people are comming from Nim currently.
08:31:51salewskiNimX or NiGUI may be indeed better concepts.
08:32:12salewskiBut for me that are more toys currently.
08:32:24Araqhere is what I would do:
08:32:46salewskiThe RED/Rebol GUI is also interesting. But also more a toy.
08:33:17Araq- create a low level GTK3 wrappers, even keeping the prefixes if they cause so much pain otherwise (gtk3.true() anyone?)
08:33:22salewskiToy GUIs are nice for programs with small, simple GUI.
08:33:51Araq- write a high level API on top of that that covers the simple cases/UI elements
08:34:23Araqthat supports Nim's closures etc so that people feel at home
08:35:10salewskiYes, a more Nim-ish GUI would be the next level.
08:35:29skrylari have a little bit of fltk working so far.
08:35:52skrylaralthough 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:22salewskiBut 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:16couven92on 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:53FromGitter<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:21dom96couven92: it should
08:41:33couven92it doesn't
08:41:41dom96are you sure? What are you running?
08:41:54salewskiYes, I will look at Vala API again -- I had some years ago already. But of course Vala is very death.
08:42:15couven92ah! I am running a task defined in the nimble file that invokes the compiler through exec
08:42:35euantorIt 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:43skrylarvala is being used by elementaryos, so i wouldn't say it's that dead.
08:42:55skrylaralthough it's life is heavily constrained due to being shackled to gtk and thus linux
08:43:02euantorBudgie was using Vala but they've dropped it
08:43:25euantorThey said that it was too slow for them
08:43:34skrylari would be surprised. it compiles to C
08:43:49skrylaralthough gtk itself has gotten quite bogus in its complexity
08:44:16salewskiRust has an active and not too tiny GTK community. But I had not the time to follow it curently.
08:44:45euantorskrylar: I believe the reason they found it was slow is that it uses dynamic dispatch nearly everywhere
08:44:54skrylari 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:00euantorhttps://github.com/budgie-desktop/budgie-desktop/issues/501
08:46:17skrylarpushed some bugfixes to rfc3339
08:47:29FromGitter<mratsim> @euantor that's some serious rant
08:47:40euantorYep, just a little
08:47:49euantor> 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:13euantorPerhaps Vala doesn't generate as good C code as Nim does :)
08:48:40skrylaris any code that relies on glib good :^)
08:49:16skrylaranyway
08:49:58skrylarI 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:12skrylarIt had no macros, and thus I still had to resort to external tools to eliminate boilerplate
08:52:29skrylarI 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:35skrylarthe 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:41FromGitter<mratsim> There was a blog about building a raytracer in Nim from scratch btw
08:54:49skrylari might do that
08:54:55skrylari have the raymarching paper for distance field geometry
08:55:56FromGitter<mratsim> Well Haskell probably has lots of high level concepts (and Idris too) but it's not that fast
08:56:15FromGitter<mratsim> And template Haskell is unusable/undocumented
08:57:36*claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:58:46couven92Is 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:53FromGitter<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:06couven92Hmm... 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:12couven92like: for (0b1101).OptionFlags -> `"{ OPT1, OPT2, 16 }"` or rather: `"{ 19 }"` or maybe: `"{ OPT1, OPT2 } (19)"`
09:17:40couven92or maybe hex instead of 19?
09:18:16couven92(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:40Araqcouven92: just produce something and move on
09:35:10Araqonce you *use* it these questions are usually answered
09:35:23couven92Araq :D yeah, I was just cosidering if there were any gotchas here
09:35:59*Arrrr joined #nim
09:36:30couven92but 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:45ArrrrEverytime 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:38couven92how to call a macro inside another macro?
10:38:36couven92ah, getAst, right?
10:54:58FromGitter<krux02> couven92: what do you mean?
10:55:05FromGitter<krux02> you can use a macro in macro code
10:55:27FromGitter<krux02> you can create a call to a macro in the result ast
10:56:16FromGitter<krux02> I had problems with getAst, therefore I wrote a two level marco
10:56:54FromGitter<krux02> the outer macro generates a call to an inner macro
10:57:12couven92@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:14FromGitter<mratsim> or result = quote do
10:57:46FromGitter<krux02> can you show me the codes
10:57:59FromGitter<mratsim> @couven92 macro calling macro: https://github.com/mratsim/Arraymancer/blob/master/src/arraymancer/accessors_slicer.nim#L468
10:58:00FromGitter<krux02> I have trouble to understand when I don't see what you want
10:58:22couven92Hmm... quote looks nice! :=
10:58:51couven92But anyways, getAst worked for me, so I'll just leave it with that
10:59:59FromGitter<krux02> well you can make desugar a proc that takes a NimNode
11:00:25FromGitter<krux02> proc desugar(arg: NimNode): NimNode {.compileTime.} = ...
11:00:39FromGitter<krux02> no getAst required
11:00:54couven92@krux02 yes, I have done that, too... :)
11:01:10couven92even marked the proc with {.compileTime.} for good measure :P
11:02:51FromGitter<krux02> just a tiny hint: you can use newLit(1) instead of newIntLitNode(1)
11:03:39FromGitter<krux02> I extended newLit, so that it works with all sorts of types (object, tuple, array, seq)
11:04:34FromGitter<couven92> Yeah, I saw that in my nimsuggest, I've never used new*LitNode
11:05:15FromGitter<krux02> what editor do you use if I may ask?
11:05:47FromGitter<krux02> by the way I also had a Tensor project
11:06:02FromGitter<krux02> I implemented Einstein notation
11:06:57FromGitter<krux02> t[a,b,c] = t1[a,x,y] * t2[b,x] * t3[c,y]
11:08:21FromGitter<krux02> but I did not continue
11:10:07FromGitter<couven92> @krux02 using VS Code
11:10:36FromGitter<krux02> like many people
11:10:39FromGitter<krux02> it's dead simple
11:11:23FromGitter<couven92> Yup, and I usually use full VS for Python, C and especially C#
11:12:28FromGitter<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:57FromGitter<krux02> works beautifully and was just a few lines
11:13:09FromGitter<krux02> I use it all the time now
11:13:15FromGitter<couven92> Hmm, like the C# interpolated strings, I like it :)
11:13:52FromGitter<Bennyelg> @krux02 where can I find the code
11:14:11FromGitter<krux02> it was more inspired by scrala though
11:14:13FromGitter<krux02> but yes
11:14:52FromGitter<krux02> https://github.com/krux02/opengl-sandbox/blob/master/fancyglpkg/macroutils.nim#L85
11:15:09FromGitter<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:06FromGitter<Bennyelg> @krux02 Thanks.!
11:16:11FromGitter<couven92> https://github.com/couven92/nim-importc-helpers/blob/master/test/timportc_distinct.nim
11:16:56FromGitter<Jipok> @genotrance What are you trying to do? You can't put breakpoint?
11:17:10FromGitter<couven92> Auto implements stringify, parse, and all the set procs for bitflag types :)
11:17:45FromGitter<krux02> there is also this: https://github.com/bluenote10/nim-stringinterpolation
11:18:06FromGitter<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:03FromGitter<Bennyelg> @krux02 , I am trying to understand the nnkStmtListExpr.newTree, genSym thing I cant find fine explanation even in the docs
11:31:01FromGitter<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:21FromGitter<Bennyelg> ======
11:31:38FromGitter<Bennyelg> ```#{name} instead of ${name} because the simple reason $ is already defined on nim```
11:35:11*skrylar quit (Quit: Leaving)
11:35:21FromGitter<krux02> nnkStmtListExpr.newTree will be this:
11:36:08FromGitter<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:21FromGitter<krux02> ``(var buffer = "abc"; buffer.add($obj); buffer.add(" ... "); buffer)``
11:37:03FromGitter<krux02> well at the end of the macro you can call ``echo result.repr``
11:37:09FromGitter<krux02> echo result.treeRepr
11:37:51FromGitter<krux02> a stmtListExpr is like a statement list, just that it evaluates to the last member of the expression
11:38:05FromGitter<krux02> sorry I mean the last expression of the stmtList
11:39:32FromGitter<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:32FromGitter<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:12FromGitter<Yardanico> Hello Nimers (or Nimistas? wtf) !
11:43:33dom96Nimians, Nimsters, Nimmers
11:44:26FromGitter<Yardanico> what's the preferred way though?
11:44:34FromGitter<Yardanico> I like 1st one
11:45:10FromGitter<Yardanico> Real questions™
11:46:59couven92Yeah, Nimers is nice :)
11:47:09FromGitter<Bennyelg> Nimmers
11:47:25couven92Though I usually open with: Hello #nim! :P (less trouble)
11:47:50FromGitter<Bennyelg> @krux02 Thanks
11:51:39FromGitter<genotrance> @Jipok I am going to try it, didn't know the syntax but found it in the manual
11:52:04ArrrrNimerians
11:52:59FromGitter<Jipok> I decided to understand this man's problem. ⏎ https://forum.nim-lang.org/t/2453/3https://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:02FromGitter<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:15FromGitter<Bennyelg> How did you got this diagram @Jipok
11:56:48FromGitter<Jipok> hotspot - gui for perf
11:57:11FromGitter<Bennyelg> Great, How Do I install it and run my nim's using it
11:57:24FromGitter<Jipok> hmm
11:57:28FromGitter<Jipok> linux? win?
11:57:40FromGitter<Bennyelg> @Jipok sorry for beign root Is brilliant
11:57:45FromGitter<Bennyelg> mac,
11:57:48FromGitter<Bennyelg> linux same same
11:58:02FromGitter<Jipok> I took it from aur
11:58:09FromGitter<Jipok> (https://files.gitter.im/nim-lang/Nim/pIAY/___________.png)
11:58:26FromGitter<Jipok> https://github.com/KDAB/hotspot
11:59:24FromGitter<Bennyelg> Then, you run the nim code and enter this gui ?
11:59:27*yglukhov quit (Ping timeout: 248 seconds)
11:59:45FromGitter<Jipok> https://stackoverflow.com/questions/23200704/install-perf-on-mac
12:00:53FromGitter<Bennyelg> @Jipok thanks main
12:00:55FromGitter<Bennyelg> man\
12:02:11FromGitter<krux02> quote do simply creates a nim node
12:02:27FromGitter<krux02> the argument to quote do is parsed as a syntax tree
12:02:37FromGitter<Jipok> @Bennyelg No. I just compile without --d:release. And then I run hotspot
12:03:15FromGitter<Jipok> (https://files.gitter.im/nim-lang/Nim/GhsK/___________.png)
12:04:09*claudiuinberlin joined #nim
12:04:46FromGitter<Bennyelg> Ic, with osx its problem to install the perf
12:04:49FromGitter<Bennyelg> i'll dig into
12:07:37FromGitter<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:14FromGitter<Bennyelg> I tried use the "instruments"
12:08:51FromGitter<Bennyelg> but I try to run the executable nim and I get "cannot open" message
12:11:21FromGitter<Bennyelg> @krux02 and syntax tree is a tuple of vals ?
12:11:37FromGitter<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:00FromGitter<mratsim> you need to run the binary produced by nim/gcc
12:12:04FromGitter<mratsim> clang*
12:12:07FromGitter<Bennyelg> You choose file > open and then the executable ?
12:12:24FromGitter<Bennyelg> I need to compile it clang ? what is the default ?
12:15:09FromGitter<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:11FromGitter<Jipok> this gives interesting results ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59cb968bb20c642429920585]
12:16:13FromGitter<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:48FromGitter<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:25FromGitter<mratsim> @benny you just choose your executable and CLI argument here:
12:18:48FromGitter<mratsim> (https://files.gitter.im/nim-lang/Nim/2iAg/2017-09-27_14-17-28.png)
12:19:06FromGitter<mratsim> after clicking on Time profiler
12:19:16*jjido_ joined #nim
12:20:09FromGitter<mratsim> Then you click on the “Record” icon
12:20:21FromGitter<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:40FromGitter<Bennyelg> @Thomas
12:26:07FromGitter<Bennyelg> @mratsim thanks
12:26:43*yglukhov joined #nim
12:27:43FromGitter<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:28FromGitter<Jipok> import nimprof?
12:35:23FromGitter<Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59cb9b0bcfeed2eb6557b368]
12:35:37FromGitter<Bennyelg> some one can explain me what is the bottleneck ? :D
12:47:31FromGitter<Jipok> strutils.nim: parseChunks
12:48:31FromGitter<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:42FromGitter<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:16FromGitter<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:49subsetparkdom96: choosenim is now waiting for user input, which breaks my deployment scripts :(
13:58:13dom96https://github.com/dom96/choosenim/blob/master/.travis.yml#L17
13:59:44subsetparkmm, 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:35subsetpark`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:34ajusaHello, 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:38ajusaMy code currently looks like this: https://pastebin.com/KVNGWyvY
14:28:30ajusaIt 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:54ajusaanyone 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:59FromGitter<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:37FromGitter<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:51FromGitter<cabhishek> @BigEpsilon have you tried https://github.com/zah/nim.vim ?
15:04:16*gmpreussner joined #nim
15:04:29FromGitter<BigEpsilon> No I'm actually using this https://github.com/baabelfish/nvim-nim
15:04:36TjYocoI tried getting it to work for 2 days before I just stuck with VSCode
15:05:08FromGitter<BigEpsilon> That's was my initial solution
15:05:31FromGitter<BigEpsilon> but i'd love be able to stay in vim
15:05:53TjYocoVSCode has a pretty decent vim plugin. A lot of the keyboard shortcuts work pretty well
15:06:39FromGitter<BigEpsilon> Yes I use it, it is pretty good
15:07:05*Jesin quit (Quit: Leaving)
15:07:34FromGitter<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:54FromGitter<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:28AraqBigEpsilon: what's the status of .reorder: on ?
15:28:09FromGitter<mratsim> @BigEpsilon zah.vim works fine for me
15:31:32FromGitter<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:50FromGitter<BigEpsilon> But for few days I'm still working on c2nim
15:32:22FromGitter<BigEpsilon> @mratsim , thanks then I'll give it a try
15:33:13*Trustable joined #nim
15:34:54*miran joined #nim
15:36:22FromGitter<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:39dom96Nice. 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:33Elronndmratsim: nice!
15:57:13FromGitter<cabhishek> @mratsim does goto definition/nimsuggest work in zah.vim for you?
15:59:56FromGitter<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:48FromGitter<Yardanico> lol, they found the problem!
16:00:49FromGitter<Yardanico> https://forum.nim-lang.org/t/3198
16:01:02FromGitter<Yardanico> this user used tiny c compiler instead of GCC :P
16:01:09FromGitter<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:15FromGitter<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:31libmanIf only all these obscure native-compiled languages could share more of a common ecosystem, the way JVM languages do.
16:42:38voice_ftpnvim-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:59FromGitter<BigEpsilon> @Araq , I saw your comment on the reorder PR, I'll do the changes once I finish with my c2nim PR
16:48:50FromGitter<BigEpsilon> I started by just adding parsing of "typedef typename" and I ended up doing the wall nested types thing
16:48:57FromGitter<BigEpsilon> because every thing is related
16:55:07*jjido joined #nim
16:57:25FromGitter<Jipok> (https://files.gitter.im/nim-lang/Nim/uPoH/___________.png)
16:57:39FromGitter<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:45FromGitter<Yardanico> well it doesn't matter in nim :)
16:59:47FromGitter<Yardanico> I think this is a special rule only for strings, but I may be wrong
17:00:09FromGitter<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:47FromGitter<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:36FromGitter<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:23FromGitter<cabhishek> Will `func` be an alias to `proc`? Or it introduces new semantics ?
17:30:25FromGitter<Yardanico> @cabhishek it introduces new semantics
17:30:41FromGitter<cabhishek>
17:30:57FromGitter<Yardanico> ?
17:31:29FromGitter<cabhishek> Why is there a need for it?
17:31:53FromGitter<Yardanico> write tracking
17:31:56FromGitter<Yardanico> noSideEffect pragma
17:32:17FromGitter<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:02FromGitter<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:33FromGitter<genotrance> Module sph is broken: https://github.com/aidansteele/sph/issues/2
18:18:14PMunchcabhishek, 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:59FromGitter<Jipok> pure func?
18:22:17PMunchThat's the idea
18:22:47FromGitter<Jipok> But why? There is noSideEffect pragma
18:24:07PMunch1. 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:42AraqnoSideEffect is actually inferred, but 'func' is even more strict
18:27:01Araqif you know the "ParaSail" programming language, that's where we're heading with 'func'
18:27:10ehmryand its good because it teaches people the difference between functions and procedures
18:28:24PMunchAraq, are you planning on adding the extra restrictions as pragmas as well?
18:28:37PMunchI could see someone wanting to use a noGlobalAccess pragma
18:29:02Araqmratsim: what optimization do you want?
18:29:28FromGitter<mratsim> Escape analysis ;) ?
18:30:18FromGitter<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:30FromGitter<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:57Araqthe original seq can be used directly because of no mutation?
18:41:17PMunchDoesn't nim already do that?
18:41:21Araqthat's what you FP guys dream about, is there any compiler that can do this analysis? what is its name?
18:41:31PMunchPass a ref if it's not marked with var?
18:42:54FromGitter<mratsim> Rust? :P
18:44:49FromGitter<mratsim> well anything that optimize away memory allocation is good. Because uncompressed images in memory take quite a lot of space.
18:45:25Araqagain, what's the name of this optimization?
18:45:36Araqhint: it's not "deforestation".
18:46:32FromGitter<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:32FromGitter... 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:58FromGitter<mratsim> that would be nice, I saw you talking about that in the forum in a couple of threads
18:47:42FromGitter<mratsim> I don’t need Haskell deforestation, I can use a template instead
18:48:00FromGitter<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:56FromGitter<mratsim> ah, something that would be awesome, something like “closure inlining"
18:49:51FromGitter<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:51Araqhuh? make map2 a template to get the inlining
18:55:22yglukhovmratsim: can you explain how arraymancer relates to tensorflow to someone who is not concerned?
18:55:58FromGitter<mratsim> @yglukhov Arraymancer will eat Tensorflow alive :P
18:56:32yglukhovim sure about that =)
18:56:50yglukhovso is arraymancer a superset of tensorflow?
18:57:06yglukhovor planned to be?
18:57:17FromGitter<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:41yglukhovdo you mean the computation graph related things as well?
18:57:46FromGitter<mratsim> interesting @Araq, I’ll check if it works
18:58:07yglukhovor is it already done in some way?
18:58:20FromGitter<mratsim> no, Tensorflow computation graph and also “compiler optimization” will be replaced by term-rewriting macros
18:58:51yglukhoviirc, tensorflow allows to distribute the graph across several nodes?
18:59:04FromGitter<mratsim> They need that because otherwise they have to process sequentially the input from the Python interpreter.
18:59:28FromGitter<mratsim> Nim is compiled so I can use Nim compiler to directly optimize the operations
18:59:47FromGitter<mratsim> The distributed computing, I have no idea however. we’ll see when we get there
19:00:04dom96yglukhov: Is SSPKrolik's nimasset package still being maintained?
19:00:30yglukhovhrm.. yeah, i thought its main feature is the distributed computing... i may be wrong though
19:01:01yglukhovdom96: i think thats one of our dependencies =) so...
19:01:12yglukhovanything wrong with it?
19:01:17*solitudesf joined #nim
19:01:25FromGitter<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:27dom96yglukhov: Yeah, I found some small issues
19:01:33dom96I'll create a PR eventually :)
19:01:56FromGitter<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:31FromGitter<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:30yglukhovmratsim: so your marketing is for lower-end users than google?
19:03:45FromGitter<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:58FromGitter<mratsim> So TF is losing momentum to Facebook’s PyTorch
19:04:40FromGitter<mratsim> Except that PyTorch is only researched focus. ⏎ ⏎ My marketing would be “bridge the gap between research and production"
19:04:56FromGitter<mratsim> (got to go for a while)
19:05:03yglukhovI see. ok, thanks for the insight. thats a strong point, i guess.
19:05:58FromGitter<Jipok> @yglukhov: How do you find repositories like this? ⏎ https://github.com/jangko/razcal
19:06:19FromGitter<Yardanico> language:nim :D ?
19:06:41Araqmratsim: oh that's very cool, what's THE most pressing issue to get this into shape?
19:06:47FromGitter<Jipok> @Yardanico no
19:07:55yglukhovJipok: or follow jangko and check his repos periodically ;)
19:08:02*jjido joined #nim
19:09:04FromGitter<Jipok> (https://files.gitter.im/nim-lang/Nim/gJXK/___________.png)
19:09:06FromGitter<Jipok> what am I doing wrong?
19:10:01FromGitter<Yardanico> search by updated
19:11:04FromGitter<Jipok> but why does not it work?
19:11:20FromGitter<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:13yglukhovanyone seen a saml lib in nim?
20:02:42livcddom96: 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:30dom96Nice 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:13dom96Nim is a large language, and explaining everything would take a couple of books.
20:08:49dom96If 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:55FromGitter<zacharycarter> o/
20:09:58livcdwell the thing is
20:10:08FromGitter<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:20livcddom96: that sounds like something you would have expected from in Practice series not in Action
20:11:30livcdbut ok your part 2 is called Nim in Practice :D
20:14:17Araqmratsim, meh, VTables are slow
20:14:34FromGitter<mratsim> well that solves my waiting :P
20:15:03FromGitter<mratsim> I will use object variant
20:16:07FromGitter<mratsim> btw, the OpenMP `|| ` works great, Arraymancer is faster than PyTorch on CPU now
20:18:22*adeohluwa joined #nim
20:18:40FromGitter<zacharycarter> \o/
20:19:29Araqnice to hear
20:23:17FromGitter<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:39FromGitter<zacharycarter> make your own?
20:24:01*miran quit (Ping timeout: 248 seconds)
20:24:08FromGitter<zacharycarter> because I don't think so
20:24:14FromGitter<mratsim> I thought it was compiler magic since it’s passed to the compiler
20:24:24FromGitter<zacharycarter> it might be...
20:24:31FromGitter<zacharycarter> not sure how passL is implemented
20:24:46FromGitter<zacharycarter> Araq?
20:25:37dom96livcd: Maybe. :)
20:26:02dom96In 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:15FromGitter<mratsim> @zacharycarter seems to be implemented here: https://github.com/nim-lang/Nim/blob/82453825e98872862fc0adab536d2dd8c6f24116/compiler/commands.nim#L531
20:26:22dom96(And small code samples don't count :))
20:27:35FromGitter<zacharycarter> @mratsim mmph :/ I guess it may not be possible then
20:27:37livcddom96: right :-) i am just saying that the series are usualyl divided like this in action (lang features,stdlib ...) in practice -> practical examples
20:27:55FromGitter<mratsim> or here: https://github.com/nim-lang/Nim/blob/50f62ff44a4c448eceacd2d0f8b8fe8457a2e820/compiler/pragmas.nim#L847
20:28:39dom96livcd: Then I wonder why Manning didn't mind :)
20:28:53FromGitter<zacharycarter> I almost always find - write a twitter bot examples in manning books
20:28:57FromGitter<zacharycarter> in action ones I mean
20:29:06FromGitter<zacharycarter> err write a twitter clone, sorry
20:30:13FromGitter<zacharycarter> Nim is too young / not well known enough to have a book like C programming language
20:30:18FromGitter<zacharycarter> it hasn't even hit 1.0 yet
20:30:25livcddom96: well i am not surprised ...recently a lot of the books i bought lack the polishing
20:31:04livcdsadly my go in practice is unreadable on kindle
20:31:22FromGitter<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:48FromGitter<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:55FromGitter<zacharycarter> so basically Araq needs to write a book now
20:31:59FromGitter<zacharycarter> :P
20:32:33FromGitter<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:50FromGitter<zacharycarter> the community is severely lacking in examples dealing with things like threadpools, shared memory, etc
20:33:03FromGitter<zacharycarter> well the gc has its costs...
20:33:20FromGitter<zacharycarter> but the fact you can pick and choose your gc alleviates them somewhat
20:33:44FromGitter<Varriount> I prefer 'Nimster'
20:33:55FromGitter<zacharycarter> to what @Varriount ?
20:34:35FromGitter<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:37livcdwhy not nimean
20:34:42livcdlike "nemean"
20:36:15FromGitter<mratsim> @zacharycarter I found a reference on Nim low level features! From January 2016 though: https://nim-lang.org/docs/intern.html
20:36:37dom96I don't think GC is that much of a deal for people
20:36:40FromGitter<zacharycarter> nice!!!
20:36:44dom96plenty of programmers use Go...
20:36:49FromGitter<zacharycarter> and Java
20:36:56FromGitter<zacharycarter> and C#
20:37:07FromGitter<Bennyelg> I use go because I have to in my work
20:37:15FromGitter<mratsim> I don’t think they choose to use Java and C# :p
20:37:15FromGitter<Bennyelg> But go is ONE BIG SHIT
20:37:54FromGitter<zacharycarter> I think there are quite a few worse languages than Go
20:38:06FromGitter<Bennyelg> GO is the suckest language I ever wrote in
20:38:13FromGitter<zacharycarter> go write in Java
20:38:23FromGitter<zacharycarter> you'll appreciate Go about 100x more
20:38:29FromGitter<Bennyelg> heheh
20:38:32FromGitter<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:38FromGitter<Bennyelg> I wish we will use NIM sometime
20:38:43FromGitter<Bennyelg> in the near future
20:38:44FromGitter<zacharycarter> @Bennyelg just do it
20:38:48FromGitter<zacharycarter> I did it at carfax
20:38:55FromGitter<zacharycarter> hopefully I don't get fired
20:39:08FromGitter<Bennyelg> I work with big company I cant do that
20:39:08FromGitter<Bennyelg> lol
20:39:16FromGitter<zacharycarter> I work with carfax - pretty big company
20:39:22FromGitter<mratsim> If people were using Pony lang at J.P. Morgan you can use Nim in any company ;)
20:39:33FromGitter<Bennyelg> Gett (Former - gettaxi)
20:39:36FromGitter<zacharycarter> you have to find a decent use case and just plug it in
20:39:41dom96And btw Manning did a good job on my book IMO
20:39:42livcdyou can get Nim big if you hit 1.0 and advertise in china :D
20:39:54livcddom96: is it readable on kindle ? :P
20:40:05dom96Good question :)
20:40:11dom96I hope so
20:41:10FromGitter<zacharycarter> @Bennyelg find something that doesn't perform well in another language, write it in Nim, profit
20:41:25FromGitter<Bennyelg> yea
20:41:36FromGitter<Bennyelg> I still have long way to understand nim
20:41:45FromGitter<zacharycarter> hell I wrote my apps so that all the user needs is docker to compile them
20:41:51FromGitter<zacharycarter> they don't even need to install Nim on their machine
20:41:54dom96The 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:10dom96mratsim: you're already doing A) ;)
20:42:26dom96zacharycarter: no you don't, you can write on nim-lang.org
20:42:48livcddom96: Go got really big in China just because of 3 things 1) paralellism 2) self contained binaries 3) it's from Google
20:42:58FromGitter<Bennyelg> you are right libraries - alot of libraries = soft landing to new comers
20:43:16FromGitter<zacharycarter> or just have Golang's stdlib
20:43:21FromGitter<zacharycarter> which does everything
20:44:06FromGitter<zacharycarter> @dom96 - true - do you think a post about my experience with AWS lambda and Nim would be a good one?
20:44:09yglukhovspeaking of which... anyone willing to do SAML impl? =))
20:44:38FromGitter<Varriount> SAML?
20:44:47dom96zacharycarter: Sure :)
20:44:54yglukhovhttps://en.wikipedia.org/wiki/Security_Assertion_Markup_Language
20:45:06yglukhovsingle sign on
20:45:44yglukhovwanna kickstart a new internal service in our company...
20:45:58FromGitter<mratsim> I don’t want to touch that … That’s one of the best way to get a project delayed :P
20:46:53dom96Perfect excuse to make PRs for Nim https://github.com/blog/2433-celebrate-open-source-this-october-with-hacktoberfest
20:49:18dom964 PRs = free t-shirt :)
20:50:11FromGitter<mratsim> I’m ready to add 4 tests to Nim codebase :P
20:51:18dom96Go for it :)
20:53:38FromGitter<mratsim> We’ll see, I would really like to tackle the inline iterator chaining issue
20:54:19subsetparkdom96: what would it take to put https://github.com/nim-lang/Nim/pull/6404 in the ground?
20:55:29dom96I'll merge. I gave people a chance to complain if it's wrong :)
20:56:23subsetpark:)
20:56:26*endragor_ joined #nim
20:57:35*endragor quit (Ping timeout: 248 seconds)
20:57:39FromGitter<mratsim> How does that relates to Areq’s “op” a.k.a. Option types done right?
20:57:58subsetparkwazzat?
20:58:27FromGitter<mratsim> https://github.com/nim-lang/Nim/commit/f7f3a25be8614ca046166194d19c6941b423a941
20:59:53FromGitter<Yardanico> It's not usable yet afaik
21:00:23*endragor joined #nim
21:00:31FromGitter<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:20subsetparkIs 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:22dom96yeah... Araq told me about this and I still dislike it.
21:09:30dom96So now we'll have two option types :\
21:09:55Xedom96: at the very least that choice gives uses options :D
21:09:58Xeusers*
21:09:58*nul left #nim (#nim)
21:10:01FromGitter<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:02dom96ugh, I wish whoever created basic2d/basic3d just used an array for these matrices.
21:36:10*yglukhov joined #nim
21:40:47dom96Interesting 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:17dom96Hrm, doesn't seem likely.
21:41:47dom96But 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:49skrylaryou know
22:20:56skrylarif fltk wasn't ugly it would be nearly perfect
22:21:12skrylaralso 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:27skrylaryou can get some weird looking asts in macros
23:07:54skrylarworked on that finite state machine macro for a little bit, noticed things like how nim parses foo(bar, baz: thing)
23:08:16skrylaroutside of a proc definition it will recognize that, but you can't use semicolons inside the ()'s or it breaks
23:12:17skrylari'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:19skrylaranyway will work on it more tomorrow
23:16:30skrylarknow 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)