<< 26-02-2018 >>

00:23:52*BitPuffin quit (Remote host closed the connection)
00:29:56*francisl joined #nim
00:34:03*francisl quit (Ping timeout: 252 seconds)
00:39:23*zolk3ri quit (Quit: leaving)
00:49:44FromGitter<zetashift> ah I was having a weird IOError with Nim but seems it's a non Nim issue
00:51:44GitDisc<spaceghost> dom96: http://luna-lang.org sensors and things.
00:55:15*arthurz quit (Ping timeout: 256 seconds)
00:55:25*arthurz joined #nim
01:30:20GitDisc<spaceghost> I'm having trouble choosing where to start, with my set of libretro cores, or getting them running on rumprun.
01:44:11*endragor joined #nim
01:57:52*MJCaley joined #nim
02:04:07*endragor quit (Remote host closed the connection)
02:04:36*endragor joined #nim
02:18:22*endragor quit (Remote host closed the connection)
02:18:51*endragor joined #nim
02:18:52*endragor quit (Remote host closed the connection)
02:20:42*endragor joined #nim
02:32:05*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
02:37:09*francisl joined #nim
02:41:47*francisl quit (Ping timeout: 256 seconds)
02:47:10arthurzI'm curious what is the most frequently requested, but one that does not exist yet unofficial package?
03:04:21GitDisc<treeform> arthurz, there is a repo for that https://github.com/nim-lang/needed-libraries
03:05:02GitDisc<treeform> sorted by comments: https://github.com/nim-lang/needed-libraries/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc
03:05:11GitDisc<treeform> I don't know if there is a clear #1
03:05:19GitDisc<treeform> but here are a ton in the top 10ish?
03:07:37*Pisuke joined #nim
03:07:45*MyMind quit (Ping timeout: 248 seconds)
03:20:53*rockcavera joined #nim
03:23:57*ludocode quit (Ping timeout: 240 seconds)
03:26:12*vivus quit (Quit: Leaving)
03:26:52*ludocode joined #nim
03:28:26*MJCaley quit (Quit: MJCaley)
03:31:16*francisl joined #nim
03:35:33*francisl quit (Ping timeout: 240 seconds)
03:35:33*SenasOzys quit (Ping timeout: 252 seconds)
03:42:25GitDisc<spaceghost> I think what I'll do first is offer a really nice wegl+v8+wdanilo/basegl along with some libraries for browser and node compatibility as I can manage.
03:42:42GitDisc<spaceghost> I think what I'll do first is offer a really nice wegl+v8+wdanilo/basegl+libretro system along with some libraries for browser and node compatibility as I can manage.
03:43:21GitDisc<spaceghost> Then I hope to get a rumprun kernel to run libretro for now.
03:44:42GitDisc<spaceghost> The goal is to have a sort of next-generation electron system that I'll evolve in a more polyglot manner.
03:47:02GitDisc<spaceghost> I think what I'll do first is offer a really nice wegl(with google/ANGLE translation for directx support and the such)+v8+wdanilo/basegl+libretro system along with some libraries for browser and node compatibility as I can manage.
03:47:47FromGitter<zetashift> A solid plan is always a good start
04:02:10*dddddd quit (Remote host closed the connection)
04:09:30*vlad1777d quit (Ping timeout: 256 seconds)
04:23:17*r3d9u11 joined #nim
04:23:36FromGitter<gogolxdong> Anyone working on FFmpeg?
04:31:09*francisl joined #nim
04:35:11*francisl quit (Ping timeout: 245 seconds)
04:50:45*el_tejon joined #nim
05:01:03*endragor quit (Remote host closed the connection)
05:01:57*endragor joined #nim
05:04:42*arecacea1 quit (Remote host closed the connection)
05:05:05*arecacea1 joined #nim
05:22:37*rauss quit (Quit: WeeChat 2.0.1)
05:23:55*rauss joined #nim
05:34:41*r3d9u11 quit (Remote host closed the connection)
05:46:29*endragor quit (Remote host closed the connection)
05:48:50*CryptoToad joined #nim
05:49:32*CryptoToad left #nim (#nim)
05:50:15GitDisc<toad> hey all
05:50:44GitDisc<toad> curious what the best way to get the content in between two known strings would be in nim
05:51:10GitDisc<toad> ie: var lookingFor = getBetween("START", "END")
05:52:39FromGitter<Varriount> toad: You mean slicing?
05:52:57FromGitter<Varriount> Or do you mean comparing sections of two strings?
05:53:33GitDisc<toad> Let's say the text was "START_ARBITRARY_END", I would want to grab "_ARBITRARY_"
05:53:39GitDisc<toad> not sure what the term for that is, it could be slicing
05:55:08GitDisc<toad> It sounds like it's not, I don't want to trim off the characters on either side as it's used in a large chunk of text, I just want it to return the data between my search characters
05:56:13GitDisc<toad> I suppose I could use split() at my start, then split the first index at my end, and grab the first index of that
05:59:11GitDisc<toad> Yeah, basically answered my own question, rubber duck debugging ftw
06:15:15*endragor joined #nim
06:18:29*nsf joined #nim
06:31:35*el_tejon quit (Quit: el_tejon)
06:53:13*r3d9u11 joined #nim
07:12:41FromGitter<mratsim> @gogolxdong no one is working on FFmpeg. But if no one does, in the future I will wrap FFMS to be able to load videos in Arraymancer: https://github.com/FFMS/ffms2
07:30:07FromGitter<gogolxdong> What are you going to train with this?
07:50:12FromGitter<dom96> toad: https://nim-lang.org/docs/parseutils.html#captureBetween,string,char,Char,int
07:50:32FromGitter<dom96> Oh. But that takes chars :(
07:52:09FromGitter<dom96> Parseutils in general has many procs for these types of things. You should check it out, splitting is generally poor man's parsing but if it works for you feel free to use it :)
07:58:35*el_tejon joined #nim
08:04:17*solitudesf joined #nim
08:19:54*couven92 joined #nim
08:21:00*el_tejon quit (Quit: el_tejon)
08:29:26*el_tejon joined #nim
08:35:17*Senketsu joined #nim
08:43:55*PMunch joined #nim
08:54:04*Arrrr joined #nim
09:01:19*Arrrr quit (Ping timeout: 248 seconds)
09:03:20*el_tejon quit (Quit: el_tejon)
09:06:54*xkapastel quit (Quit: Connection closed for inactivity)
09:09:24*PMunch_ joined #nim
09:09:36*PMunch quit (Remote host closed the connection)
09:18:13FromGitter<mratsim> @gogolxdong I want to be able to do deep learning on live video feed: for object detection for example for drones, self driving car, video game AI (that uses an image as input), CCTV security, etc. Currently the only opensource library that allows this is in C and I feel there is a killer application for Nim there
09:18:25*PMunch__ joined #nim
09:19:14*Arrrr joined #nim
09:19:14*Arrrr quit (Changing host)
09:19:14*Arrrr joined #nim
09:21:17*PMunch_ quit (Ping timeout: 268 seconds)
09:22:48FromGitter<gogolxdong> which I am interested in as well, especially for self-driving car , I believe it would come true in 5 years.
09:25:32*Vladar joined #nim
09:26:36*PMunch__ is now known as PMunch
09:26:54FromGitter<mratsim> You can look into darknet: https://github.com/pjreddie/darknet I know people using it for collision detection in drones
09:27:21FromGitter<mratsim> Example video: https://www.youtube.com/watch?v=VOC3huqHrss
09:27:31FromGitter<gogolxdong> Do you have the on-site facilities for testing?
09:27:57FromGitter<mratsim> Also data scientist friends says this course is good: https://www.udacity.com/courses/self-driving-car
09:29:03FromGitter<mratsim> I try quite hard to have a test for everything I release in Arraymancer. For videos though I will have an issue of Travis processing power and no GPU for testing
09:42:07*sendell joined #nim
09:56:41*poopBot joined #nim
09:57:47poopBothi this https://nim-lang.org/docs/smtp.html i dont see anywhere options for attachement , am i missing something or what?
10:04:03*sendell quit (Remote host closed the connection)
10:08:50*derlafff quit (Remote host closed the connection)
10:09:08*derlafff joined #nim
10:16:24FromGitter<gogolxdong> Is this an inspiration for nimble ? ⏎ gx was designed with the following major goals in mind: ⏎ Be language/ecosystem agnostic by providing git-like hooks for adding new ecosystems. ⏎ Provide completely reproducible packages through content addressing. ⏎ Use a flexible, distributed storage backend. [https://gitter.im/nim-lang/Nim?at=5a93de78888332ee3ad2172d]
10:19:16FromGitter<zetashift> don't know anything about gx but it seems to revolve around IPFS whereas nimble doesn't
10:27:27ZevvHi, for debugging I'd like to print an unique ID for object instances (AsyncHTTPClient), implementing
10:27:30Zevv proc `$`(c: AsyncHttpClient): string =
10:27:57ZevvI'm trying to get the addr or ref of 'c', but the expression does not have an address
10:28:27Zevvrepr() does know of an address, though
10:29:37dom96How are you trying to get the address?
10:31:11Zevvaddr?
10:31:48*natrys joined #nim
10:32:24Zevvrepr(addr(c))
10:32:47*SenasOzys joined #nim
10:33:35*Amun_Ra quit (Ping timeout: 240 seconds)
10:33:41*Yardanico_ joined #nim
10:35:03dom96Not sure why that wouldn't work, 'AsyncHttpClient' is a ref
10:35:27ZevvYeah. The whole proc is
10:35:27Zevv> proc `$`(c: AsyncHttpClient): string =
10:35:27Zevv> return $addr(c)
10:35:38Zevvcts.nim(149, 16) Error: expression has no address
10:35:40Zevvis the anser
10:35:57*Amun_Ra joined #nim
10:39:57*Yardanico_ quit (Read error: Connection reset by peer)
10:40:06dom96well, you should be able to use unsafeAddr
10:45:26Araqand that would be wrong, the ID you seek is cast[int](c)
10:45:35FromGitter<mratsim> addr returns a pointer, Nim suppose that playing with a pointer to a non-var parameter is unsafe so it asks you to make extra sure that is what you want
10:45:38Araqsince it's a ref object and you don't care about the stack addresses
10:45:51Zevvyes, that's the one
10:45:54Zevvthanks
10:47:21*floppydh joined #nim
10:57:03poopBothi this https://nim-lang.org/docs/smtp.html i dont see anywhere options for attachement , am i missing something or what??
10:58:37PMunchpoopBot, doesn't seem to have any way to build MIME formatted messages no, but you can do it yourself: https://www.alibabacloud.com/help/faq-detail/51584.htm
11:02:29poopBothmm form what i see this Phyton script uses some Mimemultypart
11:02:34dom96Araq: ahh, still learning new things :)
11:03:06dom96poopBot: yeah, you will likely have to implement this MIME protocol.
11:03:16dom96smtp is pretty barebones
11:03:27poopBotoh i think i am too much newb for that
11:03:33*rokups joined #nim
11:04:37poopBotnot lazy just newb :)
11:07:01FromGitter<mratsim> @zacharycarter Tell this guy to use Nim for his next game / game engine ;): https://github.com/SSYGEN/blog/issues/31 (also good read about the pifalls of solo game development)
11:08:58poopBoti plan to duplicate evry smaller project in do in c# godot to do in Nim too
11:10:04FromGitter<zetashift> I like that plan
11:11:22dom96One of you game devs needs to write a definitive "Why Nim is the perfect language for game development" article
11:15:18FromGitter<Bennyelg> My Nimmy :) ⏎ @dom96 any online shop to buy stickers & mugs , shirts
11:16:57dom96not yet
11:17:35FromGitter<Bennyelg> Ok, thanks.
11:18:32*solitudesf quit (Ping timeout: 245 seconds)
11:21:54*PMunch_ joined #nim
11:22:14*PMunch quit (Disconnected by services)
11:22:18*PMunch_ is now known as PMunch
11:23:40*pwntus is now known as Pwntus
11:24:28FromGitter<mratsim> I’ve added my Nim propaganda here: https://github.com/SSYGEN/blog/issues/31#issuecomment-368469949
11:25:53dom96Nice :)
11:26:37dom96You should add this link as well: https://ldjam.com/users/impbox/games
11:26:40poopBotnice dident know there are UE4 bindings for nim
11:27:01dom96and mention that Smalltrek won one of the Ludum Dares
11:28:06FromGitter<mratsim> added neverwinter nights and impbox link, who is smalltrek, any link?
11:28:17FromGitter<zetashift> @poopBot the bindings are currently unmaintained, the company switched from UE4 to Godot; They did mention that they'd offer any help for those who want to update it
11:29:09dom96mratsim: it's one of impbox's games
11:29:12FromGitter<zetashift> @mratsim one of impbox's games : https://ldjam.com/events/ludum-dare/38/smalltrek
11:29:23FromGitter<zetashift> :D
11:29:31poopBotam not using UE4 anyway my pc is week :( , plan to use godot
11:30:15FromGitter<zetashift> I am probably gonna use Godot too for the 7drl next week
11:30:47FromGitter<mratsim> updated
11:31:05poopBotsux only export dont work stil for bindings
11:31:56FromGitter<zetashift> what do you mean?
11:32:34poopBotyou cant meke game if you use bindings like c# or other
11:33:00poopBotit will work only from editor , you cant realise android or anything else from waht i understand
11:33:42FromGitter<zetashift> The export function is indeed temporarily broken; but only for C#
11:33:49FromGitter<zetashift> C# doesn't use GDNative
11:33:54poopBotit works for nim? did you try it?
11:34:15poopBoti think sombody told me that all bindings use GDNative
11:37:08FromGitter<zetashift> according to https://godotengine.org/article/introducing-csharp-godot " In order to bring C# programming to Godot, we are embedding the Mono runtime into the engine. As of alpha2, Godot is using Mono 5.2 and C# 7.0 is supported. "
11:38:20FromGitter<zetashift> I'm 99% sure a previous godot version had C# exporting disabled because of bugginess
11:38:41poopBotdid you try Nim , does it work?
11:38:43FromGitter<zetashift> @Calinou who is a Godot maestro could tell you more
11:38:57FromGitter<zetashift> I'll try and export the godot-nim-stub with the latest version
11:39:09poopBotok report back :)
11:42:15*vlad1777d joined #nim
11:52:29*poopBot quit (Remote host closed the connection)
11:58:29FromGitter<alehander42> can a user create his own effect in nim's effect system ?
12:00:16*yglukhov joined #nim
12:02:49*Snircle joined #nim
12:03:43*Arrrr quit (Ping timeout: 248 seconds)
12:04:19Araqsure
12:09:48*yglukhov quit (Remote host closed the connection)
12:11:16*r3d9u11 quit (Quit: Leaving)
12:11:48*r3d9u11 joined #nim
12:14:23*vlad1777d quit (Ping timeout: 252 seconds)
12:18:28*Arrrr joined #nim
12:18:28*Arrrr quit (Changing host)
12:18:28*Arrrr joined #nim
12:23:52FromGitter<zetashift> @poopBot I succesfully exported to Windows and HTML5, though the HTML5 one had a few errors but I think that's Godot's WIP HTML5 export target
12:30:32FromGitter<mratsim> @alehander42 You can use the tags
12:33:12FromGitter<alehander42> so I wonder
12:33:16FromGitter<alehander42> if I have a tag A
12:33:42FromGitter<alehander42> and I have a function ⏎ ⏎ ```proc f(a: int) {.tags: [A].} = ⏎ # stuff``` [https://gitter.im/nim-lang/Nim?at=5a93fea535dd17022ef5ea36]
12:34:22FromGitter<alehander42> does Nim check if actually it is `A` ? (e.g. if the body is just `discard`, does it tell me "this function is not A")
12:34:33*SenasOzys quit (Ping timeout: 240 seconds)
12:34:38FromGitter<alehander42> (obviously it works for the other case when I want `not A`)
12:37:24FromGitter<mratsim> no, you are tagging the function as A. The compiler trusts your tag. (I’ve not used the effect system extensively but I tried with OpenMP which is tagged “SideEffects”)
12:42:50FromGitter<alehander42> hm, I see, when I tried to imagine how it would work, I imagined it like `{.A: true / false / trust.}`
12:43:23FromGitter<alehander42> but probably that's not needed in most cases
12:47:41*francisl joined #nim
12:52:09*francisl quit (Ping timeout: 252 seconds)
12:53:03*poopBot joined #nim
12:53:09*SenasOzys joined #nim
13:08:18*BitPuffin joined #nim
13:15:35*jsn- quit (Ping timeout: 240 seconds)
13:16:00*jsn- joined #nim
13:21:00Araqwell it is inferred if you don't write the .tags
13:21:02*jsn- quit (Ping timeout: 245 seconds)
13:21:26Araqand if you write the .tags it's checked not to lie
13:21:38Araqbut "superfluous" tags are not an error
13:21:45Araqwhich is how you can introduce a new effect
13:22:23Araqworks well in my experience, no true/false/trust required
13:22:31*jsn- joined #nim
13:28:26*Jesin quit (Quit: Leaving)
13:30:47*francisl joined #nim
13:32:05*Arrrr quit (Read error: Connection reset by peer)
13:34:57*francisl quit (Ping timeout: 240 seconds)
13:45:01*floppydh quit (Quit: WeeChat 2.0.1)
13:46:22FromGitter<zacharycarter> @dom96 - I'm not sure if I agree that Nim is the BEST language for game engine development
13:46:59dom96really? Why?
13:47:13FromGitter<zacharycarter> I have a quick stand up - I'll explain after that
13:48:17*poopBot quit (Remote host closed the connection)
13:51:15FromGitter<zacharycarter> @dom96 - I think Nim's GC makes it difficult to implement certain subsystems that modern engines exhibit - like parallelized job / task systems.
13:53:51dom96That's a shame :/
13:54:01dom96What would you consider the best language?
13:54:16dom96Is there something we could to make it easier to implement these subsystems?
13:54:21dom96*could do
13:54:57FromGitter<zacharycarter> C/C++ - the ecosystem is huge and you don't have a GC to deal with when writing multi-threaded code
13:55:41FromGitter<zacharycarter> having said that - I still think Nim is useful for game development. I plan on writing most of the engine code for my project in C/C++ and then exposing a C interface to bind to with Nim to write gameplay code - similar to what godot does.
13:56:49dom96Couldn't you still use Nim without a GC to write the engine?
13:57:14dom96I know the ecosystem isn't there, but surely the language itself is far better than dealing with C/C++
13:58:15dom96But I wonder what of the C/C++ ecosystem you would use
13:58:39dom96Most game engines seem to re-write almost everything, including networking
13:58:53*francisl joined #nim
13:59:26FromGitter<zacharycarter> Fibers for instance - not really a clear way to use those with Nim at the moment.
13:59:46Araqyou're supposed to use .async instead :P
14:00:23FromGitter<zacharycarter> well there's no clear example of this anywhere
14:00:33FromGitter<zacharycarter> at least that I've stumbled upon
14:00:48Araqthe manual contains an example of a tasking system with closure iterators
14:00:58Araqwasn't helpful?
14:01:03Araqor did you miss it?
14:01:54Araqhttps://nim-lang.org/docs/manual.html#iterators-and-the-for-statement-first-class-iterators
14:02:17FromGitter<zacharycarter> oh - I see - using the async module... hrmm... yeah I guess this could work but then you're using a single thread
14:02:40Araqyou can move tasks to a different thread but it copies
14:03:25Araqbut you can use a 'ptr' to the real data and then it only copies little
14:04:35FromGitter<zacharycarter> okay - thank you for explaining that to me, and linking the example - I'll play around with this.
14:05:05AraqNim's multi threading doesn't win any prices in the elegance department but it's workable until the shiny v2 features get production ready
14:05:33*francisl quit (Ping timeout: 240 seconds)
14:06:25Araq*prizes
14:08:14*salewski joined #nim
14:08:16Araqdom96, yeah EA has a custom version of the STL
14:09:58salewskiAraq, do you think it is wise to mention v2 at all? So 1.0 will come out, but no one will be interested any more.
14:10:07*francisl joined #nim
14:10:12salewskiAll will say: lets wait for 2.0
14:10:28Araqah damn, good point
14:11:02salewskiBut indeed, v2 without GC may make nim really popular.
14:11:20FromGitter<zacharycarter> I just need to play around with Nim's async stuff more - maybe it will be the perfect solution for what I'm trying to do
14:15:18FromGitter<mratsim> I’m pretty sure lots of people will say “aww, too bad, I really don’t want to manage my own memory, gimme a GC"
14:15:35dom96zacharycarter: Yeah, please do, and feel free to ping me if you have any questions about Nim's async.
14:15:47dom96mratsim: yep, I'm one of those people
14:17:05dom96I know that Araq is excited about his new ideas but this v2 talk is even turning me off. I like the GC, I don't want it to go away, I doubt we will be able to pick off enough Rust users with a v2 that enables GC-less Nim usage.
14:17:12FromGitter<zacharycarter> thanks @dom96 - I will
14:17:30dom96There is plenty of Python, Go, and Swift users that we should be focusing on
14:17:53Araqyou mean the Swift which lacks a GC? :P
14:18:03FromGitter<krux02> Araq: what's your problem with my fix for `proc write(File, float)`?
14:18:20livcdalso how exactly is swift usable on Windows and Linux ? :-X
14:19:05dom96It might not have a "GC" but it surely has "automatic memory management"
14:19:10dom96Which to most people means "GC"
14:19:32Araqso in other words you don't understand my v2 stuff and yet it puts you off, got it
14:20:15dom96Indeed, I don't. 99% of people who read these IRC logs won't either.
14:20:44dom96They'll just dismiss Nim as trying to be too many things
14:20:56Araqignorance is a weak position to argue from.
14:21:04FromGitter<mratsim> I thought it was just trying to be the best ;)
14:21:11Araqwhy should I take your objections seriously?
14:21:30livcdaraq just needs to find a big corporation for backing :d
14:21:34FromGitter<mratsim> for marketing it actually makes sense to argue from ignorance, we ar supposed to educated potential users about Nim’s benefits
14:21:53dom96Yep, I always look at these things from the perspective of marketing
14:22:02*athenot joined #nim
14:22:24Yardanicolivcd, for linux there's official builds
14:23:13FromGitter<mratsim> Call that “Scope-Based Memory Reclamation” —> SBMR, Does Nim has a GC? no. Do we have to manually managed memory? No but you can. How does it do it? Scope based memory reclamation!
14:23:20Yardanicofor windows - there's one too https://swiftforwindows.github.io/ (it uses mingw though)
14:23:33dom96I think it will surprise you to see the amount of times things written in this IRC channel are repeated on HN/Reddit
14:24:01Araqit surprises me anybody reads HN/Reddit
14:24:47FromGitter<Vindaar> My impression is that v2 is supposed to be so smart about memory allocations that once all the `sink`, `destroy` etc procs are defined, the compiler is able to handle the memory allocations mostly by itself. So that it basically mostly feels GC'ed, while it actually isn't. I mean Araq's point is obviously not to have all of us go back to calling malloc and free all over the place. Do I understand that correctly, Araq?
14:25:02dom96https://nim-lang.org/assets/news/images/survey/nim_found.png
14:25:03livcdYardanico: Yeah there are even some frameworks on Linux but nobody seems to care. Also that Windows port is I think an unofficial one done by 1 korean guy ? I am not sure anyone actually uses Swift anywhere else than on iOS/OSX
14:25:15Yardanicolivcd, well I just mean it's available :D
14:25:45livcdYardanico: but on Windows it really is not is it ? I am not even sure that one works. But I get your point :D
14:25:56*dddddd joined #nim
14:26:05FromGitter<krux02> Araq: you should be happy, because aparently it's the main source of nim users
14:27:53dom96Vindaar: That sounds right to me. If so, perhaps saying that Nim v2 will have "no GC" is bad.
14:28:26AraqVindaar: That is correct.
14:28:36dom96We should instead say that disabling the GC in Nim v2 will be much easier.
14:29:02YardanicoYeah, AFAIK Araq mentioned that GC will still be available to use, but stdlib types will prefer to use destructors
14:30:07FromGitter<mratsim> I still think we should use a new name instead of GC or destructors to avoid both the GC and manual memory management connotations
14:30:15Araqit's "scope based memory management", implicit but predictable
14:30:31livcdwith all this talk about v2 when is v1 going to be released ? :D
14:30:31Araqor rather "implicit and works well with foreign libraries"
14:30:52*endragor quit (Remote host closed the connection)
14:31:11FromGitter<Vindaar> Good to know :) Then yes, I agree with @dom96 and @mratsim, we should be careful to do proper :D
14:31:17FromGitter<Vindaar> *marketing
14:31:56*couven92 quit (Ping timeout: 276 seconds)
14:33:13FromGitter<survivorm> @dom96 Is there more than 100% users in the survey, or are my eyes failing me? I thought there is only one way to get to know of something, not several. Like no way to make second first impression :)
14:33:17*endragor joined #nim
14:33:40FromGitter<krux02> I am not so sure if Nim would hold against a big crowd of new users. It already has over 1111 issues with only a small user base.
14:34:17FromGitter<survivorm> I think it's more a question of carefully expanding core team
14:34:31*endragor_ joined #nim
14:35:58FromGitter<survivorm> ogrammersmore users => more money on community, hopefully, so nim would be able to *afford* more pri on the core team, but the question is, is Araq ready to lead the developer team in nim's core?
14:36:17FromGitter<data-man> @mratsim: nim-glm isn't binding. It's pure Nim library. :)
14:36:45dom96survivorm: that question allowed multiple choices, I interpret it as people seeing Nim in multiple places
14:36:45*sendell joined #nim
14:36:53FromGitter<survivorm> No offence meant, of cource
14:37:23dom96krux02: more users -> more PRs -> more fixes
14:37:26FromGitter<survivorm> @dom96 Still, to me it's like second-first impression
14:38:00FromGitter<survivorm> @dom96 still, that won't work without core team boost
14:38:15*endragor quit (Ping timeout: 268 seconds)
14:38:28dom96What do you mean by "boost"? :)
14:38:31FromGitter<survivorm> You can only get so far working almost single-handly
14:38:50FromGitter<survivorm> by people, of cource
14:38:53*endragor_ quit (Ping timeout: 240 seconds)
14:40:07FromGitter<survivorm> And i mean people who are doing that not part-time (which is great, of cource, but not enough)
14:41:51*natrys quit (Ping timeout: 245 seconds)
14:42:57FromGitter<survivorm> I've had a discussion with my collegue, recently, about using nim in production
14:43:26FromGitter<survivorm> And i couldn't beat his community argument, sadly
14:45:47Araqchicken-and-egg
14:45:55FromGitter<krux02> dom96: more users, more opinions, less time to think about them, more decisions, more bad decisions.
14:46:17Araqspeaking of which
14:46:37FromGitter<survivorm> Even if ecosystem is great and all, community is friendly, it's small and i don't see it's growing rapidly. So, business will hardly take a risk in using nim, given the alternative. So, no community growth, and so on
14:46:42Araqkrux02: you tend to mix refactorings with bugfixes
14:46:50Araqand I don't agree with your refactorings
14:47:01FromGitter<krux02> yea I do mix them up
14:47:19FromGitter<krux02> I think to fix bug it is essential to clean up the mess a bit.
14:47:30FromGitter<krux02> what don't you agree about?
14:47:33*Jesin joined #nim
14:47:51AraqsetLen s, n+procWritingToABuffer
14:48:35FromGitter<krux02> what is so bad about it?
14:49:10Araqit's not my style
14:49:26FromGitter<krux02> what is your style?
14:49:48Araquse a 'let newLen = ...' at least
14:49:55FromGitter<krux02> my style it to make bulk operations and try not to write loops, even if they would be fast
14:50:11FromGitter<krux02> ok I can agree on that
14:50:12Araqand you use sprintf instead of copyMem etc
14:50:31Araqyour code is hardly an improvement on the original
14:51:04FromGitter<krux02> http://ix.io/PNU
14:51:05Araqmy style is to use the C library as a last resort since eventually we will be free of libc dependencis
14:51:29*endragor joined #nim
14:51:51Araqc_sprintf(result[^1].addr, buffer[0].addr) # another thing which is a small WTF ;-)
14:52:23FromGitter<krux02> well it is wrong
14:52:35FromGitter<krux02> because I set the new before
14:52:49Araqyes, obviously.
14:53:01Araqbut once it's correct, it stays ugly
14:53:18FromGitter<krux02> http://ix.io/PNW/nim
14:53:24Araqagain, libc won't be around forever.
14:53:34*yglukhov joined #nim
14:53:42FromGitter<krux02> all I want is to apend a 0 terminated cstring to a string
14:53:51FromGitter<krux02> without new memory allocation and without a loop
14:54:15Araqso use 'add'
14:54:16FromGitter<krux02> the loop has to be somewhere, I know, but I prefer not to write the loop
14:54:26FromGitter<krux02> is it overloaded?
14:55:10Araq proc add*(x: var string, y: cstring)
14:55:27Araqbut probably not available in this position in system.nim
14:55:43*endragor quit (Ping timeout: 252 seconds)
14:56:12Araqloop or not, everything is better than C's format strings which are a whole attack vector
14:56:24Araqby themselves.
14:56:55Araqit's not a "bulk operation" by any meaningful interpretation of this term.
14:57:47Araqthat C lacks a simple floatToA is also not in its favour
14:57:57*francisl quit (Remote host closed the connection)
14:58:36*francisl joined #nim
14:59:37Araq<survivorm> I'm ready to lead a team of Nim core developers.
14:59:41Calinou@zetashift C# exporting isn't supported yet but it's being worked on right now. Mono 5.4 is supported (5.8 isn't right now, but it will eventually be)
15:00:03AraqCalinou, moved from Urho to Godot?
15:00:14CalinouI've never actually used Urho…
15:00:24Calinouthat said, NinjaSnowWar is the coolest open source engine demo I've ever played :D
15:00:28Araqoh ok
15:00:38FromGitter<krux02> Araq: http://ix.io/PO7/nim
15:01:33Araqkrux02: now we're getting somewhere
15:02:33Araqbut we should probably have a proc add(s: var string; buf: cstring; buflen: int)
15:10:03*natrys joined #nim
15:11:17*yglukhov quit (Read error: Connection reset by peer)
15:11:30*yglukhov joined #nim
15:15:37*MJCaley joined #nim
15:18:46FromGitter<k0pernicus> Hello friends!
15:19:50FromGitter<k0pernicus> Do you experience some issues refreshing the package list?
15:20:34FromGitter<k0pernicus> (using Nimble)
15:20:54FromGitter<Vindaar> Hello there! Seems to work fine for me
15:22:39FromGitter<k0pernicus> Ok, I think I have troubles with my OpenSSL config...
15:22:44FromGitter<k0pernicus> Thanks @Vindaar
15:28:46FromGitter<krux02> Araq: yes we should have that. Wouldn't that be a good use case for openarray as value thing?
15:29:12Yardanicobtw, I don't know if this was posted before, but Nim shows very good (and expected) performance: https://github.com/cart/godot3-bunnymark#benchmark-run---february-22-2018
15:30:05salewskiI guess the "Scope based memory management" may attract many people from the area of embedded devices and microcontrollers.
15:30:23salewskiBecause there is currently mostly only C and C++.
15:30:40Araqsalewski, it also helps in wrapping GTK3, no?
15:31:44salewskiAraq, I dont know. GC seems to work fine for GTK3, I fear "Scope based memory management" is much new work for me...
15:32:29Araqcurrently you use new + finalizers, right?
15:32:54salewskiYes.
15:33:24Araqthat will easily map to new + destructor
15:33:45salewskiFine, indeed I hoped that :-)
15:35:12salewskiBye.
15:35:15Araqbye
15:35:19*salewski quit (Quit: WeeChat 1.9.1)
15:39:57FromGitter<krux02> Araq: http://ix.io/POZ/nim
15:40:25FromGitter<krux02> but I get the following Error: system module needs 'setLengthStr'
15:41:36Araqmove it to sysstr.nim
15:46:24*MJCaley quit (Quit: MJCaley)
15:52:03FromGitter<dom96> @k0pernicus macOS? If so you will likely need to install OpenSSL via homebrew or some other way
15:52:17FromGitter<krux02> Araq: what is the problem with it in system? there are other procs that use setLen, too.
15:52:18FromGitter<dom96> Newest Nim devel should give a better error message for this.
15:53:03FromGitter<krux02> for example insert uses setLen
15:53:54Araqkrux02: insert is in line 3893
15:54:04Araqafter sysstr has been included
15:54:36Araqit sucks but it's really not hard to understand
15:54:54FromGitter<krux02> ok
15:55:02Araqthere is little magic going on, the compiler follows system.nim from top to bottom
15:56:07FromGitter<krux02> can I move the entire branching block of `add(var string)` to sysstr?
15:56:31Araqsysstr is not included for JS
15:56:38Araqso ... unlikely.
15:56:46FromGitter<k0pernicus> @dom96 Yep, I already installed OpenSSL, had troubles to link it, installed LibreSSL, same thing :-/
15:56:53Araqneither is it included in NimScript
15:57:19FromGitter<k0pernicus> @dom96 Are you using OpenSSL from brew? 1.0.2n ?
15:59:02FromGitter<dom96> Yep
15:59:16FromGitter<dom96> You need to make sure it's loaded by nimble
15:59:41FromGitter<k0pernicus> Yep, I think that’s the issue...
15:59:45FromGitter<dom96> There is an env v you need to set
15:59:54FromGitter<dom96> *var
16:02:45FromGitter<krux02> ok whn sysstr is not included for JS then I don't need to do the branching
16:02:50FromGitter<krux02> that's good
16:04:34FromGitter<krux02> Araq, can I create a string from a cstring and a length?
16:05:05FromGitter<k0pernicus> @dom96 You are talking about `-d:ssl` right ?
16:05:39FromGitter<k0pernicus> I don’t see anything about OpenSSL issues in the nimble README...
16:05:54Araqkrux02: unfortunately you can't
16:06:21FromGitter<krux02> that is bad
16:06:49FromGitter<krux02> buf yea I don't need this proc for the nimvm
16:07:01FromGitter<krux02> can I prevent a proc for generation on the vm?
16:09:49Araqwhen nimvm or whatever it's called
16:10:14Yardanicohttps://github.com/nim-lang/Nim/pull/7254#issuecomment-368553888 :D
16:10:54Araqoh
16:11:03AraqI forgot about that one :D
16:12:06FromGitter<krux02> well it doesn't really matter. other proces also can't be generated on the VM and when you never do that, there is no problem at all.
16:13:28FromGitter<krux02> there is only the {.compileTime.} pragma for procs. maybe the other thing {.runtime.} would be nice, too.
16:14:06Araqwhy? if it's not .compileTime, it's .runtime
16:14:18Araqso ... I made the test
16:14:24Araqhttps://nim-lang.org/docs/theindex.html
16:14:30Araqsearch for "password"
16:14:47*kunev quit (Ping timeout: 245 seconds)
16:14:52FromGitter<krux02> well no, what I mean is, compileTime prevents C code generation. What I mean is preventing VM code generation
16:14:55Araq7-9th hits
16:15:16Araqwe all failed to use the index :-(
16:16:02FromGitter<Vindaar> Well, at least @dom96 wasn't aware about it either anymore :D
16:16:09Araqthough terminal.nim should reference rdstdin.nim
16:16:27Araqand arguably these modules could be merged but meh
16:16:41*kunev joined #nim
16:19:57*xkapastel joined #nim
16:20:58FromGitter<Vindaar> But merging them would mean termios would become impure, no? I guess that's why they're separate in the first place?
16:21:01*solitudesf joined #nim
16:22:12FromGitter<krux02> Araq: when I call `str.setLen(newLen)` is then str[newLen] always set to 0 ?
16:23:08FromGitter<krux02> ok it is, never mind
16:24:36*Trustable joined #nim
16:25:48FromGitter<k0pernicus> @dom96 I recompiled Nim from scratch, the `-d: ssl` option was ok, but I still have troubles with `nimble refresh`...
16:27:42*r3d9u11 quit (Remote host closed the connection)
16:28:01Araqvindaar: maybe but terminal.nim does not depend on any DLLs (except the ones from the OS), so it is quite "pure"
16:28:14Araqit's mostly a historical split
16:28:23*Jesin quit (Quit: Leaving)
16:29:00*SenasOzys quit (Ping timeout: 256 seconds)
16:32:48TrustableHi Araq, I'm waiting for your feedback on this PR: https://github.com/nim-lang/Nim/pull/7220
16:33:24FromGitter<Vindaar> I was referring to rstdin.nim, since that imports the wrapper of linenoise
16:34:08AraqVindaar: er ok, but then the password thing should really move to terminal.nim
16:34:13Araqas it's unrelated
16:34:30Araqin fact, it should actively avoid the history feature
16:34:48*PMunch quit (Quit: Leaving)
16:34:58AraqTrustable, ah, too bad github doesn't tell me about updated PRs
16:35:08FromGitter<Vindaar> Yeah, I agree, especially because the only part that's actually using linenoise at all are the two normal unix readLineFromStdin procs. Everything else (including the password prompts) are, as you say, unrelated
16:35:55Araqmove them and add this change to changelog.md
16:36:03AraqI doubt this needs a deprecation period
16:36:13Araqnot hard to adapt the imports, is it?
16:37:20FromGitter<Vindaar> indeed
16:37:33FromGitter<krux02> Araq: how do I solve the nimscipt bug?
16:37:58FromGitter<krux02> writeFloatToBuffer also needs to work in nimvm
16:38:10Araqkrux02: I am not sure :-)
16:38:15FromGitter<krux02> or nimscipt
16:38:20FromGitter<krux02> I have an idea
16:38:33Araqwell it used to work and your refactoring broke it :P
16:38:45*SenasOzys joined #nim
16:38:52Araq(which is btw bugfixes shouldn't be concerned with refactorings)
16:40:50*koranza joined #nim
16:40:52Araqgit pull origin devel
16:40:52AraqFATAL ERROR: Couldn't agree a key exchange algorithm (available: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521)
16:40:52Araqfatal: Could not read from remote repository.
16:40:55Araqhuh?
16:42:10Araqdo I need to update my git?
16:42:55*floppydh joined #nim
16:43:08FromGitter<krux02> Araq: But in this case the bug came, because it was (and still is) very unstructured. I just unufied the formating to fix the bug.
16:47:25FromGitter<krux02> if there a define for native code?
16:47:34FromGitter<krux02> eg when copymem is available?
16:49:11Araqwhen declared(copyMem) ?
16:49:19Araqbut it's 'when nimvm'
16:49:45FromGitter<krux02> not really
16:49:55FromGitter<krux02> because javascript
16:51:19Araqgit pull origin devel
16:51:20AraqFATAL ERROR: Couldn't agree a key exchange algorithm (available: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521)
16:51:20Araqfatal: Could not read from remote repository.
16:51:24Araqany ideas?
16:51:31AraqI'm on Windows, it used to work fine
16:51:46Araqupdate my git to 2.16.2, makes no difference
16:51:53Araqdid github change things?
16:51:58*couven92 joined #nim
16:52:04*fvs joined #nim
16:53:03FromGitter<krux02> on this linux machine everything works fine
16:53:14FromGitter<krux02> git version 2.11.0
16:55:21Araqupdated my putty, no difference
16:55:35FromGitter<k0pernicus> Works well for me
16:56:28FromGitter<k0pernicus> macOS - 2.14.3
16:56:36Araqhttps://github.com/gitextensions/gitextensions/issues/4509 probably this one
16:58:45Araqhmmm my git installation has /usr/bin/[.exe
16:59:01Araqamateurs can't write portable software and need an Unix emulator
17:00:53FromGitter<krux02> What is with this backwards index, why did it change?
17:01:11FromGitter<Bennyelg> guys, how do i parse string to date :]
17:01:28FromGitter<krux02> depends on the date format
17:01:43Araqkrux02: it is a bugfix
17:02:01FromGitter<Bennyelg> YYYY-MM-DD
17:02:03FromGitter<Vindaar> https://nim-lang.org/docs/times.html#parse,string,string ⏎ should be what you want
17:02:48FromGitter<krux02> Araq: for what bug?
17:03:09FromGitter<Bennyelg> @Vindaar thanks
17:03:29FromGitter<Vindaar> be careful about whether to use capital or non capital letters ;)
17:03:43FromGitter<Bennyelg> Ya, just check the docs :D
17:04:06FromGitter<Vindaar> 👍
17:04:35FromGitter<krux02> because now the documentation for ``template `^` `` is wrong
17:05:01Araqoh... well fix it
17:05:23FromGitter<krux02> But really what's the bug that was fixed?
17:06:23FromGitter<krux02> because in the past I could simpley overload `[]` and `len` and I had perfect backward index support. Now that is not true anymore. I see that as a regression.
17:07:25*jjido joined #nim
17:07:40Araqsome variant of https://github.com/nim-lang/Nim/issues/6974
17:08:13Araqyes, I'm sorry but implementing ^ in the compiler as a magic that can go up in the AST was a tremendous hack
17:08:28Araqand so a pure library implementation was done instead
17:08:37planetis[m]this one https://github.com/nim-lang/Nim/issues/6292
17:09:00FromGitter<krux02> ok
17:09:17Araqplanetis[m], thank you, that one was it
17:12:07Araqerror: cannot spawn C:\Program Files (x86)\PuTTY\plink.exe: No such file or directory
17:12:07Araqfatal: unable to fork
17:12:36Araqyes, you are unable to "fork", you are on Windows. amateurs.
17:13:16FromGitter<Bennyelg> lol
17:13:22FromGitter<Bennyelg> Delete Windows.
17:13:25FromGitter<Bennyelg> rm -rf /
17:13:26AraqGit on Windows, when you miss the Linux experience.
17:13:53Araqa clusterfuck of dependencies and wrong assumptions
17:13:53*koranza quit (Remote host closed the connection)
17:15:01Araqnow new! ships with Perl 5.
17:15:09Araqand GDB ships with Python.
17:15:44Araqbecause we love scripting languages and don't understand type systems.
17:15:57FromGitter<Varriount> :(
17:16:57AraqGNU -- helping you to pretend it's 1970 again.
17:17:59FromGitter<k0pernicus> Araq > you switched from GNU/Linux distro to Windows ?
17:18:33FromGitter<krux02> he still supports windows for Nim
17:18:51FromGitter<krux02> I think Araq has everything, Window Linux and Appletosh
17:19:02Araqthat used to be true
17:19:15Araqnow I lack Linux because it wouldn't boot in my VM anymore
17:19:15FromGitter<krux02> not anymore?
17:19:22FromGitter<krux02> what do you use mostly?
17:20:22Araqit's quite even
17:21:08AraqWindows when I need fast turn-around times, OSX when I program in bed or elsewhere
17:21:31*floppydh quit (Quit: WeeChat 2.0.1)
17:21:52FromGitter<Vindaar> @Araq: should I give the readPasswordFromStdin a sensible default (like "Password: ") while I'm at it?
17:21:58FromGitter<krux02> so your desktop is Windows and your Laptop is Apple
17:22:07Araqkrux02: yes
17:22:35AraqVindaar: if it can work out with the parameter's position
17:22:44FromGitter<krux02> I once had dual boot on both desktop and laptop: horrible to keep everything updated
17:22:44Araqbut meh
17:22:49Araqseems bad for i18n
17:22:51Araqbbl
17:24:22FromGitter<krux02> @Vindaar: yes, but I would write password lower case
17:24:38FromGitter<Vindaar> fine with me
17:25:02FromGitter<k0pernicus> Nobody has this weird stuff about `OpenSSL` using `nimble` on macOS?
17:25:43FromGitter<k0pernicus> I'm really pulling my hair out of it… -_-
17:26:19*koranza joined #nim
17:26:58koranzai'm having weird stuff with OpenSSL and Choosenim on (manjaro) linux, if that helps?
17:27:40FromGitter<k0pernicus> Koranza > `alert handshake failure` right ?
17:28:53koranzaFor me it's something different. "Error: unhandled exception: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init [SslError]"
17:29:16Calinouis there a Nim library to handle truecolor ANSI terminal codes?
17:29:40Calinou(like https://github.com/ogham/rust-ansi-term)
17:29:48koranzathat happens after I run "choosenim update devel", after the program prints "Downloading Nim devel from GitHub"
17:29:53YardanicoCalinou, terminal? :)
17:30:36CalinouYardanico: what do you mean? I'm not seeing any Nimble package called `terminal`
17:30:36Yardaniconot joking at all
17:30:41YardanicoCalinou, https://github.com/nim-lang/Nim/commit/7ce38122e8d0a3ce97e2720acaef8ebce2ef90ca#diff-ce51b27013ff02147c2d9740d61704b8
17:30:47Yardanicoit's in stdlib
17:30:55Calinouah, it's built-in now
17:30:56Calinounice!
17:31:06Calinoudoes it fall back to 16 colors on Windows?
17:31:07FromGitter<k0pernicus> koranza > Never had this… :-/
17:31:34Yardanicokoranza, I didn't have errors like that
17:31:52Yardanicocurrently on arch, but there were not errors like that on manjaro/antergos :)
17:32:34FromGitter<k0pernicus> Yardanico > You did not set env var for nimble?
17:32:34koranzaif I run "choosenim stable" then "choosenim update stable" it works as expected, just not with devel..
17:32:40FromGitter<ZarsBranchkin> Just got myself an e-reader, obviously one of first things I'll do is try and run application written in Nim on it!
17:32:57Yardanicok0pernicus: what env var?
17:33:27FromGitter<k0pernicus> I don’t know - @dom96 mentioned an env var for OpenSSL for Nimble previously...
17:33:28YardanicoZarsBranchkin: probably you should firstly try to run linux on it, and if it works you can easily run nim apps :)
17:33:30FromGitter<Vindaar> @Calinou I'm looking at the code right now (for other reasons). It definitely checks whether true colors are supported or not. So I guess yes?
17:33:39FromGitter<k0pernicus> I checked the manual - nothing about an env var… :-/
17:33:45FromGitter<ZarsBranchkin> It does already run linux and there seems to be neat SDK
17:33:58dom96k0pernicus: DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib
17:34:03FromGitter<ZarsBranchkin> Before buying it, I had to research if I can write custom apps for it, heh
17:34:09dom96That's what I had to set for homebrew's openssl to be used
17:34:57YardanicoZarsBranchkin: great!
17:34:57dom96koranza: what's your openssl version?
17:35:07dom96So much openssl issues... this is why I hate dependencies :(
17:35:23Calinou@Vindaar it should be possible to manually fallback colors on Windows anyway
17:35:27FromGitter<ZarsBranchkin> Also has WiFi, so definitely will be fun and maybe even possible to create something practical
17:35:29FromGitter<k0pernicus> :-O
17:35:31FromGitter<k0pernicus> It works!
17:35:35FromGitter<k0pernicus> Thanks @dom96
17:35:39koranza"openssl version" returns "OpenSSl 1.1.0g 2 Nov 2017"
17:35:46Calinoudom96: I just installed choosenim here and am also running into a probable OpenSSL error on Fedora 27
17:35:55FromGitter<k0pernicus> But WTF is this env var… Never heard about it before
17:36:13dom96k0pernicus: it's the DLL search path on macOS
17:36:15FromGitter<Vindaar> @Calinou: there's definitely a disableTrueColors proc
17:36:17Calinoui.e. https://paste.ee/p/zhsMv
17:37:27FromGitter<k0pernicus> @dom96 Can I add the solution on the Nimble README? Maybe it can help some people...
17:37:43Yardanicolet me try choosenim too
17:37:43FromGitter<k0pernicus> Add a new troubleshooting section, something like that?
17:37:46dom96k0pernicus: yeah, please do, there is a troubleshooting section in there for these things
17:37:56FromGitter<k0pernicus> Ok, no problem
17:38:02FromGitter<k0pernicus> Thanks again!
17:38:46dom96koranza: weird, you might have to investigate that yourself. Easiest way to reproduce is to use the Nim httpclient module to request https://github.com/nim-lang/Nim/archive/devel.zip
17:39:25dom96If you have some time and are not afraid of diving into stdlib source code then it would be much appreciated :)
17:41:59YardanicoLOL
17:42:07YardanicoI have the same error with choosenim :)
17:42:14Yardanicoprobably related to openssl 1.1 then
17:46:15*jjido quit (Read error: Connection reset by peer)
17:46:23dom96Too new lol
17:48:14FromGitter<krux02> Araq: what is this template `^^` for in system?
17:48:45dom96Yardanico: koranza: can either of your verify whether it still happens with `devel` Nim (using httpclient as I described above)?
17:49:52*jjido joined #nim
17:51:38*breakfast1 joined #nim
17:52:51dom96*of you
17:53:13Yardanicodom96, compile choosenim with nim devel?
17:53:17dom96no
17:53:26dom96Use the httpclient module to request the URL I sent above
17:55:33FromGitter<Vindaar> @Araq, @dom96 : should the unsetControlCHook from the previous PR still be added? Seems weird if there's no way to revert a Ctrl-C hook
17:56:05Yardanicodom96, seems to work for me - downloadFile proc works fine on this URL
17:56:26koranzaI didn't see any errors in my test program, which tested 2 overloads of downloadFile
17:56:33Yardanicoand it uses SSL (because it fails at runtime without -d:ssl)
17:57:02dom96okay, so that suggests that this issue has been fixed in 'devel'
17:57:06dom96probably thanks to federico3's PRs
17:57:19dom96so I'll just need to release a new version of choosenim
17:57:49koranzais there a way to force choosenim to use the stable branch for updating the devel?
17:59:15koranzabecause "choosenim update stable" works.. seems to suggest that "update devel" uses devel to update itself
17:59:48*r3d9u11 joined #nim
18:00:46CalinouI wonder if mbedTLS could be used in Nim instead of OpenSSL
18:00:48Calinou(or LibreSSL)
18:00:59CalinouGodot recently switched to mbedTLS in its development branch, so OpenSSL is no more there
18:01:29*sendell quit (Remote host closed the connection)
18:02:34Yardanicohmm, and their license is not too bad - apache 2 :)
18:03:21*breakfast1 left #nim ("Au revoir")
18:05:57*d10n-work joined #nim
18:12:04dom96koranza: 'update devel' re-downloads devel and rebootstraps
18:12:09dom96at least right now, for simplicity
18:19:12*donotturnoff joined #nim
18:20:32dom96My plan is to adopt BearSSL eventually
18:26:37*Mat4 joined #nim
18:30:00*Mat4 quit (Read error: Connection reset by peer)
18:33:34*SenasOzys quit (Ping timeout: 260 seconds)
18:58:35planetis[m]is it more effiecient to use 'data: seq[tuple[key: A; val: B]]' or two seperate seqs in an object?
19:01:59planetis[m]i guess it depends...
19:04:59FromGitter<mratsim> @krux02 `^^` is a template for backwardsIndex compatibility I use it there: https://github.com/mratsim/Arraymancer/blob/a9622052cd1132ef3a035419ab9d6f8f2664eef8/src/tensor/backend/metadataArray.nim#L72-L84
19:05:17FromGitter<mratsim> oh there is even the commit reference that introduces it
19:05:51*geocar joined #nim
19:06:15FromGitter<mratsim> @planetis[m] use a Table or a TableRef?
19:06:37FromGitter<krux02> doesn't really matter
19:06:48FromGitter<krux02> I normally use Table, because I don't like ref types
19:07:22FromGitter<krux02> tables are value types
19:07:54*yglukhov quit (Remote host closed the connection)
19:08:33FromGitter<krux02> @mratsim what do you think about this PR: https://github.com/nim-lang/Nim/pull/7265
19:09:03FromGitter<mratsim> The name is wordy: fix for Regression that the introduction of BackwardsIndex introduced ;)
19:09:34FromGitter<krux02> I could have taken the long way and create an issue first.
19:12:31FromGitter<mratsim> seems much cleaner
19:13:02FromGitter<mratsim> how do you check that s has a len proc?
19:13:11FromGitter<krux02> I don't
19:13:24FromGitter<mratsim> proc or field*
19:13:25FromGitter<krux02> I just do it. and when it doesn't it's a compile error
19:14:05FromGitter<mratsim> I guess we really need a Iterable or FiniteContainer concept
19:14:08planetis[m]I actually meant smth different
19:14:42FromGitter<krux02> thes is the error I get when len is not ther: ⏎ ⏎ `````` [https://gitter.im/nim-lang/Nim?at=5a945ca28f1c77ef3a5ac4fc]
19:14:43*SenasOzys joined #nim
19:15:21planetis[m]https://gist.github.com/konqoro/baa61e8796d218de4e692b30915d13d0 if its better to have keylist valuelist hashlist or how module tables does it: https://github.com/nim-lang/Nim/blob/devel/lib/pure/collections/tables.nim#L110
19:15:26FromGitter<mratsim> I already predict a complaint about obscure error message ;)
19:18:40FromGitter<mratsim> @planetis[m] If you want the fastest hash tables/dictionary implementations check the libraries that are in this benchmark: http://www.tommyds.it/doc/benchmark
19:18:45FromGitter<krux02> I can actually suport a custom error message
19:18:51FromGitter<krux02> ok I have to leave
19:19:23FromGitter<mratsim> Facebook rocksdb is also very efficient memory and speedwise: https://github.com/status-im/nim-rocksdb
19:20:01Araq<Vindaar> @Araq, @dom96 : "should the unsetControlCHook from the previous PR still be added?" yeah, that one was nice
19:20:27planetis[m]thanks but was just experimenting
19:21:22Araqmratsim: rocksdb doesn't work on Windows, right?
19:22:02FromGitter<mratsim> @Araq, it does: https://github.com/facebook/rocksdb/wiki/Building-on-Windows
19:24:21*yglukhov joined #nim
19:26:08Araqok. what made you pick it?
19:28:24Araqyay, https://github.com/nim-lang/Nim/pull/7263 :-)
19:28:32Araqthat is a nice fix
19:28:53FromGitter<Vindaar> @Araq: ok!
19:29:17*gangstacat quit (Quit: Ĝis!)
19:31:57*PMunch joined #nim
19:32:26ZevvHi, compling my code with latest develop I get
19:32:27ZevvError: invalid control flow: 'yield' within a constructor
19:32:47Zevvhttp://paste.debian.net/1012117/ snippet
19:33:06ZevvThe error is on the 'await r.body' line
19:33:32ZevvWhat does this mean?
19:35:31AraqZevv, use something like 'let b = await r.body'
19:35:57Araqthis error is new and tells you Nim's codegen never really supported 'yield' in this context
19:36:08Araqthat it often worked before was mostly luck :-)
19:36:21ZevvOk, that works
19:36:41*gangstacat joined #nim
19:36:41Zevvbut why is it different when first assigning to a immutable variable instead of using inside an expression?
19:39:09Araqas I said, it's a current codegen limitation
19:39:14Zevvah ok
19:39:18Zevvthanks again
19:39:24Araqit always existed but previously we didn't detect it
19:40:51ZevvAh, that's gread. I've been scrating my head a few hours why every now and then one of my few hunderd (reused) AsyncHttpClients would fail without a good reason
19:41:02ZevvI just upgraded to develop to see if the bug would go away
19:41:10ZevvI now fixed the yield, and the bug is gone on 0.17.2 as well
19:42:07Zevvoh, dang, it's not. I just took a minute or three to trigger :)
19:42:20Zevvwell, develop fixes my problems, so I'm happy
19:46:58FromGitter<zetashift> I thought Nim had the almost all of the compilation targets as C? : https://lobste.rs/s/g42xtu/history_spirit_c#c_hqqwqy
19:49:45AraqZevv, yeah we fixed a couple of critical bugs :-)
19:51:06Araqzetashift: not sure what he means, but he wrote it on the internet so it must be true
19:52:46FromGitter<zetashift> wise words
19:54:08AraqI used Nim on a Hitachi H8 fwiw which might not be produced anymore
19:54:24Araqbecause it compiles to C.
19:55:06livcdI would really hate to have to wait for any rust project to compile
19:56:27Araqso ... I repaired my git
19:56:45Araqwhat are the failing tests?
19:59:34FromGitter<zetashift> @livecd they are working on shortening compile times, incremental build was just added last release
19:59:57Araqso are we btw
20:00:01FromGitter<zetashift> not sure if they could ever get shorter than Nim seeing how they have different way of handling types
20:00:04Araqthe feature is called "symbol files"
20:00:06FromGitter<zetashift> what Nim is already short how
20:00:07*PMunch quit (Quit: leaving)
20:00:19FromGitter<zetashift> man that turns me on
20:01:14Araqme too, the compile-times concern me
20:02:28livcdWell I like short but don't care for "shorter"
20:02:34livcdin case of Nim/Go
20:03:03Araqbtw are you filwit's brother, zetashift?
20:03:28Araqprobably misremember some nicknames here lol
20:03:29FromGitter<zetashift> I am not.
20:03:40YardanicoAraq, are symbol files v2 usable yet?
20:03:42FromGitter<zetashift> Never heard of him, sorry
20:03:48Araqno worries
20:04:06AraqYardanico, not at all, it's tougher than anticipated
20:04:26Araqbut the theory behind it is sound, so eventually I'll make it work
20:04:52livcdzetashift: I thought compile times were really "bad". On par with C++ which meant 40minutes for larger projects.
20:07:12FromGitter<zetashift> @livecd with Rust? nooo unless you use a lot of macros; So compared to C++ you'll be fine; compared to Nim/Go/D it's really slow
20:07:26livcdzetashift: but then again I would not want to use Rust. I am getting lost in all those sigils used.
20:08:41Yardanicowell, I started using nim only because it looks a lot like python (yes, that was the first impression). rust is like alien language for me
20:09:11FromGitter<zetashift> @livecd I had the same thing; but you'll get used to it real quick. If you come from Python it's hard to grok but I had some Scala going on for me that really helped
20:10:14AraqRust is what happens when you optimize lots of good ideas for the fear mongering hacker news crowd where the guy with the most concerns wins the "fight"
20:12:13*Amun_Ra quit (Ping timeout: 240 seconds)
20:12:17livcdzetashift: still feels like too much friction for me I'll stick to simpler things :F. Besides I also care about the ecosystem not just the language itself.
20:12:35*natrys quit (Ping timeout: 240 seconds)
20:12:41FromGitter<zetashift> I think Nim and Rust don't really have to compete
20:12:41Araqlivcd, then what are you doing here? :-)
20:12:55FromGitter<zetashift> I'm more mad about Go getting more popular than Nim :(
20:13:15Araqthat ship sailed long ago and it's not coming back
20:13:26livcdAraq: I bought dom96's book
20:13:37Araqbut we can still make Nim more popular :-)
20:13:54Araqpopular enough that you don't miss much if anything.
20:14:12Araqthat is my goal.
20:14:52planetis[m]so whats the plan?
20:15:08FromGitter<zetashift> I would like that too; Nim is the first lang which I could read without going through the docs because it's that clean
20:15:37Yardanicowe can close https://github.com/nim-lang/Nim/issues/4796 , right ?
20:15:37*Amun_Ra joined #nim
20:15:46Araqplanetis[m], the upcoming release fixes warts, improves stability and has improved error messages
20:15:54Yardanico@data-man is going through old issues it seems :)
20:15:55planetis[m]+1
20:16:09planetis[m]readability is a huge plus for me
20:16:27Araqso ... the concepts tests work for me hmmm
20:16:34*r3d9u11 quit (Remote host closed the connection)
20:18:05planetis[m]araq: nice can't wait for the official release
20:18:23Yardanicoyeah, 0.18.0 got a whole lot of fixes
20:20:22YardanicoI think I'll go through some nimble packages to check if they compile with devel
20:21:47*rokups quit (Quit: Connection closed for inactivity)
20:23:26Yardanicooh, I know the easiest way :D - clone all packages from packages.json
20:24:00planetis[m]another way to promote nim is to port rosseta code tasks and wikibooks
20:24:09Yardanicothere's quite a lot of rosetta tasks for nim
20:24:23Yardanicoalthough a lot of them are outdated
20:24:38planetis[m]Yardanico: I don't see what can go wrong with that :p
20:24:47Yardanicoplanetis[m], code will not compile :)
20:25:43planetis[m]how many are they?
20:26:44*arecacea1 quit (Remote host closed the connection)
20:26:46FromGitter<tim-st> I sometimes get `Hint: 'Error: unhandled exception: Unknown IO Error [IOError]` on windows when compiling with devel build and the next time I try it always works
20:27:07*arecacea1 joined #nim
20:27:16Yardanicoyeah, it's a strange issue with vscode
20:27:19Yardanicoonly on windows
20:27:32Yardanicoand it regressed in vscode probably
20:27:40FromGitter<tim-st> ok, thanks!
20:31:41dom96A wikibook would be brilliant! :)
20:32:00Yardanicook, started cloning nimble packages (but I'll probably start looking at them tomorrow)
20:32:02FromGitter<mratsim> @Araq Current Ethereum clients use LevelDB and RocksDB is a refinement over LevelDB. Also mobile is one of the main target.
20:34:14Yardanicodom96, oh, I didn't knew that nimble supports name aliases
20:35:09planetis[m]dom96: I was talking about that one: https://en.wikibooks.org/wiki/Algorithm_Implementation found it accidentally but I have port some to nim.
20:35:16planetis[m]*ported
20:35:34dom96there are wikibooks on D and Ada IIRC
20:35:50dom96Would be an awesome effort if somebody created one for Nim
20:35:56planetis[m]like tutorials?
20:41:26FromGitter<mratsim> I think Rust is fine for Mozilla goals actually (having a stronghold-like browser)
20:42:08FromGitter<mratsim> Regarding it’s compilation time, it may be an LLVM issue as Crystal is also slow to compile
20:42:22Araqclang uses LLVM and is fast
20:42:48Araqthough we tend to run it in parallel :-)
20:43:38Araqsemantic checking is not trivial for modern languages and can explain the speed differences too.
20:44:03FromGitter<mratsim> I’m proud to announce the first Ethereum miner in Nim (don’t use it): https://github.com/status-im/nim-ethash/commit/e3ebf7b0e531bb17d61692c2b26ff228d0be1b4d#diff-416f050affdbb262b43ec126b5d7f3d8
20:44:14Yardanicomratsim: wow, cool!
20:44:14dom96mratsim: :D
20:44:23dom96How many giga hashes/s? :)
20:44:40Yardanicoprobably mratsim will reuse some code from arraymancer :P
20:44:44FromGitter<mratsim> dunno it’s just a port of this spec: https://github.com/ethereum/wiki/wiki/Ethash/ef6b93f9596746a088ea95d01ca2778be43ae68f#mining
20:45:16FromGitter<mratsim> actually in the very near future Ethereum will not use mining anymore
20:45:38Yardanicoproof-of-stake only?
20:45:48planetis[m]i though they will switch to proof of stake
20:45:51planetis[m]because the environment
20:46:03FromGitter<mratsim> yes, but apparently implementation is still not finished so we are in a somewhat strange transition
20:46:45Araqif modulo == 0.u256:
20:46:45Araq+ result = half_max div (b shr 1)
20:46:45Araq+ else:
20:46:45Araq+ result = high_uint256 div b
20:46:49Araqrewrite this as
20:46:54Araqresult = if ... else: ...
20:46:59Yardanico:)
20:47:16Araqand the codegen should optimize out the initialization
20:47:24Araqso you don't need the .noInit
20:47:57Araqbut maybe I misremember my optimizer :P
20:48:16Araqwell, I can't call it an "optimizer", it's stupid
20:50:33FromGitter<mratsim> you need it iirc, UInt256 is an array
20:51:21FromGitter<mratsim> the change to result = if … else … might help to get conditional moves instead of jumps in assembly
20:52:19FromGitter<mratsim> but it’s not guaranteed :/ (it’s quite useful for crypto to prevent timing attacks)
20:53:09FromGitter<mratsim> So now zah wants a GPU miner: https://github.com/status-im/nim-ethash/issues/1
20:53:26Yardanicothat's why I mentioned arraymancer ;)
20:53:59FromGitter<mratsim> won’t work, there is no matrices, tensors, or multidimensional stuff ;)
20:54:25*Amun_Ra quit (Ping timeout: 248 seconds)
20:54:33Yardanicoso almost all nimble packages take ~750 mb of space (but I cloned git repos with --depth 1)
20:54:42*solitudesf quit (Quit: solitudesf)
20:55:17FromGitter<mratsim> I’m sure some shipped binaries in nimble because they messed up their gitignore
20:55:24Yardanicoof course
20:55:31*Amun_Ra joined #nim
21:01:15*yglukhov quit (Remote host closed the connection)
21:05:26*yglukhov joined #nim
21:06:34*fvs left #nim ("ERC (IRC client for Emacs 25.3.1)")
21:09:47*yglukhov quit (Ping timeout: 245 seconds)
21:24:01*yglukhov joined #nim
21:28:55*beatmox quit (Remote host closed the connection)
21:29:26*beatmox joined #nim
21:31:56*endragor joined #nim
21:32:19*koranza_ joined #nim
21:35:44*koranza quit (Ping timeout: 268 seconds)
21:36:15*endragor quit (Ping timeout: 256 seconds)
21:37:05*Vladar quit (Quit: Leaving)
21:44:27*donotturnoff quit (Ping timeout: 240 seconds)
21:48:43FromGitter<data-man> @Yardanico: I have an idea: announce TDOTAOAI (The Day Of The Attack On An Issues) :-D
21:54:43*Trustable quit (Remote host closed the connection)
22:00:34FromGitter<Vindaar> read password proc moved: https://github.com/nim-lang/Nim/pull/7266
22:03:56*couven92 quit (Ping timeout: 245 seconds)
22:10:53*koranza_ quit (Ping timeout: 268 seconds)
22:13:05*yglukhov quit (Remote host closed the connection)
22:17:05*jjido quit (Ping timeout: 240 seconds)
22:19:58*nsf quit (Quit: WeeChat 2.0.1)
22:30:22*koranza joined #nim
22:35:12*couven92 joined #nim
22:55:34*geocar quit (Quit: Connection closed for inactivity)
23:23:19*athenot quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:29:29*couven92 quit (Quit: Client Disconnecting)
23:42:36*vlad1777d_ joined #nim