00:03:33 | * | zolk3ri quit (Quit: Lost terminal) |
00:08:48 | FromGitter | <Varriount> @zacharycarter That's a 90's technique you're using there. :3 |
00:09:34 | FromGitter | <Varriount> Though, that kind of style seems to be regaining popularity lately |
00:10:40 | FromGitter | <zacharycarter> heh |
00:10:58 | FromGitter | <zacharycarter> I've always been a fan |
00:24:10 | * | def-pri-pub joined #nim |
00:24:29 | * | couven92 quit (Quit: Client Disconnecting) |
00:30:00 | * | Demos quit (Quit: Demos) |
00:30:26 | * | Demos joined #nim |
00:39:10 | FromGitter | <zacharycarter> you know what I'm not a fan of? this art thing |
00:48:45 | * | vlad1777d joined #nim |
00:56:32 | * | JappleAck quit (Quit: Leaving) |
01:17:31 | * | marcux joined #nim |
01:29:49 | * | def-pri-pub quit (Quit: Leaving.) |
01:31:16 | * | kunev quit (Ping timeout: 258 seconds) |
01:31:46 | FromGitter | <zacharycarter> yay! |
01:32:01 | FromGitter | <zacharycarter> (https://files.gitter.im/nim-lang/Nim/2497/Screen-Shot-2017-10-10-at-9.31.26-PM.png) |
01:32:28 | * | marcux quit (Ping timeout: 255 seconds) |
01:33:19 | * | kunev joined #nim |
01:46:20 | * | d10n-work quit (Quit: Connection closed for inactivity) |
01:47:32 | * | vlad1777d quit (Remote host closed the connection) |
01:47:45 | * | chemist69 quit (Ping timeout: 258 seconds) |
01:48:06 | FromGitter | <zacharycarter> now I need a way to create animation definitions easily |
02:01:31 | * | chemist69 joined #nim |
02:04:39 | * | smt` quit (Ping timeout: 246 seconds) |
02:10:36 | * | Demos quit (Quit: Demos) |
02:10:45 | * | Tanger quit (Read error: Connection reset by peer) |
02:20:52 | * | NimBot joined #nim |
02:24:05 | * | Serenit0r joined #nim |
02:27:29 | * | Serenitor quit (Ping timeout: 246 seconds) |
02:43:17 | * | GaveUp quit (Ping timeout: 260 seconds) |
02:45:49 | * | GaveUp joined #nim |
02:51:30 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
03:10:04 | * | libman quit (Quit: Connection closed for inactivity) |
03:13:32 | * | def-pri-pub joined #nim |
03:13:40 | * | def-pri-pub quit (Client Quit) |
03:14:02 | * | Demos joined #nim |
03:26:06 | * | endragor joined #nim |
03:27:22 | * | Demos quit (Remote host closed the connection) |
04:26:36 | FromGitter | <Varriount> @zacharycarter You could always hire an artist. :3 |
04:37:35 | * | shashlick quit (Quit: Leaving) |
04:38:35 | * | Yardanico joined #nim |
04:41:17 | * | shashlick[m] joined #nim |
04:45:10 | * | ftsf quit (Quit: Leaving) |
04:46:51 | * | shashlick[m] is now known as shashlick |
05:00:34 | * | endragor quit (Remote host closed the connection) |
05:02:05 | * | miran joined #nim |
05:16:01 | * | endragor joined #nim |
05:20:53 | * | endragor quit (Ping timeout: 258 seconds) |
05:25:41 | * | Yardanico quit (Remote host closed the connection) |
05:46:05 | * | endragor joined #nim |
05:49:32 | * | dddddd quit (Remote host closed the connection) |
05:53:11 | * | JappleAck joined #nim |
06:13:11 | * | PMunch joined #nim |
06:19:35 | * | Vladar joined #nim |
06:38:26 | * | nsf joined #nim |
06:39:35 | * | miran quit (Ping timeout: 240 seconds) |
06:53:14 | PMunch | Why is echo in Nim js target bound to putting stuff in the DOM? |
06:53:25 | PMunch | Wouldn't it make more sense if it was console.log? |
06:57:38 | JappleAck | anyway, there's stdout.writeline for that |
06:58:37 | PMunch | echo is just a lot easier to type.. |
07:01:12 | FromGitter | <gokr> Sidenote: We use Matrix and the Riot client for internal communication at Evothings, it's kinda like an "advanced Gitter". Works quite nicely, and has a similar mobile app like gitter. |
07:02:30 | Araq | PMunch: echo uses console.log ? |
07:02:53 | JappleAck | pssst, wanna cheat, kid? `proc p(args: varargs[string]) = stdout.writeline(args)` |
07:03:14 | FromGitter | <gokr> @Araq I am spawning threads (threadpool) from Jester but... seem to experience blocking on the 3rd or so, which seems... oddish. Any hints? I guess echo is a nono from different spawned threads right? |
07:03:44 | Araq | we have a new threadpool in the works |
07:04:06 | Araq | the old is allowed to block because 'spawn' is about parallelism, not concurrency |
07:04:22 | Araq | but luckily for you I changed my mind |
07:04:23 | FromGitter | <gokr> Right, but... how/when can I control number of threads on it? |
07:04:45 | FromGitter | <gokr> The old I mean. |
07:05:40 | Araq | setMinPoolSize ? https://nim-lang.org/docs/threadpool.html |
07:05:41 | FromGitter | <gokr> It would be fine if it blocked... say on the 10th or 20th (for my case) but the 3rd seems odd. |
07:05:50 | FromGitter | <gokr> Ah, duh. |
07:06:19 | FromGitter | <gokr> Ok, so for some reason... it probably picks min - which is 4? |
07:06:20 | Araq | I need to merge the new thread pool PR ... |
07:06:40 | Araq | min is 4 or #number_of_cpus, I forgot |
07:06:49 | FromGitter | <gokr> Ok, cool. Thanks. |
07:07:10 | Araq | I would use async with multiple processes though |
07:07:11 | PMunch | Araq, not unless you specify -d:nodejs it seems |
07:07:26 | Araq | PMunch: I use it in karax without -d:nodejs |
07:07:36 | Araq | this was changed, maybe update your Nim? |
07:07:46 | PMunch | I tried to add an echo in a karax callback and it puts it in the dom |
07:07:52 | PMunch | Old Nim version is likely |
07:08:04 | PMunch | I'm running 0.17.0 on this machine |
07:08:11 | Araq | use 0.17.2 |
07:09:26 | Araq | gokr: I continue to not really understand why async is paired with threading, you need to run multiple processes anyway to get some crash safety, no? |
07:10:42 | Araq | and jester needs to put behind ngnix or similar, our asynchttpserver still has security problems :-) |
07:11:59 | FromGitter | <ephja> was the current implementation of channels considered slow? |
07:13:22 | Araq | ephja: its performance is ok, not great and it doesn't use any lockfree fancy stuff |
07:13:22 | * | PMunch_ joined #nim |
07:13:46 | FromGitter | <ephja> ok |
07:14:29 | FromGitter | <ephja> it's only a chat client anyway :p |
07:14:50 | Araq | but consider to patch them instead of "I can write a better one". chances are high that you can't. :P |
07:14:58 | * | PMunch quit (Disconnected by services) |
07:15:02 | * | Arrrr joined #nim |
07:15:02 | * | Arrrr quit (Changing host) |
07:15:02 | * | Arrrr joined #nim |
07:15:11 | * | PMunch_ is now known as PMunch |
07:15:51 | * | claudiuinberlin joined #nim |
07:17:49 | FromGitter | <gokr> @Araq I get async since I use Jester for the REST API. The rest is via threads, I run the MQTT library in its own thread and use channels to talk to it, so that I can have a single MQTT connection. I use one thread from the threadpool for each long running job. |
07:18:46 | Araq | interesting. how do you know what is a long running job? |
07:18:53 | FromGitter | <gokr> And... crash safety? For this case its a small server meant to run on a raspberry. |
07:19:13 | FromGitter | <gokr> A long running job = compile an Arduino program. Or compile and flash it. |
07:19:27 | FromGitter | <gokr> So I know they are long running ;) |
07:20:10 | FromGitter | <gokr> And I didn't want to end up "stuck" on something not playing well with async - so I felt a it was a perfect thing to use the threadpool for. |
07:21:07 | FromGitter | <gokr> So each job typically writes files onto disk, starts external programs (compilation etc) and then at the end writes some file, sends some MQTT "results" etc. |
07:23:03 | Araq | oh my a server on a raspberry, alright :D |
07:23:22 | FromGitter | <gokr> It works great. It's for children education. |
07:23:45 | FromGitter | <gokr> So price point etc is perfect. |
07:26:32 | FromGitter | <gokr> Personally I am still weary of "async". I don't consider Nodejs development experience to be that gratifying - and its solely built around it and I presume the "pillar" of async. |
07:27:34 | FromGitter | <gokr> And in a mixed environment like Nim - I just don't want to go the "ok, let's only use async" just to get bitten down the road by "oh, shit, this call is blocking...". |
07:27:56 | FromGitter | <gokr> Which btw is what already happened with the MQTT lib. |
07:28:23 | FromGitter | <mratsim> @Araq, do you have any further plans for OpenMP? (atleast disabling stacktraces in an OpenMP block for example) |
07:29:29 | Araq | mratsim: It's pity that OpenMP is so much faster than my parallel statement :P |
07:30:16 | Araq | PRs are welcome, but note that an "OpenMP block" is not local reasoning |
07:30:24 | FromGitter | <gokr> I would rather like to see MUCH simpler inter thread communication. I find the current style with setting up one or two channels, using object variants for messages yaddayadda - it's quite a bit of boilerplate. With some Araq-macro-magic we should be able to make it much nicer, no? |
07:30:29 | Araq | it can call a proc that has stacktraces enabled ... |
07:30:51 | FromGitter | <gokr> Perhaps that "magic" was the earlier Actor thingy, or? |
07:31:11 | Araq | Actors were succeeded by 'spawn' |
07:32:12 | Araq | we're thinking about a general "reification" mechanism that can cover both spawn and await fwiw |
07:33:26 | Araq | by reification I mean a general callToTask(f(a, b, c)) construct that converts a function call into a "callable" object |
07:33:27 | FromGitter | <gokr> Ah, ok. And ... are there also plans to make Nim "compete" with the Go/Erlang models? |
07:33:55 | FromGitter | <gokr> right |
07:36:59 | Araq | my current plans are to compete better with C++. :D in my quest to find the perfect GC I arrived at a C++like model, we'll see where it leads us |
07:37:45 | Araq | that said, the channels/object variants are not necessary with 'spawn' |
07:37:56 | Araq | let result = spawn f(args) |
07:38:04 | Araq | collect(^result) |
07:38:10 | Araq | what's simpler than that? |
07:39:19 | * | yglukhov joined #nim |
07:39:56 | Araq | I think the only problem is that you cannot use 'spawn' in your case? |
07:40:07 | * | yglukhov quit (Read error: Connection reset by peer) |
07:40:28 | * | yglukhov joined #nim |
07:44:14 | FromGitter | <krux02> what is GC? |
07:44:47 | Araq | garbage collector? |
07:44:51 | Arrrr | game cube |
07:45:08 | FromGitter | <krux02> graphics card |
07:45:13 | FromGitter | <krux02> thanks |
07:46:16 | FromGitter | <krux02> In C++ the shared_ptr is designed to share ownership also between threads |
07:47:57 | FromGitter | <krux02> I like the c++ gc model. But it is often misused. A lot of people don't get it and put shared_ptr everywhere |
07:48:22 | FromGitter | <krux02> make everything a shared_ptr |
07:48:29 | FromGitter | <krux02> I've seen smart people do it |
07:48:57 | FromGitter | <krux02> In Nim people also do the same, they use ref everywhere |
07:49:10 | FromGitter | <Bennyelg> Guys, did you saw how Scala came popular in the past 2 years? |
07:49:32 | FromGitter | <krux02> well I used scala around 2010 |
07:49:42 | FromGitter | <krux02> and when I talked about it people looked at me weird |
07:49:46 | FromGitter | <Bennyelg> It became populate because Apache Spark |
07:49:56 | FromGitter | <krux02> similar to how people look at me now |
07:50:01 | FromGitter | <Bennyelg> lol |
07:50:06 | Arrrr | Was the problem with ref? |
07:50:35 | FromGitter | <Bennyelg> If someone will develop something like Apache Spark on nim then, be sure the rush to nim will be soon after. |
07:50:52 | Arrrr | *What is |
07:51:11 | FromGitter | <Bennyelg> Currently At work Im working as a `Big Data Engineer` & I develop in 4 different languages :| |
07:51:25 | FromGitter | <Bennyelg> Go, Python, Scala and some ruby |
07:51:32 | FromGitter | <krux02> Arrrr: well for small objects it has noticable memory overhead and it has GC costs. And for at least 90% of the use cases it is just not necessary |
07:52:01 | FromGitter | <gokr> @Araq I started with FlowVars actually for collecting the result from each job - a JsonObject. I had a table of FlowVars for all spawned jobs. That was accesible from the main Jester thread, all good. Then I introduced MQTT and it all fell apart a bit. |
07:52:24 | FromGitter | <krux02> @Bennyelg I like those names "Big Data Engineer" |
07:52:35 | FromGitter | <Bennyelg> lol |
07:52:43 | FromGitter | <krux02> in then years people will laugh about what you call "Big Data" today |
07:52:46 | FromGitter | <Bennyelg> this is how they title me |
07:52:59 | FromGitter | <Bennyelg> that's for sure |
07:53:01 | FromGitter | <mratsim> Hopefully I'll become a "Deep Learning Engineer" as well ;) |
07:53:08 | FromGitter | <Bennyelg> the data grow very fast |
07:53:27 | FromGitter | <Bennyelg> I am working we ML guys they are all doctors in this area |
07:53:30 | FromGitter | <krux02> I am ok to be called "computer guy" who does "computer stuff" |
07:53:47 | FromGitter | <Bennyelg> working with xGBoost, tensorflow, pandas etc |
07:54:16 | FromGitter | <Bennyelg> working with* |
07:54:18 | FromGitter | <gokr> Don't recall what made me stop trying to use them - I think it was that... when a job request comes in via MQTT, the spawn of the job happens in the MQTT thread. Which ... is not the Jester thread of course, so... oops. The FlowVar table needs to live in a single thread, so ... only a single thread should spawn jobs. But I had two threads, Jester and MQTT. |
07:55:04 | FromGitter | <krux02> In my opinion being a doctor in computer science is overrated. The most people in this field that I admire don't have that degree, and a lot of people who do have that degree became self centered dickheads. |
07:55:29 | FromGitter | <krux02> but that is just from my perspective |
07:55:35 | FromGitter | <Bennyelg> I agree, but they are all very very smart and young |
07:55:54 | FromGitter | <Bennyelg> they serve in the military in special units in israel within department called 8,200 |
07:56:19 | FromGitter | <Bennyelg> they are very smart guys and the most important thing they are very hamble |
07:56:21 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
07:56:37 | FromGitter | <krux02> well military is not something that impresses me |
07:56:46 | * | gangstacat quit (Quit: Ĝis!) |
07:57:08 | FromGitter | <Bennyelg> In israel, if you are in those areas it should, because very hard to reach to those places |
07:57:30 | FromGitter | <gokr> @Araq Are you also keeping track of what the pony guys are doing? |
07:58:10 | FromGitter | <Bennyelg> In Israel you must serve from 18 to 21 years old, you can't avoid it unless you are idiot or can't take care of yourself |
07:58:12 | Araq | not really, Pony makes Rust look like a Ruby |
07:58:16 | FromGitter | <krux02> Well I only look at languages that I at least used once in the past |
07:59:00 | * | claudiuinberlin joined #nim |
07:59:04 | Araq | Rust has owned and borrowed pointers, Pony has 5 different pointer types iirc |
07:59:27 | Araq | and then they don't even use them to avoid a GC |
07:59:53 | Araq | but that's the look from an outsider. in practice it might be a joy to program in and Rust isn't. |
08:10:08 | Araq | krux02: ever implemented a seq/vector that has no 'cap' field? you can avoid it by having cap = nextPowerOf2(len) and if isPowerOf2(len): resize() |
08:10:40 | Araq | you need to double the number of elements then though, other factors won't work |
08:12:18 | FromGitter | <krux02> then the seq/vector always needs to be reallocated when it is resetted |
08:12:35 | FromGitter | <krux02> it is a very common use case to avoid reallocation by resetting a vector |
08:13:16 | Araq | yes but a (ptr, len) pair is also a slice. |
08:13:34 | Araq | so a seq has the same representation as a slice |
08:13:46 | Araq | I wonder if that helps for anything |
08:14:23 | FromGitter | <krux02> I don't think so |
08:14:32 | Araq | on the other hand you can also just ask the allocator for the capacity, it should know |
08:14:47 | FromGitter | <krux02> a ptr len pair doesn't own the underlying data, a seq does |
08:14:56 | Araq | yes |
08:15:50 | FromGitter | <krux02> I think it should be possible to convert an arbitrary ptr len pair to an openarray argument |
08:16:47 | FromGitter | <krux02> an openarry argument is internally a ptr len pair, so I think it should be possible to do something like this: |
08:17:50 | FromGitter | <krux02> sort(myvec[3..7], cmp) |
08:19:11 | FromGitter | <krux02> the problem is myvec[3..7] doesn't return a ptr len pair, but copies a slice from the vector/seq |
08:20:29 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
08:20:47 | Araq | yeah I know |
08:21:21 | Araq | it's on my radar but I never have to sort only a slice of the data :P |
08:21:30 | Araq | when does that come up? |
08:23:16 | FromGitter | <krux02> well I had a use case for it |
08:24:18 | FromGitter | <krux02> In computer graphics, it is common to have all meshes in a sigle array and define a mesh simply with a starting index and and a count of elements |
08:25:03 | FromGitter | <krux02> there it would be very helpful to pass just the data of a single mesh to a function that has an openarry argument |
08:25:46 | FromGitter | <krux02> also when implementing the algorithm itself. |
08:26:26 | FromGitter | <krux02> quicksort is defined to only sort a subregion of the data |
08:26:47 | FromGitter | <krux02> so there it would be helpful to just write this: |
08:27:35 | FromGitter | <krux02> qsort(data[0..<x], cmp) ; qsort(data[x..^1], cmp) |
08:27:38 | * | endragor quit (Remote host closed the connection) |
08:28:08 | FromGitter | <krux02> and the rotate that I implemented in algorithm is basically only useful when I can apply it on a subregion of the data |
08:28:44 | * | endragor joined #nim |
08:32:32 | FromGitter | <gokr> @Araq Read this and it explains the different references in Pony quite well: http://jtfmumm.com/blog/2016/03/06/safely-sharing-data-pony-reference-capabilities/ |
08:32:47 | FromGitter | <gokr> I mean "I read this and..." |
08:33:41 | FromGitter | <gokr> Kinda intriguing. |
08:37:11 | FromGitter | <mratsim> Someone now working at Google Deepmind implemented a Go bot using Monte Carlo in Pony and Rust if you want to compare the codebases https://github.com/Mononofu/pony-mcts |
08:43:17 | * | endragor quit (Remote host closed the connection) |
08:43:55 | Araq | can't compare them, the Rust code is 5+ files, the Pony is a single file, they are differently structured |
08:44:16 | * | vlad1777d joined #nim |
08:44:41 | FromGitter | <tulayang> @dom96 I have some questions: how do you consider about the Large File Transfers of ``asynchttpserver``? Will there be some streaming API? I noticed that a new ``FutureStream`` was provided in stand lib. But it just seems to be consuming memory. |
08:45:32 | * | gangstacat joined #nim |
08:45:52 | * | claudiuinberlin joined #nim |
08:50:12 | * | endragor joined #nim |
08:56:52 | FromGitter | <BigEpsilon> @Araq , for the reorder pragma |
08:57:02 | FromGitter | <BigEpsilon> in order to expende includes |
08:57:35 | FromGitter | <BigEpsilon> I use the functions: lookupPackage, getModulename and checkModuleName |
08:57:48 | FromGitter | <BigEpsilon> which are lockated in importer |
08:57:56 | FromGitter | <BigEpsilon> which calls passes |
08:58:02 | FromGitter | <BigEpsilon> which calls reorder |
08:58:11 | FromGitter | <BigEpsilon> -> circular dependency |
08:58:25 | Araq | move these to their module then |
08:58:29 | FromGitter | <BigEpsilon> I created a new module called "modulenames" |
08:58:36 | FromGitter | <BigEpsilon> is that ok for you ? |
08:58:46 | FromGitter | <BigEpsilon> it contains the three procs |
08:58:59 | Araq | name it modulepaths |
08:59:07 | FromGitter | <BigEpsilon> ok thanks |
09:00:19 | Araq | gokr: didn't make me change my opinion about Pony. 6 different capabilities that seem very comparable to Rust, but Rust doesn't require a complex share-nothing-distributed-GC runtime |
09:00:52 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:01:51 | FromGitter | <gokr> @Araq Ok, I found it interesting though. I mean, it seems fairly understandable - modelling "single writer multiple readers" etc. |
09:02:26 | Araq | true once you replace the names internally with synonyms that make sense (wtf is trn again?) |
09:02:35 | FromGitter | <gokr> @mratsim Btw, that pony MCTS didn't use a single Pony "behavior" AFAICT. |
09:04:40 | Araq | gokr: in practice Pony might be MUCH better though since it doesn't assume every piece of code is prone to data races :-) |
09:04:43 | FromGitter | <tulayang> @dom96 I have to get off work, so (if any) I guess some forms it may be: ⏎ This form? ⏎ ⏎ ```code paste, see link``` ⏎ ... [https://gitter.im/nim-lang/Nim?at=59dddeaae44c43700a1c1fe3] |
09:04:49 | FromGitter | <gokr> trn was the concept of having a transitional (thus the name) reference that allowed single writer, multiple reader aliases - but can be turned to a val (immutable value) at the end. |
09:06:14 | Araq | Pony's benefit seems to be its explicit 'actor' concept, Rust simply assumes all pointers that run serially are dangerous anyway. Which is true when you don't have a GC... |
09:06:26 | FromGitter | <gokr> The idea being... that since you are in a single actor (single thread) you can allow single-writer-multiple-readers. But if you want to send it away to someone at the end - it's very valuable to have the restriction of only a single writer - because then you can "give that up" (they say "consume") and turn it into a single immutable value (val) that you can send around. |
09:06:53 | PMunch | Araq, the genui code now includes an example of styling |
09:06:55 | * | PMunch quit (Quit: Leaving) |
09:07:03 | Araq | you don't have to explain to me the blog post ;-) |
09:07:12 | FromGitter | <gokr> Sure, sorry. |
09:07:39 | FromGitter | <mratsim> I had trouble understanding pony behaviours as well |
09:08:43 | FromGitter | <gokr> @mratsim Ok? AFAIK the behaviors are the "methods" that actually run concurrently. The whole basis of Actors. |
09:10:30 | Araq | I like locking. There, I said it. |
09:10:48 | Araq | I know how to make locking safe, free of data races, free of deadlocks. |
09:11:04 | * | claudiuinberlin joined #nim |
09:11:16 | Araq | I don't know to fight message passing with its possible life locks. :P |
09:11:27 | Araq | *live |
09:19:00 | FromGitter | <gokr> @Araq I can definitely sympathize with that :) |
09:19:59 | FromGitter | <gokr> So... you mentioned some "One Ring To Rule Them All" approach brewing? I am curious in which direction Nim is going when it comes to multithreading. |
09:21:10 | Araq | gokr: I hope to have a post that explains it as well as a prototype by the end of this week, just be patient please |
09:22:13 | Araq | gokr: ParaSail has been a major source of inspiration |
09:23:21 | FromGitter | <gokr> @Araq oh wow, this week? Cool! hum... ok, more reading to do ... ParaSail... |
09:24:21 | * | endragor quit (Ping timeout: 240 seconds) |
09:28:17 | FromGitter | <mratsim> Apparently rayon in Rust is quite good as well, competitive with OpenMP for data parallel tasks |
09:28:35 | FromGitter | <mratsim> And crossbeam for lock free data structure |
09:42:47 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:42:55 | * | PMunch joined #nim |
09:43:10 | FromGitter | <mratsim> According to this blog post: http://conscientiousprogrammer.com/blog/2012/10/17/learning-about-parasail-a-new-parallel-programming-language/ Parasail has assignment by copy, with move and swap behind the scene, and GC through memory region |
09:43:29 | * | claudiuinberlin joined #nim |
09:51:45 | alexday | nice blog |
09:56:50 | FromGitter | <gokr> @Araq Ooooohhh... I now discovered why I block after about 4 spawns. It turns out... if the proc I spawn return something (string, JsonNode, doesn't matter) then... it blocks on the fifth spawn. |
09:56:59 | FromGitter | <gokr> setMinPoolSize didn't matter at all. |
09:57:22 | FromGitter | <gokr> So... something fishy with FlowVars? |
09:57:43 | Araq | surely looks like it |
09:58:08 | FromGitter | <gokr> I will cook up a snippet |
09:58:32 | * | Vladar quit (Remote host closed the connection) |
09:58:55 | Araq | ty |
10:01:49 | * | Vladar joined #nim |
10:03:18 | livcd | is there something like goimports for nim ? |
10:03:43 | * | endragor joined #nim |
10:04:04 | Araq | what's goimports? |
10:04:23 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:04:48 | livcd | goimports updates your Go import lines, adding missing ones and removing unreferenced ones. |
10:07:56 | FromGitter | <gokr> @Araq Shit, not... entirely that easy. I bet this is async messing with spawn somehow. Argh. |
10:23:51 | * | Yardanico joined #nim |
10:29:47 | * | mal`` quit (Quit: Leaving) |
10:34:14 | * | mal`` joined #nim |
10:34:28 | * | azur_kind joined #nim |
10:37:18 | FromGitter | <gokr> @Araq Ok, new findings. It seems it's execCmdEx("blabla") that blocks things, and it depends on what I run in there. If I just do "sleep 3" it all works. If I run the arduino command line to compile stuff, it will block on the 4th. |
10:38:01 | FromGitter | <gokr> Perhaps something with stdin/stdout and child processes yaddayadday. |
10:40:49 | FromGitter | <Yardanico> maybe you can try this https://github.com/cheatfate/asynctools ? |
10:40:58 | Yardanico | "Asynchronous process manipulation facility with asynchronous pipes as standart input/output/error handles, and asynchronous. |
10:40:58 | Yardanico | " |
10:41:08 | Yardanico | it has some async clones of sync stdlib modules |
10:41:56 | euantor | An async process type would be really useful in the stdlib |
10:52:49 | * | smt joined #nim |
10:54:11 | * | Yardanico quit (Remote host closed the connection) |
11:01:58 | * | Snircle joined #nim |
11:08:09 | * | couven92 joined #nim |
11:09:06 | Serenit0r | thx for yesterday Araq I've now been able to isolate the functionality for embedded nimscript https://github.com/Serenitor/embeddedNimScript |
11:10:41 | * | PMunch_ joined #nim |
11:13:34 | * | PMunch quit (Ping timeout: 264 seconds) |
11:15:58 | * | PMunch_ is now known as PMunch |
11:23:27 | Araq | Serenit0r: in state.nim please use object instead of tuple |
11:24:33 | Araq | setupNimsript # typo |
11:27:33 | Araq | apart from that, pretty nice |
11:47:22 | Serenit0r | Araq: thanks. using object over tuple purely due to convention or are there practical reasons? |
11:49:09 | Araq | well (identCache, sym, more_strange_thingsHere) is not a very readable tuple |
11:49:16 | * | Yardanico joined #nim |
11:51:43 | Serenit0r | iirc that would be valid tuple syntax too though (cache: identCache, mySym: sym, myStrangeThings: more_strange_thingsHere) |
11:53:46 | * | azur_kind quit (Read error: Connection reset by peer) |
11:57:42 | Serenit0r | but yea the object constructor syntax with the object's type at the front is probably optimal in terms of readability |
12:10:06 | subsetpark | I was speaking to a pony programmer this weekend |
12:11:06 | subsetpark | He said pony is a joy to program for concurrent applications - but there’s quite a lot of overhead so it doesn’t make you want to use it for general purpose programming |
12:18:58 | FromGitter | <gokr> Interesting. |
12:29:19 | * | endragor quit (Remote host closed the connection) |
12:30:25 | * | endragor joined #nim |
12:35:05 | * | dddddd joined #nim |
12:37:10 | * | claudiuinberlin joined #nim |
12:51:51 | Arrrr | is it possible to break named blocks from inside a template that is not dirty? |
12:51:59 | Arrrr | i thought maybe i could inject the block |
12:53:00 | * | Jesin quit (Quit: Leaving) |
12:57:55 | Arrrr | https://glot.io/snippets/eug02ffk1b |
13:09:48 | Yardanico | :D https://isitmaintained.com/project/nim-lang/nim |
13:10:03 | Yardanico | but actually these stats are nothing |
13:10:29 | Yardanico | rust is a *bit* better at resolution time |
13:10:29 | Yardanico | https://isitmaintained.com/project/rust-lang/rust |
13:13:50 | Yardanico | oh there's so many of them https://shields.io/ |
13:15:21 | * | endragor quit (Remote host closed the connection) |
13:16:25 | Yardanico | btw, we can make something like this: https://github.com/nodejs/help |
13:16:33 | Yardanico | or no, we have a forum already :) |
13:17:42 | * | xet7 quit (Ping timeout: 246 seconds) |
13:18:27 | * | retropikzel joined #nim |
13:22:36 | * | PMunch_ joined #nim |
13:25:03 | * | PMunch quit (Ping timeout: 246 seconds) |
13:27:35 | * | PMunch_ is now known as PMunch |
13:30:14 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:31:38 | * | xet7 joined #nim |
13:35:38 | * | retropikzel quit (Ping timeout: 255 seconds) |
13:36:32 | * | endragor joined #nim |
13:36:50 | * | retropikzel joined #nim |
13:40:35 | * | endragor quit (Ping timeout: 240 seconds) |
13:41:17 | * | xet7 quit (Quit: Leaving) |
13:49:32 | * | claudiuinberlin joined #nim |
13:58:12 | FromGitter | <Grabli66> Hi. How to allocate ptr object? I tried with "new", and "alloc". No luck |
13:59:43 | crem | https://nim-lang.org/docs/system.html#alloc0,Natural |
14:00:28 | crem | Ah, alloc should also work. In any case it seems that type cast is needed. |
14:01:27 | * | crem wrote 1 line of nim code per month within last 10 year, in average. |
14:02:11 | * | PMunch quit (Quit: Leaving) |
14:02:45 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:09:24 | * | claudiuinberlin joined #nim |
14:12:51 | FromGitter | <Grabli66> Good. It works. But another problem. When i am trying to free that object from free pascal with "freemem" i get access violation error. May be anyone know how to free that object? |
14:15:28 | * | nsf quit (Quit: WeeChat 1.9) |
14:17:15 | Araq | Grabli66: with dealloc. never mix allocators |
14:18:39 | Yardanico | Grabli66: nim wouldn't be aware that this memory was freed |
14:18:54 | FromGitter | <Grabli66> I am creating ptr object in DLL, written in nim. But i free that object in programm, written in free pascal. |
14:19:48 | FromGitter | <Grabli66> I need create object in dll, and use it in free pascal :) |
14:20:53 | * | Jesin joined #nim |
14:27:22 | * | retropikzel quit (Ping timeout: 255 seconds) |
14:29:57 | * | retropikzel joined #nim |
14:31:15 | FromGitter | <mratsim> What kind of convoluted codebase are you working on |
14:32:42 | FromGitter | <Grabli66> Maybe you are right, i do something wrong :) |
14:32:50 | FromGitter | <Grabli66> I need to think |
14:33:29 | FromGitter | <andreaferretti> or just offer a function to free it in your dll, which calls dealloc |
14:34:29 | FromGitter | <Grabli66> Yes. I also thought about "free" proc in dll. |
14:35:15 | FromGitter | <Grabli66> It works :) |
14:36:59 | * | marcux joined #nim |
14:38:31 | * | azur_kind joined #nim |
14:50:13 | * | yglukhov quit (Remote host closed the connection) |
14:54:25 | * | yglukhov joined #nim |
14:57:00 | * | sz0 joined #nim |
14:57:04 | * | miran joined #nim |
14:59:10 | * | yglukhov quit (Ping timeout: 264 seconds) |
15:12:22 | * | yglukhov joined #nim |
15:21:44 | * | Yardanico quit (Ping timeout: 255 seconds) |
15:32:19 | * | endragor joined #nim |
15:33:27 | * | miran quit (Ping timeout: 240 seconds) |
15:36:39 | * | nsf joined #nim |
15:37:02 | * | endragor quit (Ping timeout: 255 seconds) |
15:38:41 | * | Yardanico joined #nim |
15:41:08 | * | couven92 quit (Read error: Connection reset by peer) |
15:46:14 | * | miran joined #nim |
15:47:52 | Yardanico | is it possible to do something like this without a macro?https://gist.github.com/Yardanico/851a97914bb196f85affe69e5b0eb153 |
15:48:17 | bodie_ | 404 |
15:48:34 | Yardanico | lol |
15:48:41 | Yardanico | https://gist.github.com/Yardanico/851a97914bb196f85affe69e5b0eb153 |
15:48:48 | Yardanico | ah, it seems it's not |
15:48:52 | Yardanico | I mix run-time and compile-time here |
15:49:02 | Yardanico | so probably a macro |
15:50:48 | * | Trustable joined #nim |
15:56:49 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:57:15 | Arrrr | 404 |
15:57:37 | Yardanico | well IDk why it's deleted |
15:57:58 | Yardanico | anyway I just was playing around and it's VERY easy to implement "readLn" like in Pascal |
15:59:23 | Arrrr | how does it work? |
16:00:42 | Yardanico | this is a hacky solution (you can instead check type in a macro and generate assignment based on that type, but this is more code) - https://gist.github.com/Yardanico/d98fd78eb23bf51e76cbe1149899ea0a |
16:00:48 | Yardanico | wtf |
16:00:54 | Yardanico | it seems I'm blacklisted by github |
16:00:57 | Yardanico | LOL |
16:01:06 | Yardanico | I can't see my gists in anonymous mode |
16:01:39 | Yardanico | yeah |
16:01:39 | Yardanico | https://github.com/nim-lang/Nim/issues/6499 |
16:01:42 | Yardanico | I just commented here |
16:01:46 | Yardanico | and I can't see my comment |
16:02:44 | Arrrr | Again |
16:03:21 | Yardanico | wait what |
16:03:44 | Yardanico | Araq commented on pull request nim-lang/Nim#6418 @Araq As pyloor said, make it "the len of the HTTP Version string may not be bigger as 8 chars." |
16:03:48 | Yardanico | but I don't see that comment LOL |
16:03:54 | Yardanico | do you guys see it? https://github.com/nim-lang/Nim/pull/6418#issuecomment-335860401 |
16:04:07 | Yardanico | ah |
16:04:08 | Yardanico | We're currently experiencing high replication delay on our primary database cluster. Recently performed site actions may not appear in the UI. |
16:04:51 | Yardanico | github, why |
16:09:24 | FromGitter | <mratsim> I'm more interested in why you directly assumed that you were blacklisted |
16:09:58 | Yardanico | :D |
16:10:16 | Yardanico | because I was blacklisted once, but I heard github does that only once If you're a human :) |
16:10:33 | Yardanico | It has automatic "anti-spam" and false-positives |
16:10:48 | Yardanico | so I though maybe I was blacklisted for the second time |
16:12:32 | * | dhalinar joined #nim |
16:12:47 | Yardanico | Arrrr, https://gist.github.com/Yardanico/d98fd78eb23bf51e76cbe1149899ea0a |
16:13:00 | Yardanico | oh, it's still 404 |
16:16:21 | * | ShalokShalom_ joined #nim |
16:16:58 | Yardanico | ok it seems to be working again |
16:19:11 | * | azur_kind quit (Remote host closed the connection) |
16:19:27 | * | ShalokShalom quit (Ping timeout: 240 seconds) |
16:25:32 | Arrrr | ah, interesting |
16:25:59 | * | TjYoco joined #nim |
16:32:29 | * | dhalinar quit (Ping timeout: 258 seconds) |
16:33:56 | * | dhalinar joined #nim |
16:44:31 | shodan45 | Yardanico: omg welcome to "real" IRC :P |
16:44:47 | Yardanico | shodan45, well I use IRC on Linux :) |
16:44:50 | Yardanico | and gitter on windows :0 |
16:48:23 | shodan45 | Yardanico: well then even better... welcome (back?) to a real OS :P |
16:48:40 | Yardanico | well I just play games on windows, nothing more :D |
16:48:45 | * | libman joined #nim |
16:52:49 | * | claudiuinberlin joined #nim |
16:52:56 | shodan45 | Yardanico: I used to play most games on linux.... then my AMD gfx went into "omg SO OLD mode" and I had to use the open source driver.... |
16:53:24 | shodan45 | so, oddly, until I buy a new GPU, I have to boot into windows |
16:53:34 | Yardanico | shodan45, well I have no problems with proprietary nvidia driver :) |
16:54:10 | Yardanico | just a lot of games are not available on linux |
16:55:06 | shodan45 | yeah, true. But I kind of think of it like being a vegetarian - you just have to eat/game differently ;) |
16:55:12 | * | tax joined #nim |
16:57:05 | shodan45 | Some VERY good games run just fine on linux. Like Factorio. |
17:00:23 | shodan45 | although I'm biased on that one.... I have ~650 hours on it |
17:00:29 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
17:01:52 | Yardanico | I like FPS-like games :) |
17:02:54 | Yardanico | is it only for me or it seems github updated main feed? |
17:05:50 | Yardanico | and they've added this - https://github.com/dashboard/discover |
17:07:20 | * | claudiuinberlin joined #nim |
17:07:27 | * | claudiuinberlin quit (Client Quit) |
17:07:27 | * | dhalinar quit (Ping timeout: 240 seconds) |
17:15:17 | * | yglukhov quit (Remote host closed the connection) |
17:16:48 | * | yglukhov joined #nim |
17:19:04 | * | SusWombat joined #nim |
17:21:31 | * | yglukhov quit (Ping timeout: 255 seconds) |
17:26:56 | * | TjYoco quit (Quit: Leaving) |
17:29:28 | * | MyMind joined #nim |
17:30:21 | * | Sembei quit (Ping timeout: 240 seconds) |
17:36:21 | * | Vladar quit (Remote host closed the connection) |
17:38:42 | * | Jesin quit (Ping timeout: 260 seconds) |
17:39:15 | * | smt` joined #nim |
17:42:01 | * | smt quit (Ping timeout: 240 seconds) |
17:42:04 | * | Jesin joined #nim |
17:43:35 | * | vlad1777d quit (Ping timeout: 255 seconds) |
17:48:37 | * | obadz quit (Ping timeout: 260 seconds) |
17:49:04 | * | obadz joined #nim |
17:56:22 | * | vlad1777d joined #nim |
18:01:37 | * | Arrrr quit (Ping timeout: 248 seconds) |
18:02:08 | * | vlad1777d quit (Ping timeout: 240 seconds) |
18:02:12 | * | Arrrr joined #nim |
18:02:12 | * | Arrrr quit (Changing host) |
18:02:12 | * | Arrrr joined #nim |
18:04:42 | * | claudiuinberlin joined #nim |
18:06:42 | * | rauss quit (Read error: Connection reset by peer) |
18:08:26 | shodan45 | anyone use nimqml lately? |
18:08:28 | * | rauss joined #nim |
18:15:14 | shodan45 | I'm trying to figure out if it supports macos (I don't have access to any macs...) |
18:16:39 | * | yglukhov joined #nim |
18:17:00 | Yardanico | shodan45, well there's probably |
18:17:00 | Yardanico | https://github.com/filcuc/nimqml/blob/30452faab95e06cfb92f30343a6b9eda19123d30/src/private/dotherside.nim |
18:17:07 | Yardanico | just try it :) |
18:17:37 | * | Serenit0r quit (Ping timeout: 248 seconds) |
18:17:45 | shodan45 | Yardanico: yeah, I've seen that... I don't have a mac to try it |
18:19:17 | shodan45 | I just want to make sure it supports macos before I start using it... I need to support win/mac/linux |
18:21:19 | * | yglukhov quit (Ping timeout: 248 seconds) |
18:21:21 | Yardanico | shodan45, well I maybe can try it tomorrow |
18:21:25 | Yardanico | I have hackintosh on my pc :) |
18:21:37 | Yardanico | but I almost don't use it |
18:25:56 | * | SusWombat quit (Remote host closed the connection) |
18:27:35 | FromGitter | <mratsim> What does teardownForeignThreadGC do? https://nim-lang.org/docs/system.html#tearDownForeignThreadGc.t, ⏎ ⏎ I have segfault/Attempt to read from nil with OpenMP and I suspect it’s due to GC collecting short-lived variables. I have no issue when not compiling with OpenMP |
18:28:18 | * | Demos joined #nim |
18:37:04 | * | Ven joined #nim |
18:37:28 | * | Ven is now known as Guest75286 |
18:41:32 | * | Guest75286 quit (Ping timeout: 255 seconds) |
18:48:01 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:58:07 | * | tax quit (Quit: Leaving) |
19:00:13 | * | claudiuinberlin joined #nim |
19:04:42 | * | retropikzel quit (Quit: Connection closed for inactivity) |
19:09:50 | shashlick | ehmry: Thanks for suggesting Matrix + Riot, seems like a very effective combo. I can also move my slack hacks over here. |
19:17:19 | ehmry | shashlick: yea, I like it |
19:37:46 | * | Arrrr quit (Read error: Connection reset by peer) |
19:43:07 | * | yglukhov joined #nim |
19:45:24 | * | nsf quit (Quit: WeeChat 1.9) |
20:13:48 | * | Trustable quit (Remote host closed the connection) |
20:14:27 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
20:22:31 | * | Demos quit (Quit: Demos) |
20:22:58 | * | Demos joined #nim |
20:33:20 | * | gangstacat quit (Quit: Ĝis!) |
20:35:23 | * | gangstacat joined #nim |
20:36:24 | * | obadz quit (Quit: WeeChat 1.9.1) |
20:42:14 | * | Yardanico quit (Remote host closed the connection) |
20:45:29 | * | ipjk joined #nim |
20:47:10 | * | Jesin quit (Quit: Leaving) |
20:51:21 | * | obadz joined #nim |
20:57:51 | * | nsf joined #nim |
21:01:36 | * | xet7 joined #nim |
21:15:43 | * | miran quit (Ping timeout: 248 seconds) |
21:26:02 | * | vlad1777d joined #nim |
21:34:09 | * | dhalinar joined #nim |
21:38:29 | * | vlad1777d quit (Ping timeout: 255 seconds) |
21:51:17 | * | vlad1777d joined #nim |
21:59:35 | * | ShalokShalom_ quit (Ping timeout: 240 seconds) |
22:04:56 | * | nsf quit (Quit: WeeChat 1.9) |
22:05:25 | * | Etheco joined #nim |
22:11:46 | * | Demos quit (Quit: Demos) |
22:16:35 | * | endragor joined #nim |
22:17:29 | * | vlad1777d quit (Ping timeout: 258 seconds) |
22:20:49 | * | endragor quit (Ping timeout: 248 seconds) |
22:28:42 | * | Demos joined #nim |
22:32:34 | * | vlad1777d joined #nim |
22:33:17 | * | Demos quit (Ping timeout: 260 seconds) |
22:38:08 | * | Demos joined #nim |
22:39:13 | * | Demos quit (Client Quit) |
22:39:57 | * | Demos_ joined #nim |
22:41:54 | * | couven92 joined #nim |
22:50:35 | * | dhalinar quit (Ping timeout: 240 seconds) |
23:08:09 | * | Demos_ quit (Quit: Demos_) |
23:08:28 | * | Demos joined #nim |
23:16:23 | * | nub_ joined #nim |
23:16:40 | * | sz0 quit (Quit: Connection closed for inactivity) |
23:17:09 | * | nub_ quit (Client Quit) |
23:20:59 | * | vlad1777d quit (Remote host closed the connection) |
23:24:31 | * | Demos quit (Remote host closed the connection) |
23:24:55 | * | Demos joined #nim |
23:31:51 | * | Demos quit (Ping timeout: 258 seconds) |
23:31:55 | FromGitter | <zacharycarter> o/ |
23:36:08 | * | yglukhov quit (Remote host closed the connection) |
23:42:26 | FromGitter | <zacharycarter> hrm how am I going to do lighting and shadows |
23:42:28 | FromGitter | <zacharycarter> https://imgur.com/a/Hzjk4 |
23:55:44 | * | gangstacat quit (Ping timeout: 255 seconds) |
23:56:09 | * | gangstacat joined #nim |
23:56:23 | * | ipjk quit (Read error: Connection reset by peer) |