<< 13-07-2017 >>

00:01:37*smt quit (Ping timeout: 248 seconds)
00:18:25*couven92 quit (Quit: Client Disconnecting)
00:20:47*v17d quit (Remote host closed the connection)
00:29:04*v17d joined #nim
00:30:43*adeohluwa joined #nim
00:34:54*gokr quit (Quit: Leaving.)
00:43:16*girvo joined #nim
00:44:52*v17d quit (Remote host closed the connection)
00:45:01Demos[m]that out of date flagging is a good idea
00:45:28Demos[m]my package scripts have a mode that goes and looks at rss feeds/github/random html for a new release
00:45:37Demos[m]but that flag may be a better plan
00:45:51Demos[m]although it relies on people actually using your code
00:48:03*girvo quit (Ping timeout: 260 seconds)
00:52:49*Jesin quit (Quit: Leaving)
00:54:22*Jesin joined #nim
00:59:11*Jesin quit (Client Quit)
01:27:16*chemist69 quit (Ping timeout: 276 seconds)
01:27:18*yglukhov joined #nim
01:31:35*yglukhov quit (Ping timeout: 240 seconds)
01:38:17*def-pri-pub joined #nim
01:40:33*chemist69 joined #nim
01:44:01*girvo joined #nim
01:48:37*girvo quit (Ping timeout: 240 seconds)
02:35:52*sz0 quit (Quit: Connection closed for inactivity)
02:43:31*NimBot joined #nim
02:44:50*girvo joined #nim
02:49:28*girvo quit (Ping timeout: 246 seconds)
03:04:46*girvo joined #nim
03:20:22*adeohluwa quit (Quit: Connection closed for inactivity)
03:21:20*Snircle_ quit (Quit: Textual IRC Client: www.textualapp.com)
03:53:17*vendethiel joined #nim
03:58:46*pilne quit (Quit: Quitting!)
04:25:04*def-pri-pub quit (Quit: leaving)
04:34:37*vendethiel- joined #nim
04:36:07*vendethiel quit (Ping timeout: 255 seconds)
04:40:42*Vladar joined #nim
04:43:56*vendethiel- quit (Ping timeout: 260 seconds)
04:44:19*vendethiel joined #nim
04:47:36*skrylar joined #nim
04:58:12*skrylar quit (Quit: My iMac has gone to sleep. ZZZzzz…)
04:58:52*vendethiel quit (Ping timeout: 260 seconds)
05:15:53*skrylar joined #nim
05:21:58*salewski joined #nim
05:22:54salewskiSorry, have still no real idea why nimble publish failed for me.
05:22:57salewskihttps://forum.nim-lang.org/t/3043
05:23:40salewskiI have a github account of course, but did never pull requests before.
05:24:25salewskiGoogling for "Permission denied (publickey)" gives me some hints, but
05:24:57salewskiI dont know if I really have to follow that advises or if I simple dis something
05:26:11salewskiwrong with "nimble publish". I clicked on the "repo" check button on github page.
05:26:39salewskiHave to go, bye.
05:26:42*salewski quit (Client Quit)
05:35:47*nsf joined #nim
05:40:51*arnetheduck joined #nim
05:41:36Demos[m]oh my gosh! that's really exciting
05:41:59Demos[m]I'd actually love to pick your brain about gobject-introspection
05:43:06Demos[m]fyi I think you can simply open a PR to the nimble packages repo. ALthough it's been at least 4 years since I've published a package
05:43:37Demos[m]tfw you email the maintainer of a broken package and find out it's you
05:46:36Demos[m]also I'd remove the paragraph about shit windows support. don't point people away from your library!
05:46:50Demos[m]Also I'd argue that "native look and feel" means nothing on the desktop
05:46:58Demos[m]except maybe on OSX
05:48:50*Guest3721 is now known as myp
05:56:36Demos[m]also gtk windows support is hopefuly getting better with the meson migration
05:59:19FromGitter<mratsim> So currently the cross platform framework with best support is GTK? I hate the GTK file dialog box on Windows (think GIMP) it’s so alien
06:01:12Demos[m]Gtk-FileChooserNative
06:01:44Demos[m]so like gtk is cross platform in the sense of looking the same on every platform
06:02:46Demos[m]:D
06:03:30Demos[m]file choosers are one of the only real native bits that people actually use anymore
06:16:48FromGitter<Varriount> That and title bars
06:17:02Demos[m]huh?
06:17:14Demos[m]the client side decorations thing?
06:17:20FromGitter<Varriount> The things you use to move windows about
06:17:37Demos[m]yeah those are not native
06:17:57Demos[m]but then again both windows and osx seem to be moving toward client side decorationsd
06:18:08Demos[m]and it's a lot more elegant, the window system becomes just the compositor
06:18:39skrylarpeople do care about looking native on a platform, it's just that a lot of companies don't care about their customers opinoins 8)
06:18:49Demos[m]I agree
06:19:01Demos[m]but that's a job for good themes, not actually using native widgets
06:19:25Demos[m]mostaly because espically on windows the "native" win32 widgets don't actually look that native
06:19:34FromGitter<Varriount> In the past, it hasn't been so much that GTK et al have non-standard themes, it's that the standard themes have been ugly
06:19:53Demos[m]yes
06:20:13Demos[m]recently a gtk patch landed that vastly improved the windows theme
06:20:25Demos[m]and the gtk theme engine has been evolving to be actually good
06:21:05FromGitter<Varriount> I wonder if part of it is related to the 'uncanny valley' effect.
06:21:18Demos[m]maybe
06:21:27FromGitter<Varriount> Is it more jarring to have a gui theme that looks *almost* like the system theme, but not quite?
06:21:47FromGitter<mratsim> I’m not really fond of the custom title bar/window theme of stuff like intel driver or those antivirus. I prefer to have an unified look on the platform.
06:21:49Demos[m]well on windows every theme ever is like that
06:22:13Demos[m]esp because of how controls versioning works
06:22:15FromGitter<Varriount> @mratsim Alas, those days appear to be behind us.
06:23:04Demos[m]idk I think what users really want is something that looks good
06:23:43Demos[m]also I think the most cross platform toolkit may be tk
06:23:57Demos[m]for simple guis it's pretty great
06:24:07*arnetheduck quit (Remote host closed the connection)
06:24:15FromGitter<Varriount> What about wx?
06:24:22Demos[m]wx is very complex
06:24:57Demos[m]wx arguable looks worse than gtk and it's abi is much harder to actually reason about
06:25:10FromGitter<mratsim> the wxnim seemed simple. I never developped GUI, developping numerical stuff seems simpler :p
06:25:11Demos[m]since it's all under a few layers of undocumented preprocesosr stuff
06:25:54Demos[m]wxnim uses {.header.}
06:26:19Demos[m]ngtk does not
06:26:57Demos[m]also wx does not really have secure funding
06:27:25Demos[m]and again, imo the whole premise of using native widgets is .... strange
06:28:16FromGitter<mratsim> There is a post of johnnovak where he explored GUI options: http://blog.johnnovak.net/2016/05/29/cross-platform-gui-trainwreck-2016-edition/
06:28:30*salewski joined #nim
06:29:22FromGitter<matrixbot> `RayoGundead` it's like the only option is to make interfaces for each platform
06:29:28salewskiWell, I gave some remarks about GTK cross platform support at the beginning of the gintro README.
06:30:13salewskiGTK is currently still fine for Linux, but support for other OS is not that good.
06:30:56Demos[m]does that article talk at all about gtk3?
06:31:10salewskiFor basic, easy to install GUIs NiGui, nimx or libui and such may better, but I never tried them.
06:31:14Demos[m]gtk2 was released in like 2010 or something and is indeed pretty bad
06:31:28Demos[m]libui looks in danger of being abandoned
06:31:51Demos[m]it would be like trying to use qt3
06:32:11Demos[m]sorry qt 4.6.3
06:32:43skrylarnott familiar with nigui or nimx
06:32:54skrylarcurrently doing a thing with libui. it's okay, no toolbar support though
06:33:07salewskiMy GObject-Introspection based bindings currently support only GTK3
06:33:38salewskiGTK2 would be possible to, GTK4 will be supported sooon when GTK4 is more stable.
06:33:59Demos[m]wait does gi support gtk2?
06:34:49salewskiGood question -- I think yes, but I was never really interested in old GTK2.
06:35:22Demos[m]same, it's just strange since gi kinda needs build system modifications and came out fairly recently
06:36:30FromGitter<mratsim> I remember about the lightweight Enlightenment windows manager for Linux. It seems like the EFL libraries are quite a good fit for Nim, everything is exposed as a C API: https://www.enlightenment.org/about-efl
06:37:04Demos[m]efi is OK
06:37:05Demos[m]it's pretty cowboy C though
06:37:17skrylarhave used a little bit of efl
06:37:28skrylarits peculiar
06:37:34*arnetheduck joined #nim
06:37:50Demos[m]??
06:38:34salewskiWhat seems to be really more "sexy" than GTK for users in of course Qt, but
06:39:10salewskiwe know how much work binding generation would be. For Go there seems to exist Qt bindings.
06:40:39salewskiBut one point that people do not like about GTK is the gobject C stuff, and
06:40:42Demos[m]well qtwidgets is not gunna see updates
06:40:59Demos[m]you need the gobject stuff to be bindable
06:40:59salewskiwith high level Nim bindings we can avoid that.
06:41:27FromGitter<mratsim> “cowboy C” lol
06:41:33Demos[m]but any language that's not nim should be able to generate all that boilerplate
06:41:52salewskiYes, but gobject stuff is fully invisible for Nim GTK users with high level API.
06:42:32Demos[m]yeah, what about just using native interop and using macros to match gobject abi?
06:42:41Demos[m]and then generating static bindings from git?
06:42:43Demos[m]*gir?
06:44:23salewskiI don't know -- Rust tries to work closely together with the GObject system.
06:44:52salewskiThe goal seems to be writing GObject code is Rust as was done in Vala.
06:45:02salewskiBut that is not easy.
06:45:35Demos[m]someone should tell them to actually document the gobject abi as they go :)
06:45:50Demos[m]it's a hell of a lot easier than being abi compatible with C++
06:46:03salewskiAnd I dont think that Nim peole really want to extend GObject libraries with Nim.
06:46:05Demos[m]since then you need to follow at least two seperate c++ abis
06:46:47Demos[m]and they are VASTLY more complex, I think you'd need to use term rewriting macros to do it in nim because of how casts between pointers to objects work
06:47:38salewskiWell, most people just want to use the GUI, not to extend it with new Widgets.
06:47:55Demos[m]I want to extend with new widgets :O
06:48:00skrylarevery app of sufficient novelty needs to make a custom widget
06:49:16Demos[m]also I feel like with nim you could just generate the static binding from typelibs/gir at compile time and then be abi compat, at least for the most part
06:49:49salewskiWhen the widget must not become part of the GTL lib, then that is possible.
06:50:21Demos[m]esp since nim does not, and probably never will, define more abi then C (maybe object varients)
06:50:22salewskiPeole did it for example with Python, it is basically connecting to signals and cairo drawing.
06:50:59Demos[m]well can't you just literally give gtk an object with your own vtbl
06:52:27salewskiI don't really know, I would have to investigate what the Rust people exactly do.
06:52:28Demos[m]I've been trying to find out more about gobj-introspection but it seems the main developer is chinese and hard to actually talk to because of the whole "living on the other side of the planet" thing
06:53:20salewskiGObject-Introspection is not very alive currently.
06:53:41Demos[m]yeah.....
06:53:54salewskiI had some stupid beginner questions during the lasts months,
06:54:19salewskiI was not able to find a really active developer.
06:54:22Demos[m]a few good rationale documents would be great
06:54:31Demos[m]it seems chun-wei fan is the most active
06:54:33Demos[m]but idk
06:55:37salewskiThe API ducumentation is not bad, but hard for beginners. Mr J. Mansour helped me a bit
06:56:05Demos[m]the api docs are fine, it's the rationale and build tools docs that I've had trouble with
06:56:11salewskifor starting with his smartgi Nim project, which he has not continued.
06:57:18Demos[m]I've been trying to figure out if I can use go-i to help generate wrappers for lower level libs like libxml/cairo/clutter/gsk/the builder stuff
06:59:17salewskiCairo is not really supported by GIR unfortunately, because it is considered different
06:59:39salewskifrom all the other gobject related libraries.
07:00:17salewskiBut there exists nearly 50 gobject related libs, and all that should work with my
07:00:33salewskihigh level bingings generator!
07:00:57Demos[m]god ... I wish C had modules
07:01:32Demos[m]the gi repo has a gir for cairo though
07:01:41Demos[m]not really sure what that's about
07:02:10salewskiYes, that is a minimal stub. I asked a developer about the reason, see my note above.
07:02:11*v17d joined #nim
07:02:42Demos[m]about being different?
07:03:21Demos[m]actually, it's 3AM here and I should sleep. Feel free to spew gi information at me and I'll go over it in the morning
07:04:00salewskihttps://www.spinics.net/lists/gtk/msg22097.html
07:04:27salewskiOK, bye.
07:04:31*salewski quit (Quit: WeeChat 1.4)
07:21:31*yglukhov joined #nim
07:23:28*yglukhov quit (Remote host closed the connection)
07:23:43*yglukhov joined #nim
07:57:22*Arrrr joined #nim
07:57:22*Arrrr quit (Changing host)
07:57:22*Arrrr joined #nim
08:09:51*ShalokShalom joined #nim
08:54:41*couven92 joined #nim
09:00:07*gokr joined #nim
09:07:53*salewski joined #nim
09:09:35salewskiThe "nimble publish" problem seems to be solved, I had to generate a ssh key and add that to github. For details see my forum post.
09:10:40salewskiBut I assume it may take some time until gintro package will appear in the nimble package list. It is not yet there.
09:10:44salewskiBye.
09:11:21*salewski quit (Client Quit)
09:12:13*gokr quit (Ping timeout: 268 seconds)
09:13:42*krux02 joined #nim
09:17:18*salewski joined #nim
09:18:09salewskiWell, gintro package is arrived at https://github.com/nim-lang/packages/pull/538/files
09:19:45salewskiBut "nimble publish" asked something like: Use comma separated tags? I replied "yes", so we have one single tag "yes" now. Funny.
09:22:35*salewski quit (Quit: WeeChat 1.4)
09:27:58euantorYou can update the tags by checking out and editing the PR locally
09:30:23*Matthias247 joined #nim
09:39:49*xet7 quit (Remote host closed the connection)
09:42:18*xet7 joined #nim
10:06:53CalinouI installed Nim 0.17.0 on Windows (with MinGW-w64 7.3.0) and it's failing to compile an hello world
10:07:09euantorWhat's the error message?
10:07:35Calinouhttps://hastebin.com/idudasuboq.txt
10:07:48Calinou(the path is valid, I edited the config file)
10:08:35euantorInteresting
10:09:38euantorDo nimcache\hello.o and stdlib_system.o exist?
10:13:44Calinouno, only .c files do
10:13:47Calinouso it puzzles me
10:14:17Calinouit looks like it compiles to C successfully (I have an hello.c weighing 3 KB, and a stdlib_system.c weighing ~400 KB, both in nimcache/)
10:15:51euantorYeah, it looks like up to that point it's working
10:39:12FromGitter<TiberiumN> can you try with --cpu:amd64 ?
10:39:29FromGitter<TiberiumN> nim c --cpu:amd64 hello.nim
10:39:37*gokr joined #nim
10:39:49krux02args virtual machines are slow
10:43:30Calinou@TiberiumN I tried, and it returns the same error (note, this a 64-bit MinGW installation)
10:43:33CalinouI'll try a 32-bit MinGW installation
10:43:50Calinounah, same error with 32-bit
10:44:05FromGitter<TiberiumN> мукн ыекфтпу
10:44:08FromGitter<TiberiumN> very strange :)
10:44:25FromGitter<TiberiumN> can you try to install nim with choosenim maybe?
10:44:41*FromGitter * zacharycarter thanks the programming gods he doesn't have any intention of building GUI focused apps
10:44:54FromGitter<TiberiumN> https://github.com/dom96/choosenim/releases/download/v0.2.2/choosenim-0.2.2_windows_i386.exe
10:45:16CalinouTIL about choosenim
10:45:32Calinoulooks similar to rustup
10:46:24FromGitter<zacharycarter> yup
10:46:27FromGitter<zacharycarter> I think that's the idea
10:46:41FromGitter<zacharycarter> dom96 wrote it
10:46:43FromGitter<TiberiumN> "Similar to the likes of rustup and pyenv, choosenim is a toolchain multiplexer."
10:47:41krux02well when I choose my nim I do "get checkout <branch> && ./koch build -d:release"
10:47:49FromGitter<TiberiumN> :)
10:47:58krux02works good enough for me
10:48:24FromGitter<TiberiumN> one sad thing about choosenim - it downloads csources and nim source code every time when you update devel
10:48:28krux02even works with custom branches ;)
10:48:45FromGitter<zacharycarter> I haven't used it yet either but I try to stay with bleeding edge nim
10:48:54*Zevv joined #nim
10:48:54FromGitter<TiberiumN> me too
10:48:56FromGitter<zacharycarter> o/ krux02
10:49:09krux02o/ ?
10:49:14FromGitter<zacharycarter> it's like a wave
10:49:21FromGitter<TiberiumN> wave hello
10:49:24FromGitter<zacharycarter> sorry I played a lot of Eve online
10:49:36FromGitter<zacharycarter> I sometimes forget the rest of the internet didn't
10:49:38krux02I have heared it's good
10:49:46FromGitter<TiberiumN> yep it is
10:49:48krux02I played Ragnarök Online :P
10:49:51FromGitter<zacharycarter> it's good if you want to destroy your life
10:49:53FromGitter<TiberiumN> but you need to play a lot of time
10:49:56FromGitter<TiberiumN> yeah
10:49:57FromGitter<zacharycarter> and sink tons of time into it
10:50:01krux02the it is afaik :hi
10:50:06ZevvHi, is the documentation on https://nim-lang.org/docs/httpclient.html#AsyncResponse compatible with Nim 0.16.0? I'm trying to get async HTTP requests working, but I get the error "Error: invalid pragma: async"
10:50:08Calinoujust saying, but calling "choosenim" or "nimble" after installation errors with "could not load: libeay32.dll"
10:50:09krux02could also be /hi
10:50:16ZevvMy first hour of Nim, so beware of the noob
10:50:23FromGitter<TiberiumN> Zevv: can't you use nim 0.17.0?
10:50:26FromGitter<zacharycarter> anywho I keep pinging you about opengl / glm questions and then like five minutes later I figure out the answer
10:50:27FromGitter<TiberiumN> why 0.16.0?
10:50:37ZevvIt's in Debian
10:50:55FromGitter<TiberiumN> well, just install nim 0.17.0 via choosenim :)
10:50:55krux02oh, yea I am on a computer without sound
10:50:57Calinouhowever, my Nim "hello world" does compile now!
10:51:03FromGitter<zacharycarter> krux02: ah gotcha
10:51:04krux02so I don't realize everything
10:51:13FromGitter<zacharycarter> it's all good I've figured out most things anyway
10:51:14FromGitter<TiberiumN> wget https://github.com/dom96/choosenim/releases/download/v0.2.2/choosenim-0.2.2_linux_amd64 ⏎ ./choosenim-0.2.2_linux_amd64
10:51:21FromGitter<zacharycarter> hope all is well with you :)
10:51:22Calinouthanks :)
10:51:25FromGitter<TiberiumN> and then add ~/.nimble/bin to the path
10:51:34krux02that's good
10:51:34ZevvOk, 0.17 is up and running, still the same problem with the "unknown pragma: async"
10:51:35Calinouyeah, I added the Nimble folder to my PATH
10:51:44FromGitter<TiberiumN> Zevv: did you import "asyncdispatch"?
10:51:49krux02yes it's all fine here
10:52:01krux02I try to get my pull requests for nim to compile without errors
10:52:07krux02but that is a problem right now
10:52:20krux02there is an error that happens on windows
10:52:26ZevvTheManiac: nope, I didn't
10:52:29krux02but windows on a virtual machine is a pain in the ass
10:52:36FromGitter<TiberiumN> "{.async.}" pragma is defined in asyncdispatch
10:52:42krux02and it means I have to install the nim toolchain on windows
10:52:42FromGitter<TiberiumN> you should import it if you want to use async features
10:52:54FromGitter<TiberiumN> krux02: I can test it
10:53:02FromGitter<TiberiumN> with latest nim on Win10
10:53:14krux02TiberiumN: that would be great help
10:53:26FromGitter<TiberiumN> what's the pull request?
10:53:35krux02I don't have a Windows install and I am not used to windows anymore since the beginning of Windows 7
10:53:35Calinounice, nimsuggest is preinstalled
10:53:54FromGitter<TiberiumN> yeah
10:54:06Calinoubut yeah, neither nimble nor choosenim can run due to a missing library :(
10:54:09Calinounim itself does though
10:54:14FromGitter<TiberiumN> oh
10:54:26FromGitter<TiberiumN> I'm afraid you need to download some .dlls manually
10:54:32FromGitter<TiberiumN> it's a known bug in choosenim :(
10:54:44FromGitter<TiberiumN> https://nim-lang.org/download/dlls.zip
10:55:43FromGitter<TiberiumN> krux02: so how can I help you?
10:56:01ZevvTheManiac: thanks, up and running. epoll under the hood, I'm happy
10:57:11krux02TiberiumN: it is about this pull request
10:57:13krux02https://github.com/nim-lang/Nim/pull/5910
10:57:42FromGitter<TiberiumN> so can I test only this test?
10:58:53FromGitter<TiberiumN> because I don't know how to use nim test suite :)
10:58:59Calinouhmm, compiling my hello world in C++ instead of C makes it compile, but it does not run successfully
10:59:06Calinou(nim cpp -r hello.nim)
10:59:12Calinouif I run hello.exe alone, it does not print anything
10:59:13FromGitter<TiberiumN> what's the error?
10:59:26Calinouhttps://hastebin.com/axonorexiz.txt
10:59:34Calinou(C works fine, though)
10:59:40Calinou(I don't need C++ backend, just curious)
10:59:44FromGitter<TiberiumN> very strange
10:59:55FromGitter<TiberiumN> but I don't use C++ backend so I don't know :)
11:01:35krux02TiberiumN: you run a single test with ./koch test run path/to/test
11:02:07krux02./koch test run tests/async/tioselectors.nim -d:upcoming
11:02:10krux02I think
11:03:18Calinouanyway, commented here about the libeay32.dll issue: https://github.com/dom96/choosenim/issues/19
11:03:23krux02on my computer it just passes
11:08:35krux02TiberiumN: you know that if you already cloned Nim, you can add a remote (call it krux02) and then do: git checkout --track krux02/stringify-array
11:08:50FromGitter<TiberiumN> yeah, I know, I have another issue related to sqlite dlls :)
11:08:56FromGitter<TiberiumN> trying to solve it to run tests
11:09:19krux02what has sqlite to do with running tests?
11:09:30FromGitter<TiberiumN> I don't know really :)
11:09:48*couven92 quit (Quit: Client disconnecting)
11:10:12FromGitter<TiberiumN> output is: ⏎ https://hastebin.com/odaxamikin.tex
11:10:16FromGitter<TiberiumN> trying to solve it
11:11:37krux02meh don't like hastebin, requires javascript :P
11:11:45FromGitter<TiberiumN> oh, sorry, I didn't knew
11:12:28krux02well I use the stupid irc client in emacs and the stupid eww (browser) integrated in emacs
11:12:35krux02javascript just doesn't work there
11:12:45krux02and on my real browser I have noscript
11:13:04krux02I use ix for code pasting
11:13:09krux02ix.io
11:13:52krux02but it's my fault for using eww in the first place
11:16:49FromGitter<TiberiumN> IDK but this test passed for me on mingw with gcc 7.1.0 64bits on windows 10 pro x64
11:16:56FromGitter<TiberiumN> PASS: tioselectors.nim-d:upcoming
11:17:08FromGitter<TiberiumN> with your nim repo
11:17:13FromGitter<TiberiumN> and stringify-array branch
11:17:22FromGitter<TiberiumN> also
11:17:38FromGitter<TiberiumN> windows asked for me to give this test access to internet
11:17:52FromGitter<TiberiumN> I answered "ok", maybe this was the problem with appveyor...
11:18:41krux02hmm I don't know then
11:18:58krux02I will rebase to devel then and see what I can do
11:19:02*Tiberium joined #nim
11:20:09*wishi joined #nim
11:21:26wishihey, I am trying to run nimqml on win 64... does anyone know what you have to do to get the compiled executable to load the DOtherSide.dll?
11:21:38wishiHint: C:\nim\nimql\examples\helloworld\main.exe [Exec]
11:21:38wishicould not load: DOtherSide.dll
11:21:38wishiError: execution of an external program failed: 'C:\nim\nimql\examples\helloworld\main.exe '
11:21:46wishikind of weird, since the DLL is in the PATH
11:22:43FromGitter<TiberiumN> can you try to move this DLL into the folder with your main.exe ?
11:22:47FromGitter<TiberiumN> this should solve this problem
11:23:38wishiI did that. same architecture as well. from the releases. https://github.com/filcuc/DOtherSide/releases
11:24:05wishinim c -d:nimDebugDlOpen -r main
11:24:33wishithe release is for visual studio though, and nim here uses GCC
11:25:45FromGitter<TiberiumN> I'll test this too with gcc and vcc
11:27:04krux02TiberiumN: I did the rebase
11:28:25*skrylar quit (Quit: My iMac has gone to sleep. ZZZzzz…)
11:28:58FromGitter<TiberiumN> wishi: do you have Qt dlls as well?
11:29:36wishiTiberium: I do. The Qt 5.8, which is compatible according to the readme. Not sure if that needs to be all in PATH though.
11:29:51FromGitter<TiberiumN> I think this should be in the path
11:30:01FromGitter<TiberiumN> and also try to put all qt dlls into the same folder as your app :)
11:33:00FromGitter<TiberiumN> krux02: let's wait for appveyor
11:35:04wishiok, the error message change to "... create... could not be locayted in the dynamic link library QT5Quick.dll" - let me see what that indicates ;)
11:35:25FromGitter<TiberiumN> ohh
11:35:34FromGitter<TiberiumN> probably different versions/architecture
11:35:50wishiyes, I will try and test a different dootherside release
11:42:25wishiis there a dotherside release for mingw btw?
12:02:23*girvo quit (Ping timeout: 260 seconds)
12:02:47*Snircle joined #nim
12:03:19*ShalokShalom_ joined #nim
12:04:34*ShalokShalom quit (Ping timeout: 246 seconds)
12:10:41*Arrrr quit (Read error: Connection reset by peer)
12:13:50krux02I have a generic type T in a procedure, how can I transform that type into a NimNode with a sybol of that type?
12:14:20krux02proc foo[T](): NimNode = ???
12:20:27*couven92 joined #nim
12:41:54krux02to answer my own question: getTypeInst(bindSym"T")
12:46:08*deep-book-gk_ joined #nim
12:46:41*deep-book-gk_ left #nim (#nim)
12:58:29*girvo joined #nim
12:59:33*v17d quit (Ping timeout: 260 seconds)
13:03:13*girvo quit (Ping timeout: 255 seconds)
13:05:02ZevvFor tracing and debugging, is there a way to print out any value, even if no toString()/$ is defined for it? For example, echo'ing a proc now gives an error, instead I would like to see some kind of representation of the fact that its a procedure, preferably with name and location?
13:05:14ZevvOr am I thinking too much ducktyping?
13:05:48FromGitter<TiberiumN> echo repr(something)
13:06:26Zevvalmost :) invalid type: 'typed' in this context: 'proc (x: proc (x: varargs[typed]){.gcsafe, locks: 0.}): string{.noSideEffect.}'
13:06:28*ShalokShalom joined #nim
13:07:06Zevvecho repr(echo)
13:09:26*ShalokShalom_ quit (Ping timeout: 255 seconds)
13:09:53FromGitter<andreaferretti> you are trying repr on echo
13:10:01FromGitter<andreaferretti> which is generic
13:10:06FromGitter<andreaferretti> hence it is not a value
13:10:41ZevvOk, I'll stop asking questions now and do some proper learning first
13:11:00Zevvthanks :)
13:11:18FromGitter<andreaferretti> the thing is: since echo is generic, it is specialized when oyu call it
13:11:24FromGitter<andreaferretti> there is no actual proc
13:11:33FromGitter<andreaferretti> until you specialize it
13:11:43FromGitter<andreaferretti> for monomrphic procs it should work
13:12:14ZevvNow I hit an internal error
13:12:23Zevv(can I paste here or do you prefer pastebin, 5 line snippet?)
13:12:41FromGitter<andreaferretti> pastebin
13:14:56Zevvhttps://pastebin.com/raw/7FU9PA7e, printing the async function poisson() causes Error: internal error: getTypeDescAux(tyBuiltInTypeClass)
13:14:59ZevvNo stack traceback available
13:15:16Tiberiummaybe not repr, hmm
13:16:42FromGitter<andreaferretti> well, poisson is itself generic (as well as async)
13:16:52FromGitter<andreaferretti> cb is of type proc
13:18:17ZevvWhere do I find the basics about things like generics? searching nim-lang.org does not seem to give me anything relevant when looking for 'generic'
13:18:41ZevvI'm a C and Lua veteran, but I need some basics to get my head about the design patterns of Nim
13:18:47FromGitter<andreaferretti> https://nim-lang.org/docs/manual.html
13:19:11ZevvFunny, section 'Generics'
13:19:13FromGitter<andreaferretti> essentially many things (templates, macros, generics and so on) are actually blueprints for code
13:19:17Zevvand not found when looking for 'generic' in the search :)
13:19:37FromGitter<andreaferretti> they are not materialized until they are specialized with concrete types
13:19:46Zevvaka, templates, right
13:20:07FromGitter<andreaferretti> no, they are different things
13:20:24FromGitter<andreaferretti> but still, both do not represent values in the actual executable
13:20:36Zevvah I see. Like I said, I'll now stop talking here and read the manual first from top to bottom.
13:20:45FromGitter<andreaferretti> the only things that end up in the executable are things you could represent in C
13:20:54ZevvAny books you recommend for over the holidays, or is Nim too young for good books?
13:20:55FromGitter<andreaferretti> concrete structs, procs with well defined types
13:21:08FromGitter<TiberiumN> Zevv: there's one book for nim :)
13:21:12Zevvany good?
13:21:15FromGitter<andreaferretti> anything else is an abstraction that only exists at compile time
13:21:24FromGitter<TiberiumN> https://www.manning.com/books/nim-in-action
13:21:26Zevvok that makes sense
13:22:06ZevvI'm about to order the book, is it still relevant to 0.17?
13:22:34FromGitter<TiberiumN> yep it is
13:22:46ZevvOk. Oh it's not even available yet I see :)
13:22:48Zevvpre-ordered then
13:22:59FromGitter<TiberiumN> it's available as eBook
13:23:01Zevvnah
13:23:22FromGitter<TiberiumN> dom96 is the author
13:23:32ZevvWhere do I order so that dom96 benefits most? Probably not amazon
13:23:32FromGitter<TiberiumN> https://github.com/dom96
13:23:48FromGitter<TiberiumN> probably https://www.manning.com/books/nim-in-action ? but ask him, I don't know
13:23:53Zevvok
13:24:17Zevvoh it's the guy I see in all the forums
13:27:36FromGitter<mratsim> @salewski cool for nimble publish, I also get an issue with it, it get stucks at “clonin package” on OSX
13:40:27*ShalokShalom quit (Ping timeout: 240 seconds)
13:40:35*ShalokShalom joined #nim
13:44:23demi-mratsim what problem are you having?
13:45:41*salewski joined #nim
13:46:48salewskimratsim, see https://forum.nim-lang.org/t/3043
13:47:33salewskiFollowing the github instructions to generate a ssh key solved my problem, maybe works for you too.
13:49:00salewskiInitially for me this command failed:
13:49:04salewskigit clone [email protected]:StefanSalewski/packages /tmp/nimble-packages-fork
13:49:24salewskiThre reason was not really obvious.
13:50:12*salewski quit (Client Quit)
13:58:23FromGitter<TiberiumN> what would be the best way to count hours, minutes and seconds since the start of the program?
13:58:34FromGitter<TiberiumN> I don't want CPU time, I want real time
14:06:23FromGitter<andreaferretti> epochTime
14:10:14MrAxilus[m]Hello, does anyone here have any experience with using javascript libraries in Nim?
14:10:24MrAxilus[m]is that possible, I know you can compile to JS
14:11:13FromGitter<TiberiumN> yes it is
14:11:17def-MrAxilus[m]: I'd imagine that's possible and you could access them from Nim by writing bindings, like for C
14:11:28def-MrAxilus[m]: google finds this for example: https://github.com/andreaferretti/react.nim
14:12:48MrAxilus[m]cool, thanks
14:13:14MrAxilus[m]I've been thinking of learning d3.js so I could also learn nim at the same time by creating bindings
14:14:03MrAxilus[m]is there any guides that you know of for going about writing bindings in nim (for C or Javascript)?
14:15:09def-http://goran.krampe.se/2014/10/16/nim-wrapping-c/
14:15:17def-https://hookrace.net/blog/what-makes-nim-practical/#wrapping-libraries-with-c2nim
14:15:27def-https://github.com/nim-lang/c2nim
14:28:56*girvo joined #nim
14:33:40*girvo quit (Ping timeout: 246 seconds)
14:44:39subsetparkSo I was reading up more on concepts - as they stand, they're more a way to 'keep out' certain type parameters, right? They don't, themselves, provide any greater degree of polymorphism than generics?
14:46:07subsetparkIn other words, Any function I could write that takes a concept as an argument could also be written more permissively as a generic
14:47:49krux02subsetpark: yes
14:48:16subsetparkCool, I'm very glad I understand!
14:48:19krux02the polymorphism is what you get with the vtble types
14:48:30subsetparkyes, the mythical vtable types...
14:48:45krux02well I understand the vtable types like the Go interfaces
14:49:01krux02just with concepts
14:49:08krux02the Go interfaces are documented better
14:50:05subsetparkBut they're also not in 0.17.0 at all, right?
14:50:05krux02I call ta vtableref a pair of pointer to a value and a pointer to a vtable
14:50:42krux02subsetpark: I think so
14:51:22ZevvCan anyone point me to an example with some idiomic use of the asyncdispatch 'withTimeout()'
14:51:35*krux02 quit (Remote host closed the connection)
14:51:43euantorvtables aren't finished
14:57:50euantorZevv: Something like this should work I believe: https://glot.io/snippets/erov33jb2c
14:58:14euantorNote that it doesn't work in glot.io as they don't have DNS resolution, same with play.nim-lang.org.
14:59:46euantorAlso, for Nim 0.17.0, change "response.body" to "await response.body"
15:00:14*Arrrr joined #nim
15:04:05*smt_ quit (Read error: Connection reset by peer)
15:06:35subsetparkYou know what - there should definitely be a nim email newsletter
15:07:21*smt joined #nim
15:07:49*smt quit (Max SendQ exceeded)
15:08:41*smt joined #nim
15:09:00*smt quit (Max SendQ exceeded)
15:11:04*smt joined #nim
15:11:16*smt quit (Max SendQ exceeded)
15:12:47*smt joined #nim
15:13:08*smt quit (Remote host closed the connection)
15:17:57*xet7 quit (Remote host closed the connection)
15:22:46Zevveuantor: I figured out that last one yes
15:23:07Zevvah I see, you first check the timeout future, and then the response
15:23:08Zevvsweet
15:23:35Zevvdoes DNS lookup block the main event loop or is that implemented async as well?
15:24:11Zevvfrom strace() I guess it's async
15:24:22ZevvI see a send to port 53, an epoll() and then the recv() from port 53
15:24:24Zevvgreat
15:34:38*Tiberium_ joined #nim
15:36:47subsetparkSo I have a little command-line weather app which requests to the dark skies API and prints out something - I think what I'd like to do is rewrite it as a daemon that updates every :30, such that the command line util would just ask the daemon for its current state
15:37:02subsetparkHow would I go about doing something like that?
15:37:29subsetparkopen a unix port and wait for input from it?
15:37:37*Tiberium quit (Ping timeout: 248 seconds)
15:38:02*Trustable joined #nim
15:38:11euantorsubsetpark: Writing it as a daemon seems like a waste, would be better off as a Systemd timer or a cron job
15:38:30subsetparkeuantor: and what, it would just stick the state in a file somewhere?
15:38:36euantorYep, exactly
15:39:02euantorAnd if you wanted to have a history of past weather conditions, you could use an SQLite database to store past conditions
15:39:17euantorSaves having a process running 24/7 that's only needed every 30 minutes
15:39:27subsetparkoh that's kind of nice
15:40:10subsetparkwhat are the unix conventions for a cron job to maintain a sqlite db somewhere? is that a /usr/share kind of thing?
15:41:13euantorDepends on if it's multiuser or not. If it's only used by your own profile, I'd dump it into $HOME/.youapp or something
15:41:26euantorI mean `$HOME/.yourapp`
15:41:48subsetparkah, I guess I've never written a systemd file that is user-specific
15:42:19euantorFor the systemd timer I wrote a basic post that kind of covers them: https://www.euantorano.co.uk/posts/using-laravel-scheduled-tasks-with-systemd-timers/
15:42:36euantorAdapting those two units to run your app should be fairly trivial
15:43:26subsetparkoh cool, nice euantor
15:44:27FromGitter<Varriount> euanator: You use PHP?
15:45:26euantorYep, sometimes
15:46:04euantorI use a whole mix of languages - one of the benefits of working in a small company with a lot of legacy software. I write in C# mostly at work, but also in VB.net and PHP
15:46:22subsetparkWho here writes nim at work?
15:46:56*aziz joined #nim
15:50:53euantorI have written command line tools at work, but not many
15:58:03*Vladar quit (Quit: Leaving)
15:59:27*girvo joined #nim
16:01:06*yglukhov quit (Remote host closed the connection)
16:01:44subsetparkI wonder what it's being used for where it is in production
16:01:57subsetparkI know Araq's company does some kind of VR 3D thing
16:03:15subsetparkI actually have quite a bit in production at work, by now
16:04:09*girvo quit (Ping timeout: 255 seconds)
16:07:29*krux02 joined #nim
16:08:11krux02in a template can I get the string representation of an argument?
16:11:41subsetparkwhy not just $?
16:12:12def-subsetpark: i think krux02 wants template(xyz) to have "xyz" inside, not $xyz
16:12:46subsetparkoh i see
16:12:59def-it works with a macro of course
16:15:33def-krux02: this works: https://stackoverflow.com/questions/31565006/how-to-get-string-representation-of-an-expr-in-nim-template
16:16:09subsetparkwhoa, i didn't know about that magic
16:22:36FromGitter<mratsim> @demi- I get the same as salewski ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ I’m trying to understand the proper rights but it doesn’t work [https://gitter.im/nim-lang/Nim?at=59679e4cc101bc4e3a8040bf]
16:25:30FromGitter<andreaferretti> it may be simpler to just do a manual PR :-)
16:26:40FromGitter<mratsim> > >
16:27:30*aziz quit (Quit: Ex-Chat)
16:29:18FromGitter<andreaferretti> just fork https://github.com/nim-lang/packages and add your package at the end of package.json
16:29:27FromGitter<mratsim> By the way @andreaferretti you might be interested in Owl: https://github.com/ryanrhymes/owl Numerical library in Ocaml. It was highlighted in HackerNews 2 days ago
16:29:28*MonsterAbyss is now known as Abyss2
16:29:39FromGitter<andreaferretti> then submit a pull request
16:29:41FromGitter<andreaferretti> done
16:29:52FromGitter<andreaferretti> @mratsim thank you, I will have a look
16:30:49FromGitter<mratsim> I’ll rip off neo’s tag :P
16:31:10FromGitter<andreaferretti> :-D
16:33:25*MonsterAbyss joined #nim
16:34:09*Abyss2 quit (Quit: I will be back bitches)
16:36:40krux02in the compiler how do I check if I compile to linux/windows 32bit 64bit?
16:36:54FromGitter<TiberiumN> in the compiler?
16:37:00FromGitter<TiberiumN> maybe same as in the usual nim code
16:37:00krux02yes in the compiler
16:37:11FromGitter<TiberiumN> when defined(windows): probably?
16:37:23krux02nonon
16:37:28krux02I mean in the compiler
16:37:38krux02I am in the compiler
16:37:43krux02how do I say it
16:37:45FromGitter<TiberiumN> I think it's the same
16:37:45FromGitter<TiberiumN> https://github.com/nim-lang/Nim/blob/d9cf9b079ec7f60dc246c93a73a3aa500ba03d42/compiler/nim.nim#L10
16:38:15krux02noooo
16:38:39krux02I am writing code in the compiler
16:38:54krux02and there the target architecture is an argument
16:39:04krux02therefore a runtime thing not a compile time thing
16:52:05*Sentreen quit (Ping timeout: 240 seconds)
16:55:17FromGitter<l1n3n01z> So, what's up with the "quote do" breakage?
16:59:13*yglukhov joined #nim
17:00:30*girvo joined #nim
17:01:07*nsf quit (Quit: WeeChat 1.7.1)
17:03:35*yglukhov quit (Ping timeout: 240 seconds)
17:05:12*Sentreen joined #nim
17:05:28*girvo quit (Ping timeout: 260 seconds)
17:07:28*ShalokShalom quit (Ping timeout: 260 seconds)
17:08:16*ShalokShalom joined #nim
17:13:12*adamchainz joined #nim
17:25:30*Tiberium_ quit (Read error: Connection reset by peer)
17:27:13*Tiberium joined #nim
17:27:35wishihow can I give the command line nim util its own nim.cfg per project?
17:28:07wishithere is no nim c main --config nim.cfg alike
17:29:28*yglukhov joined #nim
17:31:57krux02has anybody here a 32 bit windows machine ready?
17:32:39FromGitter<l1n3n01z> nope. I have a vm at work, but no vpn to it.
17:33:15krux02I would like to know the result of this program on it:
17:33:18krux02http://ix.io/ytD
17:33:37wishiwhat do you do to set the compiler to visual studio for one project? instead of for all...
17:33:51wishiapparently the global nim config has the GCC / minGW
17:34:03krux02well I don't use windows at all
17:34:05krux02that is my problem
17:34:16*yglukhov quit (Remote host closed the connection)
17:34:16krux02I need this tested on windows and I just hate every bit of it
17:34:26krux02it just feels horrible
17:34:44wishigood things dont come easy ;)
17:35:07Demos[m]Qemu?
17:35:19FromGitter<l1n3n01z> hah, you are not alone, krux02
17:35:42*Jesin joined #nim
17:36:08Demos[m]Idk modern windows with powershell isn't that bad
17:37:05FromGitter<l1n3n01z> I haven't used vagrant, but maybe this helps? https://app.vagrantup.com/mrh1997/boxes/vanilla-win7-32bit
17:37:46Demos[m]You can download an ISO from msft and just install it
17:38:16FromGitter<l1n3n01z> Ah, never mind, I am sure you would get the correct result just compiling with the 32 bit target
17:38:27FromGitter<l1n3n01z> Let me just try out your code quickly
17:39:51*couven92 quit (Quit: Client disconnecting)
17:41:13FromGitter<l1n3n01z> I get 8 8 8 for all compile targets
17:41:26FromGitter<l1n3n01z> What were you expecting?
17:42:41Demos[m]The hell
17:42:47Demos[m]Where's the padding?
17:43:05FromGitter<l1n3n01z> https://msdn.microsoft.com/en-us/library/1d48zaa8.aspx
17:43:13Demos[m]Wait that's in bytes
17:43:16Demos[m]Meh bad
17:44:46FromGitter<l1n3n01z> haha
17:45:13*yglukhov joined #nim
17:46:13FromGitter<l1n3n01z> So it looks like the alignment is always 8 bytes, regardless of word size. No promises though
17:46:29FromGitter<l1n3n01z> (and you can change it with a pragma)
17:47:16Demos[m]Win32 and 64 both have byte long words though
17:47:20Demos[m]Sorta
17:47:35Demos[m]Idk if word Size means much anymore
17:54:35*yglukhov quit (Ping timeout: 240 seconds)
17:54:39*Trustable quit (Remote host closed the connection)
17:58:47FromGitter<mratsim> @l1n3n01z The `align` pragma works/exists now? I had to roll up my own: https://github.com/nim-lang/Nim/issues/1930, https://github.com/nim-lang/Nim/issues/606
18:01:15*girvo joined #nim
18:05:53*girvo quit (Ping timeout: 246 seconds)
18:10:38*couven92 joined #nim
18:13:16*pilne joined #nim
18:18:11*v17d joined #nim
18:24:25*v17d quit (Remote host closed the connection)
18:27:36*nsf joined #nim
18:30:32*yglukhov joined #nim
18:39:34*xet7 joined #nim
18:56:49FromGitter<l1n3n01z> No idea :) We were discussing packing/alignment in MSVC
18:56:59*Trustable joined #nim
18:58:40*samuell joined #nim
19:00:15subsetparkI have a generic proc that takes a [T: int|float], but when I try to add a named argument to the function cmp = proc(x, y: T): bool = x > y ... I get a type error
19:00:31subsetparkhttps://www.irccloud.com/pastebin/wifBMmqg/
19:01:06subsetparkIs it that the type system isn't smart enough to see that both int and float are in that list, separately? should i just declare a helper proc < that takes int|float ?
19:02:04*girvo joined #nim
19:03:04subsetparkno, that doesn't do it...
19:03:45subsetparkthat 'got' line makes it seem as though the arguments are being treated as the typedesc itself, not the values
19:06:14*nhywyll joined #nim
19:06:48*girvo quit (Ping timeout: 260 seconds)
19:07:39subsetparkwhen I define a helper proc greaterThan with the same signature, it compiles fine
19:08:24*nsf quit (Quit: WeeChat 1.7.1)
19:09:50subsetparkOoh, but when i try to pass in a different keyword i crash the compiler...
19:12:59krux02Araq: I am back trying to fix what is broken in sizeofalignof in the compiler
19:17:48*yglukhov quit (Remote host closed the connection)
19:20:34*yglukhov joined #nim
19:27:08*neur4l joined #nim
19:27:16*neur4l left #nim ("WeeChat 1.4")
19:30:13*Jesin quit (Quit: Leaving)
19:34:44*Jesin joined #nim
19:44:58krux02if there is somebody maintaining nim-mode, please attention to my pull request
19:50:53FromGitter<l1n3n01z> @krux02 did you see the results? The 32 bit compiler gives 8 8 8. I was running it on Win64, but it should give the right results as it's a compile time thing
19:55:54FromGitter<l1n3n01z> @subsetpark The pastebin only has the error. Would be helpful to see exactly what you were trying to compile
20:02:46*girvo joined #nim
20:07:44*girvo quit (Ping timeout: 268 seconds)
20:10:36*nsf joined #nim
20:13:50*Tiberium quit (Remote host closed the connection)
20:15:14ZevvHi; can I define a nested object type without having to define individual named sub-types first?
20:15:43Zevvlike structs in structs in C, where the sub-structs do have a name, but no type name
20:22:03yglukhovZevv: i think you could use tuples for that. `myField: tuple[a: int, b: float]`
20:24:05ZevvYeah, I tried that. But I'm using JSON to to demarshal a json node into an object, and that does not seem to like tuples
20:30:27yglukhovZevv: maybe that's just a bug to be reported...
20:32:19dom96probably
20:32:33dom96the JSON demarshaller is still rather new
20:32:50subsetparkdom96: Some combination of nimble and choosenim means that nimble install can't find my installed packages, even though they show up in nimble path
20:32:55subsetparkAny idea where to start debugging?
20:33:29dom96What do you mean by "Nimble path"?
20:33:31Zevvwell, new or not, so far I'm pretty much impressed
20:33:45subsetparkdom96: `nimble path docopt` produces output
20:33:54subsetparkbut `nimble install` says 'cannot find docopt'
20:34:29dom96Zevv: Glad to hear it :)
20:35:17dom96subsetpark: presumably that's a dependency of your package?
20:35:30dom96what happens when you run 'nimble install docopt'?
20:35:43subsetparkoh - my fault. i had it imported and in my nimble path, but not also listed as a dependency in my nimble file
20:35:52Zevvdom96: I looked at nim(rod) a few years ago, but then found it lacking on async network stuff. But now it's extremely usable, dense code with a lot of meaning in only a few lines.
20:36:26yglukhovdom96: can i ping you about https://github.com/nim-lang/Nim/pull/5938 again?
20:37:01yglukhovspeaking of async... =)
20:37:39dom96yglukhov: No answer regarding this https://github.com/nim-lang/Nim/pull/5938#discussion_r126767021
20:37:56dom96subsetpark: :)
20:37:56FromGitter<l1n3n01z> dom96: speaking of github issues, nim-lang/Nim#5733 broke your book :(
20:38:24dom96l1n3n01z: yep, I guess you created that forum post?
20:38:28dom96I commented on that issue
20:38:46FromGitter<mratsim> Is it possible to issue a pragma to a “result” ? ⏎ ⏎ I currently have this but I’m pretty sure it’s not doing what I want (aligning the heap variable so that hopefully compiler can automatically vectorize with AVX). ⏎ ⏎ ```code paste, see link``` ... [https://gitter.im/nim-lang/Nim?at=5967da55329651f46e85008f]
20:38:49dom96or is this a different issue hrm
20:39:22dom96oh no, it is the same as https://github.com/nim-lang/Nim/issues/5845
20:39:26FromGitter<l1n3n01z> Yeah, I did, but your answer hasn't shown up yet for me.
20:39:44dom96Haven't answered on the forum yet heh
20:39:53FromGitter<l1n3n01z> a yeah, sorry, 5845 is more clear, though the underlying is 5733
20:40:07*samuell quit (Quit: Hejdå)
20:40:22dom96I'm currently going through chapter 8, making sure it's all good
20:40:48*Trustable quit (Remote host closed the connection)
20:41:25*samuell joined #nim
20:41:28Zevvoh you're the guy whose book I bought this afternoon, I'm delighted :)
20:42:41FromGitter<l1n3n01z> Love the book, btw. Just finished it (mostly).
20:43:09dom96:D
20:43:19dom96Thanks to both of you purchasing the book :)
20:43:48dom96Can't wait for it to be printed and done
20:43:49FromGitter<l1n3n01z> Looking forward to the paper, but no pressure! :D
20:44:02ZevvCan't wait for it to be printed and sent to me :)
20:44:07dom96yeah, same. Looking forward to not have to re-read it so many times heh
20:44:15ZevvWas hoping to get it before the holidays, but too late for that
20:44:23dom96yeah, sorry
20:44:27Zevv:)
20:44:40dom96It should have been out a long time ago.
20:45:12Zevvjust like writing software eh
20:46:10FromGitter<l1n3n01z> Then you would probably anyway have had to write a second printing with all the fixes due to nim updates :P
20:46:46FromGitter<l1n3n01z> Still a moving target, this Nim thing
20:47:33FromGitter<l1n3n01z> dom96, your reply on the forums is not showing up. Did you press send for sure? Do you see your own answer?
20:47:56dom96Perhaps. But once it's printed we will likely do our very best to keep everything in the book working.
20:47:58*Arrrr quit (Quit: Leaving.)
20:48:13dom96l1n3n01z: I haven't replied on the forum yet
20:48:24FromGitter<l1n3n01z> ah! sorry, misunderstood
20:49:07FromGitter<l1n3n01z> You commented on the actual issue, not the forum post. Gotcha.
20:53:45ZevvHow do I report bugs / requests, github issues the way to go?
20:54:13dom96yep
20:56:01ZevvI just looked into the json implementation, but I don't feel up to all this meta-stuff to fix this myself at this point
20:58:17FromGitter<l1n3n01z> Go directly to chapter 9, and it will be a piece of cake after that ;)
20:58:37ZevvFirst I need to get my book!
20:58:55ZevvIs there a draft pdf available somehere possibly, so I can start reading already?
20:59:09dom96Yeah, on Manning's site.
20:59:14Zevvah ok
20:59:18FromGitter<l1n3n01z> I thought you couldn't get the book without getting access to the ebooks?
20:59:28dom96yeah, pretty sure you can't.
20:59:32dom96Unless you've ordered on Amazon
20:59:40*nhywyll quit (Quit: nhywyll)
20:59:43ZevvI ordered on amazon
21:00:12Zevv:?
21:00:12Zevv:/
21:02:25FromGitter<l1n3n01z> I'd give manning support a shout. I'm sure you can work something out, cuz I'm fairly sure that if you buy the paperbook you get a free ebook with it.
21:02:42Zevvwill do, thanks
21:02:44Zevvoff to bed now
21:02:55ZevvI'll stick around here, thanks for the help so far
21:03:35*girvo joined #nim
21:03:35dom96yeah, give them an email.
21:05:55FromGitter<l1n3n01z> dom96, one thing about nimble. Is the src directory deprecated?
21:06:09dom96nope
21:06:28dom96You need to make sure to specify `srcDir = "src"` in your .nimble file
21:07:08FromGitter<l1n3n01z> ok, but it uses very harsh language when you forget it :P
21:07:21FromGitter<l1n3n01z> and there's no mention of it here https://github.com/nim-lang/nimble#project-structure
21:08:07*girvo quit (Ping timeout: 246 seconds)
21:09:45subsetparkl1n3n01z - it's not deprecated, but it's not included in the standard structure
21:10:10dom96PRs/Issues welcome :)
21:10:15subsetparkin terms of the standard structure it's only necessary if the "top-level" of the nim source tree is not the same as the "top-level" of the project itself
21:10:38subsetparkotherwise it's non-standard
21:10:42dom96I wonder if it would be a good idea to make it default.
21:11:16dom96The error message for this case should improve at least though
21:11:17wishihey, can anyone point me towards a documentation on how to use visual c++ instead of gcc?
21:11:24dom96We can detect this and suggest to the user that they are missing this directive
21:11:45FromGitter<l1n3n01z> And even include it in the wizard
21:11:47subsetparkseems like an unnecessary complication to make it default, no? most nimble projects will be able to contain their .nim files at the top level
21:13:40FromGitter<ephja> more verbose output could provide the user with some clues
21:13:47dom96it would encourage this directory structure
21:13:52dom96which makes sense for most projects
21:14:41*couven92 quit (Ping timeout: 248 seconds)
21:14:44dom96if most projects will use this, it follows that it should be default
21:14:52FromGitter<l1n3n01z> The hint that is given is quite funny
21:15:08FromGitter<l1n3n01z> Hint: Rename the directory to 'testnimble' or prevent its installation by adding `skipDirs = @["src"]` to the .nimble file.
21:15:40subsetparkwait, dom96: which 'this'?
21:16:03dom96subsetpark: `srcDir = "src"`
21:16:11subsetparkin the structure changes we made recently, we explicitly encouraged not using srcDir unless it was necessary
21:17:09dom96we did? I guess we should rethink that then :)
21:18:23subsetparkI still don't understand why one would encourage it... it seems like it's adding another layer of directory structure, and another directive in the nimble file, where none are needed
21:19:00euantorThere was some discussion in the past about having `nimble init` create a `src` dir and more of a project structure I believe
21:19:04euantorWhich I'd be all for
21:19:31euantorCreating the `src/` dir and an empty main file named with the module's name would make perfect sense to me
21:20:30*jsgrant_ joined #nim
21:24:39FromGitter<l1n3n01z> That also makes sense to me.
21:25:21*subsetpark shrug
21:28:37dom96subsetpark: you are right that it is a bit redundant since there will always be a pkgName/ directory in there anyway
21:32:09euantorIt follows the convention of most other languages and packaging systems though
21:32:20euantorWhich can be convenient for people coming from elsewhere
21:33:22FromGitter<l1n3n01z> dom96, I just added a relevant bug report on the book forum
21:34:12FromGitter<l1n3n01z> @euantor exactly
21:34:22subsetparkeuantor - like this? https://www.irccloud.com/pastebin/dEsTVKP6/
21:34:32euantoryep
21:34:55euantorSame structure as almost all of my packages (all that I've touched recently anyway)
21:35:17*ShalokShalom quit (Remote host closed the connection)
21:35:25euantorWith a `tests` and `docs` directory with obvious contents. For example: https://github.com/euantorano/pledge.nim
21:35:51subsetparkright, but there's only a single file in your src directory there
21:36:02euantorAnd having the convention of a nimble task named `test` to run unit tests
21:36:41dom96l1n3n01z: replied
21:36:43euantorOk, here's a slightly bigger example: https://github.com/euantorano/serialport.nim
21:37:02FromGitter<l1n3n01z> nimble itself follows this convention.
21:37:57euantorIf nothing else, it would be nice to have a flag to generate this structure :)
21:38:41dom96yes, nimble init should be more opinionated
21:41:10FromGitter<l1n3n01z> @dom96 replied
21:42:38dom96replied
21:44:20dom96Whew. Chapter 8 finished
21:44:43dom96My eyes are about to dry out
21:44:52FromGitter<l1n3n01z> Is there a MEAP 11?
21:46:54dom96I don't think so.
21:47:01dom96The focus is on the print edition
21:47:13FromGitter<l1n3n01z> ah, understandably.
21:48:05FromGitter<l1n3n01z> So, sorry about being obstinate, but I still don't see how you can not run into the warning when you run nimble init initially
21:48:25FromGitter<l1n3n01z> Unless the user is not asked to create the dir structure first
21:48:36dom96Because I tell the reader to edit the .nimble file after running 'nimble init' :)
21:48:47dom96I guess that wasn't visible in my screenshot
21:49:25FromGitter<l1n3n01z> Ah, ok, so the warning shows up, but the reader is given a heads up. That's fine :)
21:50:52dom96It doesn't show up
21:51:08dom96Or hrm
21:51:15dom96I guess it does when running 'nimble init'
21:51:29FromGitter<l1n3n01z> :D
21:51:46dom96but eventually 'nimble init' will be smart enough to detect 'src'
21:52:19FromGitter<l1n3n01z> And because the "hint" that nimble gives you is not helpful at all, this was the most frustrating part of the book for me
21:53:07dom96but the hint tells you precisely what you should do :\
21:53:23dom96Tweeter isn't a library
21:53:30dom96so skipExt = "nim" makes sense
21:53:38dom96although nvm I'm tired
21:53:47dom96It says to use skipDir = "src" doesn't it
21:54:03FromGitter<l1n3n01z> nimble gives you the following hint, as I said on the forum:
21:54:04dom96so yeah, it could be better
21:54:10dom96but this is a new thing
21:54:15FromGitter<l1n3n01z> Warning: File 'tweeter.nim' inside package 'tweeter' is outside of the permitted namespace, should be inside a directory named 'tweeter' but is in a directory named 'src' instead. This will be an error in the future. ⏎ Hint: Rename the directory to 'tweeter' or prevent its installation by adding `skipDirs = @["src"]` to the .nimble file.
21:54:22dom96Nimble isn't considered mature yet
21:55:03FromGitter<l1n3n01z> skipDirs = @["src"] is not what I ended up with, but srcDir = "src"
21:55:23FromGitter<l1n3n01z> I'm not sure actually what skipDirs does :P
21:55:31dom96Yes, well, that's not correct either
21:55:37dom96For this project at least
21:55:51dom96You only want Nimble to install the binary
21:55:52dom96nothing else
21:56:01dom96so you should tell it to skip all the .nim files
21:59:22FromGitter<l1n3n01z> huh, maybe it's just me..
22:00:40*Matthias247 quit (Read error: Connection reset by peer)
22:00:49FromGitter<l1n3n01z> So I saw this warning and this was my thought process: "Well, I could rename it to tweeter, but then it's different from the book. I'm definitely not using skipDirs, because why would I not want this file to be compiled??"
22:02:17FromGitter<l1n3n01z> And then I went on github and saw that people were using srcDir = "src" and thought that was good. Of course I didn't actually read the documentation for nimble, except the thing about project structure.
22:03:34dom96yeah, like I said this warning is relatively new
22:03:46dom96so unfortunately it's bound to be confusing in certain circumstance
22:04:12dom96But this is why I tell my readers to join here and ask questions :)
22:04:19*girvo joined #nim
22:04:45euantorBy the way, this whole forum topic isn't publicly visible - it likely needs approving
22:05:23dom96it's on manning's forum
22:06:48euantorAh, that would explain it
22:09:03*girvo quit (Ping timeout: 260 seconds)
22:11:39FromGitter<mratsim> I prefer the src/ tests/ docs/ structure as well.
22:19:08*samuell quit (Quit: Hejdå)
22:29:23FromGitter<l1n3n01z> @dom96 I'd be happy to look at the current version, work through it again and give you feedback. I also completely understand if that's not feasible right now.
22:29:24*v17d joined #nim
22:32:52dom96Afraid I can't share it
22:33:07dom96Time for bed, good night!
22:33:23FromGitter<l1n3n01z> np! Good night
22:36:04*arnetheduck quit (Ping timeout: 276 seconds)
22:42:40CalinouI answered the Nim survey a few hours ago :P
22:42:44Calinouhi
22:43:02Calinoudom96: I was wondering by the way… there is a question about Nim's garbage collector, and whether it should be replaced with something else (or kept)
22:43:13Calinouis the garbage collector a common source of criticism on Nim?
22:43:29Calinou(alternatives are suggested in the answers, but would they break existing programs if implemented?)
22:46:06*gokr quit (Ping timeout: 240 seconds)
22:46:13FromGitter<l1n3n01z> I know that I have a huge distrust of garbage collectors in general
22:47:39FromGitter<l1n3n01z> I was more interested in Rust than Nim, specifically because of the garbage collector
22:49:03federico3Calinou: it's not
22:49:12Calinouwell, I became interested in Nim because I wanted a language that's easy to use, yet fast
22:49:20Calinouand Rust does not quite fit the definition of "easy to use" to me
22:49:25Calinou(unfortunately)
22:49:56FromGitter<l1n3n01z> But then Nim is just so nice in so many ways, and presumably the garbage collector is not a problem in hardly any use case
22:52:19Calinouto be fair, I also look at Crystal from time to time
22:52:22FromGitter<l1n3n01z> Personally I feel that there should be an official tutorial on how to write code that doesn't touch the garbage collector. I'm a total noobie, but it looks like one can't really use much of any of the standard library without it.
22:52:25Calinoubut it still doesn't support Windows today :P
22:52:45Calinoualso, why do you want to avoid the GC? I'm curious
22:52:50FromGitter<l1n3n01z> yeah, that's a requirement for me, unfortunately.
22:53:16FromGitter<l1n3n01z> Err. Mainly just prejudice from working with fast code in Android
22:53:44Calinougame development?
22:54:01FromGitter<l1n3n01z> almost. Streaming media.
22:54:23FromGitter<l1n3n01z> But it has a lot of the same constraints as game dev.
22:54:33CalinouI see
22:54:40subsetparkWhat's a more robust way than echo of writing to console? stdout.write ?
22:54:49CalinouI'd like to see Nim as a bindable language to Godot, someone is apparently working on it
22:55:06Calinouperhaps write CLI utilities using it… I'm dabbling with JavaScript for this right now
22:55:16FromGitter<l1n3n01z> Also, game dev is my hobby, and game dev hates GC :P
22:55:26Calinouwell, gamedev can sometimes play well with GC
22:55:34Calinouboth Java and C# are known to handle this okay
22:55:42Calinou(Minecraft, and almost any Unity game)
22:55:53FromGitter<l1n3n01z> Yeah, and I'm sure that it's just me being an old dog about it
22:56:45Calinouhow are the compile times in Nim with larger programs? I don't remember
22:56:50Calinou(Rust has issues with this)
22:57:14FromGitter<l1n3n01z> I have no idea. Just doing small programs.
22:57:14federico3Calinou: one of the fastest
22:57:41FromGitter<l1n3n01z> There is a fixed overhead from compiling the standard library
22:57:50FromGitter<l1n3n01z> so small programs could be faster
22:58:09FromGitter<l1n3n01z> but, yeah I heard large programs were really fast in comparison
22:58:37FromGitter<l1n3n01z> (note: I am compiling on windows, a notoriously bad OS for compiling)
23:00:02FromGitter<l1n3n01z> I am also waiting anxiously for Jai.
23:03:10CalinouI know someone who was hyped for Jai too
23:03:16Calinoubut… too much hype kills the hype :)
23:04:15*skrylar joined #nim
23:04:19*yglukhov quit (Remote host closed the connection)
23:05:09*girvo joined #nim
23:07:02FromGitter<l1n3n01z> Yeah, I check up on it every couple of months. It looks like it would be a nice fit for me. I have the same complaints about C/C++ as Jonathan does and I object to the same things in Rust.
23:07:22FromGitter<l1n3n01z> But, meh. Currently having a lot of fun with Nim.
23:09:36*girvo quit (Ping timeout: 240 seconds)
23:09:57FromGitter<l1n3n01z> It really, really nails a lot of things. I have been rewriting pet projects I did in Go in Nim, and it's just so much more expressive.
23:10:06CalinouC/C++ just has a trainwreck of issues, not only on the language itself but also on the ecosystem
23:10:17Calinouit is much easier to acquire and compile software in a cross-platform manner when it's not C or C++
23:10:25Calinou(also, header files…)
23:11:52FromGitter<l1n3n01z> "it is much easier to acquire and compile software in a cross-platform manner when it's not C or C++". Not sure if I agree with this.
23:12:25FromGitter<l1n3n01z> Because most languages use FFI at some point to avoid rewriting things
23:12:33Calinouwell, C libraries work everywhere
23:12:37*nsf quit (Quit: WeeChat 1.7.1)
23:12:38FromGitter<l1n3n01z> and then nobody tests anything on Windows
23:12:38Calinoubut have fun compiling them on anything not Linux.
23:12:42Calinouand on Linux, have fun with LTS distros.
23:12:47FromGitter<l1n3n01z> and nothing works
23:12:59CalinouRust, Java, C#, Go, Nim… all work well on Windows, macOS and Linux
23:13:08Calinouand it is easy to run up-to-date versions if your Linux distribution doesn't provide them
23:13:10Calinou(for the most part)
23:13:19Calinouand there's package managers, unlike C/C++ which has no standard one
23:13:26Calinou(Conan is dead, vcpkg is Windows- and MSVC-only)
23:13:38*skrylar quit (Quit: My iMac has gone to sleep. ZZZzzz…)
23:13:47FromGitter<l1n3n01z> Java is fine. C# is fine, but no idea how well Mono is doing
23:14:01FromGitter<l1n3n01z> Go has a problem with linking on windows
23:14:15CalinouGodot is in the process of integrating with Mono for C# support on all platforms
23:14:17Calinouwhat problem?
23:14:24CalinouI successfully compiled micro on Windows without issues
23:14:31Calinouand without gathering and compiling all dependencies by hand
23:14:59FromGitter<l1n3n01z> I can't remember, i ran into it when I was helping port a Go sublime clone to windows
23:15:11Calinouoh yeah, Lime Text
23:15:15Calinouthat one is a trainwreck, you can stop worrying about it
23:15:18Calinouit's not because of Go ;)
23:15:22FromGitter<l1n3n01z> haha
23:15:32CalinouVSCode/Atom and other things killed it off anyway
23:15:48Calinou(and Sublime Text died off naturally)
23:15:49FromGitter<l1n3n01z> but there was a definite problem with either dynamic or static linking and Go on windows
23:15:58Calinouisn't Go all-static?
23:16:44FromGitter<l1n3n01z> pffff can't remember. I gave up on it at the time. I just see that people are still running into this issue on reddit.
23:22:08*v17d quit (Remote host closed the connection)
23:32:14demi-go is all static; and it is pretty awful because of it