<< 28-01-2020 >>

00:05:18*filcuc quit (Ping timeout: 268 seconds)
00:05:24*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:09:44*krux02_ joined #nim
00:10:51*Pqzcih5 quit (Remote host closed the connection)
00:12:42*krux02 quit (Ping timeout: 260 seconds)
00:15:18*gmpreussner quit (Ping timeout: 260 seconds)
00:16:15*gmpreussner joined #nim
00:17:38FromDiscord_<exelotl> haven't played Baba Is You but I suspect it's something like writing concepts in Nim
00:17:38FromDiscord_<exelotl> https://cdn.discordapp.com/attachments/371759389889003532/671509148902359090/unknown.png
00:29:12*zama quit (Ping timeout: 265 seconds)
00:31:31*zama joined #nim
00:34:22krux02_exelotl: "Baba Is You" is a great grame, I can verify that.
00:34:47krux02_I recommend to play it with someone else though, because it is a hard game and 4 eyes see more than 2
00:40:49FromDiscord_<Rika> is it mainly about programming, baba is you?
00:41:16FromDiscord_<exelotl> krux02_: oh cool, thanks for the tip, I'll try and find a friend to play with some time
00:42:11krux02_Rika: well not programming directly, but it is about setting up rules and stuff.
00:43:22krux02_It is pretty easy to get what Baba is You is about. The trick in the game is, every rule of the game is defined in the level and can be changed. That makes the gave sometimes really tricky to think about because the rules are always different and always changing
00:44:12krux02_in a majority of level you play as baba and try to reach the flag, but that is not the goal.
00:52:59FromDiscord_<Rika> i see
00:59:10*arecaceae quit (Remote host closed the connection)
00:59:30FromDiscord_<DeltaPHC> Basically it's a block-pushing game where the rules of the game exist as in-game pushable blocks
00:59:38*arecaceae joined #nim
01:00:20FromDiscord_<DeltaPHC> Kinda like a tile-based syntax
01:00:29FromDiscord_<DeltaPHC> for a logical language
01:02:54FromDiscord_<DeltaPHC> And it turns out that the puzzle and logic mechanics of Baba Is You are Turing-complete. There's a Conway's Game of Life board made within the game
01:03:22FromDiscord_<DeltaPHC> that a user made
01:09:20FromGitter<deech> I'd like to pass a dynamic lib via the `{.link: mylib.so .}` but the path needs to be known ahead of time. Is there a Nimscript function that will take a library name, look around in `LIBRARY_PATH`/`PATH`/`C_LIBRARY_PATH`/whatever return an absolute path to it ?
01:11:28*lritter quit (Ping timeout: 268 seconds)
01:15:42disruptekdeech: i think this is generally difficult, but shashlick is the expert. i would take a look at what nimterop does -- it's probably the 2nd best option.
01:15:56disruptekthe 1st best option is, of course, to set the path of the library yourself.
01:21:34FromGitter<deech> I'll look at nimterop but can you elaborate on why this is difficult?
01:21:53leorizeuse `{.link: "-lmylib".}`
01:22:00leorizethat will use the C compiler search path
01:22:09leorizemuch easier
01:22:22FromGitter<deech> Oh nice, does that work for dynamic libs as well?
01:22:36leorizethat works for everything :P
01:22:43leorizeusually you would pass your own path if you build it
01:22:57leorizebut if you are linking with system library then use `-l`
01:23:09FromGitter<deech> Nice!
01:23:43FromGitter<deech> I don't live in C/C++ land so I don't know some basics.
01:23:48disruptekthe problem is that you end up having to call out to the env, and then reproducible builds are "impossible".
01:24:16leorizeonce you're on linux land, you need the exact distro to be reproducible
01:24:27disruptekleorize is on point regarding the simple use-case.
01:25:05FromGitter<deech> My use case is simple, I just want to link with `libjpeg.so.whatever`.
01:25:13disruptek-ljpeg
01:25:18leorizeusually when linking with system 3rd party library, pkg-config should be used to get the exact link flags
01:25:30leorizenote that some system don't have libjpeg but they have libjpeg_turbo
01:25:54disruptekand to differentiate is not reproducible...
01:26:27leorizedisruptek: you need the exact distro if you want everything to be reproducible
01:26:40disrupteki just want it to work.
01:26:43leorize*nix stuff usually use pkg-config to get the exact flags needed
01:26:54disrupteki can't even reproduce nimterop from one directory to another. that's really my point.
01:28:02leorizereproducibility is hell on linux
01:28:11disruptekit doesn't have to be.
01:28:15leorizedebian is making efforts on that, but no one is following :P
01:28:55leorizenowadays if you want the most portable, I'd say targeting a runtime like flatpak gives you the best results
01:29:13leorizeit actually runs on musl libc based system without a hitch
01:30:49disrupteksure.
01:31:13disruptekunfortunately, the first challenge is to make the nim reproducible.
01:33:34leorizesomeone make a PR to do that that got merged iirc
01:33:45leorizesearch reproducible in the commit log
01:34:45disruptek#7644
01:34:46disbothttps://github.com/nim-lang/Nim/issues/7644 -- 5Initial support for reproducible builds
01:37:07disruptekhttps://tests.reproducible-builds.org/alpine/alpine.html
01:37:16disrupteknot super encouraging, but w/e.
01:37:55disruptekhttps://tests.reproducible-builds.org/archlinux/archlinux.html little better
01:41:45disrupteki just really can't believe this is such a hard problem.
01:43:55disrupteki mean, for us.
01:44:05disruptekit's clearly a challenge for, eg. a distro.
01:47:35*ng0 quit (Quit: leaving)
01:48:42ptdelis there a `collect` keyword that replaced `lc` ? thought I saw some reference in some github issues but can't find it now in the standard lib docs
01:51:11rayman22201fun fact, I have a friend who writes slot machine games. He really likes Nim, but because Nim could not guarantee reproducible builds in a meaningful way, he couldn't use it.
01:51:32disruptekthat /is/ a fun fact.
01:51:35FromGitter<Obround> Hello! I was just wondering if there was a way to add inside of a type. Something like this: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e2f93a773ddad4acd61746e]
01:51:47leorizeno
01:52:01rayman22201The regulatory body in charge of casino gaming has strict legal requirements around reproducible builds.
01:52:06disruptekrayman22201: probably for cert reasons.
01:52:07disruptekyeah
01:52:08leorizeObround: just use a getter for that
01:52:33FromGitter<Obround> What do you mean?
01:53:16leorizehttps://nim-lang.org/docs/manual.html#procedures-properties
01:53:33leorize^ that allows you to customize how something can be get/set
01:54:37FromGitter<zetashift> Getting started with OpenGL for the first time, anybody know what I'm doing wrong here? https://play.nim-lang.org/#ix=28xA
01:54:39FromGitter<Obround> Cool! Just wondering if there was a way to do inside the type definition.
01:54:55FromGitter<zetashift> FWIW I don't have a lot of exerperience in C and function pointers are basically callbacks no?
01:55:05leorize@Obround: nope :P unless you use a macro
01:55:15leorizezetashift: yes
01:55:37leorizewell those callbacks take cdecl stuff
01:56:23krux02_zetashift, function pointers are one way to do callbacks. That name specifies the implementation. And that is usually the way how callbacks work in C.
01:57:05krux02_But C doesn't have closures, you can only point to functions known by name to the compiler.
01:57:35FromGitter<zetashift> so adding the pragma `cdecl` should remove that error?
01:58:33krux02_I didn't real all the conversation yet, but probably yes.
01:58:50leorizeI didn't even try to compile the code, but probably yes :p
01:58:58FromGitter<zetashift> yeah it works whoop
01:59:02FromGitter<zetashift> scary C land
01:59:21krux02_also when working with opengl, I personally like the "deprecaded" way of doing things.
01:59:25leorizethe error message actually said it expects {.cdecl.} :p
01:59:40krux02_The spec is shorter. The implementation is solid, the about of hardware that supports it is wide
01:59:59krux02_and most importantly, you get productive quickly.
02:00:35FromGitter<zetashift> I'm just following learnopengl, I don't really know that much about it
02:00:48FromGitter<zetashift> anything I can read up on the way of "deprecaded"
02:00:51krux02_But it only supports static meshes, no shaders and no bone animated obejcts.
02:01:13FromGitter<zetashift> @leorize ah yeah then I just misinterpret it, I thought I could ignore the pragma's and locks stuff
02:01:37leorizeyou can ignore the locks stuff, but not the rest :P
02:02:06FromGitter<zetashift> I never used pragmas like this D:
02:02:14FromGitter<zetashift> But now I know!
02:02:34krux02_I have quite some experience with openGL, I wrote a nim macro library that allows to embed shader code into a function block in a way that uniform passing and attribute passing is absolutely painless.
02:03:02FromGitter<zetashift> You mean using an older version of OpenGL? I do know that a lot of hardware struggles with the newer versions
02:03:11krux02_but if you don't have that, and you go for "modern" OpenGL, get ready for very painfull and unproductive programming
02:03:26krux02_zetashift, not really.
02:03:45krux02_OpenGL 4.1 is now 10 years old
02:03:54FromGitter<zetashift> I'm just following this tutorial out of curiosity and free time
02:04:21krux02_Btw openGL 4.1 is the last version supported on a mac
02:05:09krux02_but don't use that size callback.
02:05:48FromGitter<zetashift> that size callback is a part of GLFW which I'm using to open a window tho
02:05:51krux02_In old opengl it is quite easy to support window resizing, in modern openGL it is really tough, because you have to resize (recreate) a lot of buffers.
02:06:13FromGitter<zetashift> Any reason they changed it?
02:06:22krux02_so just stick to one size. It saves you a lot of time implementing something that isn't really that important.
02:06:32krux02_yes of coures.
02:06:57krux02_more low level control so engines can become faster.
02:07:22krux02_The focus on what OpenGL (or Vulkan now) wants to be has changed over the years.
02:07:28FromGitter<zetashift> always those trade-offs
02:08:25krux02_OpenGL is really developed to make small teams and individual developers happy. OpenGL 4 and upwards (Vulkan) has been developed to make middleware developers (Unity, Unreal) and teams with big budget happy.
02:09:51krux02_but that is just the short version.
02:10:02krux02_anyway, I for a long time now, made a new PR to Nim.
02:10:04krux02_Yay.
02:10:09krux02_I should go sleeping now.
02:10:26disruptekthanks, krux02_ :-)
02:11:11krux02_yea, it is newLit on distinct types.
02:11:38krux02_should have been in there for quite some time
02:21:37FromGitter<zetashift> whoop whoop and goodnight!
02:51:24*dddddd quit (Remote host closed the connection)
02:58:16*thomasross quit (Read error: Connection reset by peer)
02:58:29*thomasross joined #nim
02:58:58*endragor joined #nim
03:04:51*jholland__ quit (Quit: Connection closed for inactivity)
03:23:15*ftsf joined #nim
03:44:05*rockcavera quit (Remote host closed the connection)
03:45:03*muffindrake quit (Ping timeout: 246 seconds)
03:47:29*muffindrake joined #nim
03:57:12disrupteki feel like the thing that isn't conveyed well about nim is that it's stable /enough./ if you are just evaluating on the strength of buzzwords or bug counts, sure, but that's silly. the bones are there, and those bones can walk.
04:00:03shashlick@deech just use getHeader, that's exactly what it does
04:00:09disrupteki just ran into a deadlock in `ensureInitialized`.
04:03:19disruptekit's in nimph's tests; tpackage, under arc of course.
04:19:29*krux02_ quit (Remote host closed the connection)
04:23:25disruptekhey treeform, are you around?
04:26:58*chemist69 quit (Ping timeout: 245 seconds)
04:28:26*marmotini_ joined #nim
04:29:15*chemist69 joined #nim
04:39:58*nsf joined #nim
04:46:04*marmotini_ quit (Remote host closed the connection)
04:46:37*marmotini_ joined #nim
04:51:37*marmotini_ quit (Ping timeout: 268 seconds)
05:02:21*marmotini_ joined #nim
05:06:22FromDiscord_<treeform> yes
05:07:25*marmotini_ quit (Ping timeout: 272 seconds)
05:07:57*cron joined #nim
05:07:58disrupteknow that the vm loops limits are configurable, i'm thinking of trying to package up the google/amazon/microsoft api generators. what do you think about making openapi more of a suite with tools that help automate these sorts of pseudo-wrappers?
05:08:22disrupteki'm thinking just nimscripts, and maybe a single command to tie them together.
05:08:49disruptekwell, we would bundle in a yaml converter because you'll want that anyway.
05:10:30disruptekanyway, think about it.
05:16:12FromDiscord_<treeform> Up to you. It steels feels easier for me to just make rest calls with a json blob. Most of the time its like 10 lines of code. While the wrapper generators created soo many lines and wrappers it was scary. It did not make code on my side easier as I need to create all of the objects. I don't know its a hard problem.
05:16:57FromDiscord_<treeform> How to make calling the APIs easy and clear and have good type safety.
05:16:59disrupteki know, i need to come up with templates or something to make that feel more nimish.
05:17:38disruptekit's just insanely tough because roughly the same rendering has to work for thousands and thousands of different APIs.
05:18:15*treeform joined #nim
05:18:19disruptekeven amazon makes it harder than it needs to be.
05:19:20FromDiscord_<treeform> Yeah that a problem
05:19:26FromDiscord_<treeform> you almost need some sort of type safe DSL
05:21:26disruptekwe have that in json; i realized (a little late, duh) that the only way to make the api was to use json underneath, because it's the only way to be sure we can always capture the semantics.
05:21:48disruptekso those are the real limits. but oh, so many damned assumptions...
05:22:32FromDiscord_<treeform> All I want to do is call "upload" https://github.com/treeform/blog/blob/master/uploader.nim#L34
05:22:48FromDiscord_<treeform> event bucket and path should probably be a single string
05:22:54FromDiscord_<treeform> so its just like writeFile...
05:23:07FromDiscord_<treeform> But the upload makes you jump through some hoops:
05:23:08FromDiscord_<treeform> https://github.com/treeform/googleapi/blob/master/src/googleapi/storage.nim#L14
05:23:18disruptekreally you want bucket.upload(filepath)
05:23:41disruptekor as araq would say, filepath.upload(bucket)
05:23:49FromDiscord_<treeform> well the data too
05:24:07FromDiscord_<treeform> in my mind bucket is part of file path
05:24:15FromDiscord_<treeform> what I want is probably
05:24:28FromDiscord_<treeform> uploadFile(bucektPath, data)
05:24:36disruptekyeah, i mean, it looks fine to me.
05:24:47FromDiscord_<treeform> but looks at the URL you need:
05:24:49FromDiscord_<treeform> &"{uploadRoot}/b/{bucketId}/o?uploadType=media&name={encodeUrl(objectId)}"
05:25:06disruptekwell, we don't need the connection.
05:25:07FromDiscord_<treeform> why is bucketID part of the URL while file path is name?
05:25:22FromDiscord_<treeform> you need to set its meme type?
05:25:22disruptekbecause bucket is a totally different thing.
05:25:25FromDiscord_<treeform> wtf
05:25:29disruptekof course.
05:25:44FromDiscord_<treeform> The APIs are so bad, just wrapping them as they are is really odd
05:25:53FromDiscord_<treeform> I would have to make wrapper ontop of your wrapper
05:26:03disruptekof course. that's what it's for.
05:26:07FromDiscord_<treeform> for it to be useable
05:26:14disruptekbut, you will get the underlying benefits for free.
05:26:29FromDiscord_<treeform> but if I am making the wrapper I just post my own json
05:26:32FromDiscord_<treeform> its not that hard
05:26:35disruptekit's basically wrapping web apis the same way nimterop wraps ffi libs.
05:26:54FromDiscord_<treeform> yeah that's true
05:27:09shashlickJust nimit
05:27:20shashlickJust nimit
05:27:22shashlickOoh
05:27:29disrupteki think there will be value (eventually) in the rest layer, too. just having connection pools and stuff.
05:28:06disrupteksoon we'll be able to build js, too. just, no http client so no point at the moment.
05:28:48FromDiscord_<treeform> I just feel like the REST api is pretty easy to use
05:29:09disrupteki think you should make your buckets distinct from objects and then attach the connection to one/both of them.
05:29:55FromDiscord_<treeform> Is this the upload call?
05:29:57FromDiscord_<treeform> https://github.com/disruptek/gcplat/blob/master/src/gcplat/storage_v1.nim#L5280
05:30:06FromDiscord_<treeform> I don't even know how to call it or all what that all is...
05:30:20FromDiscord_<treeform> 11k lines file...
05:30:29disruptekright, this is not your sunday school api generator.
05:30:31FromDiscord_<treeform> why would I include that vs 10 lines of some rest crap
05:30:40disruptekit's almost like a meta-api-generator.
05:30:56FromDiscord_<treeform> Yeah I get it. Its hard to make APIs.
05:31:06FromDiscord_<treeform> Its hard to make a meta-api-generator...
05:31:13FromDiscord_<treeform> And I think you did a great job.
05:31:15disruptekmaking them is easy. parsing them is hard.
05:31:17FromDiscord_<treeform> This is not easy.
05:31:56FromDiscord_<treeform> But I just don't want to include this blob 11k in my code base. I don't understand it. It looks ugly. It looks like Java or some thing...
05:32:05*narimiran joined #nim
05:32:15disrupteksure, if you are only going to use a few procs, that makes sense.
05:32:33FromDiscord_<treeform> I am using like 20? How much can a software use?
05:33:05disruptekwell, aws has 200 apis. google, like 700?, microsoft, like 2000? something stupid like that.
05:33:32disruptekwhen you sum just the aws apis, it's about 1.2MM lines of nim.
05:34:04FromDiscord_<treeform> I just can't take responsibility for important that many lines of code.
05:34:26disruptekyou can generate it yourself.
05:34:40disruptekyou'll see exactly the diffs if/when it changes.
05:36:21FromDiscord_<treeform> I think maybe the main problem is that googles are so complex... is that by writing my own reset wrapper I understand them better.
05:36:37FromDiscord_<treeform> I figure out the parameters I don't need and remove/not support them.
05:36:54disruptekthe first real api i did was amazon's marketplace web services. it's, like, all their fulfillment and payment and inventory systems.
05:36:58FromDiscord_<treeform> Without writing my own wrapper I can't really know/trust how it works...
05:37:22disruptekcouple hundred different calls. this is a python lib i did, btw.
05:37:42disruptekyou get a pretty good feel for the pitfalls and what's important.
05:37:43FromDiscord_<treeform> So google provides and API SDK for python. Its likewise really hard to use. Because it has all of the features and its super complex.
05:38:00disrupteki mean, it doesn't have to be.
05:38:01FromDiscord_<treeform> If you import python's gcp stuff it takes 3 seconds to just import and grows to 100mb in ram.
05:38:26disruptekwriting something on top of this is what it's designed for. you can insert your own hooks to do validation, rename procs, whatever.
05:38:30FromDiscord_<treeform> I just prefer to use rest stuff from python as well. It just seems cleaner.
05:39:06disruptekbecause those are the problems you run into when trying to generalize these problems. because doing it by hand is unwieldy. too much work.
05:39:48disruptekgoogle's stuff uses protobuf under the covers?
05:40:30FromDiscord_<treeform> Yes. I worked and google and used the protobufs and its the same issue...
05:40:48disrupteki mean, that's what the python lib is using, right?
05:41:10FromDiscord_<treeform> Naa it makes the json blobs I think.
05:41:16disrupteki was just curious because when i looked at protobuf, i didn't get the impression that it'd be much faster.
05:41:38disruptekthe problems at the endpoints are the same regardless of the transport.
05:41:47FromDiscord_<treeform> My impression is that protobufs don't work/too hard to setup.
05:42:18disrupteki think they work, but they are designed for a problem that most people don't have.
05:42:27disruptekthey are a google creation for a google problem.
05:42:28FromDiscord_<treeform> We use thirft (same as protobuffers now) and we just use the json encoding ... to make it easier
05:42:42disruptekyeah.
05:43:13FromDiscord_<treeform> I don't think the problems are the wrappers you have, the problem is the APIs themselfs...
05:43:38disruptekwell, they're disparate.
05:43:59disruptekbut, see, we can create a hook to generate whatever nim we want.
05:44:04FromDiscord_<treeform> They need a human wrapperer that can decide to not include 90% of their power.
05:44:34disruptekyeah, i think you're looking at the result and you are overlooking the input.
05:45:13disruptekhttp://ix.io/28xU/nim -- this is the amazon one, for example.
05:46:56disruptekso, you can see where i'm reimplementing or adding atozHook. that kinda thing can be done anywhere in the parsing process.
05:47:49disruptekso if you want `upload(bucket, data)` it's really not a big stretch. you just code that in compile-time nim and you get it for every call.
05:49:18disrupteki can even take your self-styled google api generator and apply it to amazon inputs to get an amazon api that works like google's.
05:49:57disruptekanyway, that's sorta the idea behind openapi.
05:50:21disruptekyou're supposed to mold the semantics into the syntax you want. 👍
05:57:56treeformI am all up for being proven wrong. Show me.
05:58:05disruptekhehe
05:58:16disrupteki'm working on something better.
05:58:33treeformI would like to see an auto generated API that is easy to use.
05:58:44*ltriant quit (Quit: leaving)
05:58:58disrupteki find the amazon one pretty easy, honestly.
05:59:31treeformMaybe amazon is easier. Do you have S3 reader/writer example?
05:59:42disruptek!repo atoz
05:59:42disbothttps://github.com/disruptek/atoz -- 9atoz: 11Amazon Web Services (AWS) APIs in Nim 15 14⭐ 0🍴
05:59:53disrupteki have a couple examples, but neither are s3.
06:00:12FromDiscord_<treeform> 😦
06:00:43FromDiscord_<treeform> Maybe just a set of common examples for most common calls people make...
06:00:47FromDiscord_<treeform> would be enough?
06:00:54*treeform quit (Remote host closed the connection)
06:01:12disrupteki guess i dunno what calls people make.
06:01:44disrupteki know that i make calls with and without arguments.
06:02:09FromDiscord_<treeform> https://www.stratoscale.com/blog/cloud/7-popular-aws-apis/
06:02:32FromDiscord_<treeform> https://www.2ndwatch.com/wp-content/uploads/2017/02/Top-30-Most-Popular-AWS-Products_2016.pdf
06:02:38disruptekwell, i don't use kms but i use the rest of these.
06:02:50disruptekbut it really doesn't matter. they all work the same.
06:03:01FromDiscord_<treeform> show me?
06:03:05FromDiscord_<treeform> or show the world...
06:03:46disruptekhttps://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_Amazon_Simple_Storage_Service.html
06:03:53FromDiscord_<treeform> How do I read this file and get to where I want? https://raw.githubusercontent.com/disruptek/atoz/master/src/atoz/s3_20060301.nim
06:04:18disruptekget to where you want?
06:04:20FromDiscord_<treeform> Their examples are all in REST... which is my point.
06:04:27FromDiscord_<treeform> I can copy paste their rest and just have it work.
06:04:45disrupteksure you can.
06:04:46FromDiscord_<treeform> Its really hard to read that s3_....nim file
06:05:03disruptekonly your tooling needs to read it, but i don't disagree.
06:05:38disrupteki don't think you're the target customer for this product. 🤣
06:06:11FromDiscord_<treeform> Maybe? I don't know.
06:06:20FromDiscord_<treeform> You keep asking me about it. So I respond.
06:06:43FromDiscord_<treeform> And I end up not using it for some reason.
06:06:50FromDiscord_<treeform> I am trying to qualify why I am not using it.
06:06:57disruptekyeah, i thought you had a need to do different calls.
06:07:43FromDiscord_<treeform> Take this project for example. It makes couple of GCP calls: https://github.com/treeform/blog
06:07:46disrupteki think your criticisms are on point, which is why it's not right for you.
06:07:54FromDiscord_<treeform> would switching to your lib make the code shorter?
06:08:00FromDiscord_<treeform> or more clear?
06:08:11*nisstyre quit (Ping timeout: 250 seconds)
06:08:20disrupteki dunno, because that's not really what this is about.
06:08:29disruptekit's about not having to worry about the api changes.
06:08:31FromDiscord_<treeform> what is it about?
06:09:07FromDiscord_<treeform> hmm API changes does not seem like a problem I have.
06:09:14disruptekit's about you build an api, you change it, you update client A, you change it, you go to use client B and now you update two versions. this code will ensure that your code breaks in the right way.
06:09:16FromDiscord_<treeform> I hate google code churn...
06:09:25FromDiscord_<treeform> but they are usually a lot more heavy handed with it
06:09:30disruptekright; you're not the customer for this product.
06:09:35FromDiscord_<treeform> like you must update Go run time, you must switch to pyhon3...
06:09:55FromDiscord_<treeform> no API wrapper could save me from my recent Google lets remove the API problems...
06:10:14disrupteki write a lot of smallish programs in the cloud. they all interact with each other and other services.
06:10:19disrupteki'm constantly changing shit.
06:10:25disruptekebay is constantly changing shit.
06:10:29disruptekamazon is constantly changing shit.
06:10:34disruptekwalmart? yep.
06:11:20disrupteki just cannot be bothered to track it all, and yet i need the code to break nicely.
06:11:46FromDiscord_<treeform> if your whole point behind your API is to track breaking changing on their end.
06:11:49disrupteki even use some google stuff, i admit it.
06:11:54FromDiscord_<treeform> then yes... I don't seem to have that problem.
06:12:30disruptekwell, no, it's keeping abreast of those changes.
06:12:43FromDiscord_<treeform> yeah
06:12:45disruptekyou want to roll with the api.
06:12:58disrupteki can't just keep using version 1.0.
06:13:16FromDiscord_<treeform> i'll use version 1.0 till they send 500s
06:13:27disrupteklol
06:13:28FromDiscord_<treeform> i have no shame
06:13:40FromDiscord_<treeform> i'll use python2 till they kick me out...
06:14:12disruptekwhat they did to me with 3... it made me not care so much about 2.
06:14:15FromDiscord_<treeform> Ok got to go for now
06:14:17FromDiscord_<treeform> nice chat
06:14:22disruptekaight pease.
06:14:25disruptekpeace, too.
06:15:03Zevvis nitely on #nim by any name?
06:15:08*nisstyre joined #nim
06:15:24disruptekmorning zevv
06:15:30disruptekkeep my seat warm, will ya?
06:15:47Zevvoff to bed already?
06:16:34disruptekhell yeah, i have a sleep disorder and this weekend ima be in a lousy time zone.
06:16:36disruptekno offense.
06:16:48Zevvsweet dreems then
06:17:01ZevvI'm sure our time zone will gladly offend you
06:17:11disrupteknitely night.
06:17:37disruptekdon't let the npegs or nregs bite.
06:17:55Zevvno bugs in my tracker!
06:19:54disruptekalso tell me why nigel sucks.
06:19:59disruptek!repo disruptek/nigel
06:20:00disbothttps://github.com/disruptek/nigel -- 9nigel: 11 15 1⭐ 0🍴
06:21:01*ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
06:26:03*leorize quit (Remote host closed the connection)
06:26:29*leorize joined #nim
06:28:57*chemist69 quit (Ping timeout: 260 seconds)
06:29:28*chemist69 joined #nim
06:32:40*EvergreenTree quit (Ping timeout: 258 seconds)
06:34:53*EvergreenTree joined #nim
06:41:14*EvergreenTree quit (Quit: The Lounge - https://thelounge.chat)
06:41:54*EvergreenTree joined #nim
06:50:08*NimBot joined #nim
06:53:59*mal`` quit (Quit: Leaving)
06:56:10*mal`` joined #nim
07:08:10*solitudesf joined #nim
07:40:54FromGitter<Varriount> treeform: Python 2.7's EOL was last December.
07:46:02*opal quit (Remote host closed the connection)
07:46:17*opal joined #nim
08:00:00*gmpreussner quit (Quit: kthxbye)
08:03:41*PMunch joined #nim
08:05:07*gmpreussner joined #nim
08:07:15*solitudesf quit (Ping timeout: 240 seconds)
08:11:43*Vladar joined #nim
08:12:25*ng0 joined #nim
08:12:26*ng0 quit (Changing host)
08:12:26*ng0 joined #nim
08:16:38*cron quit (Quit: Leaving.)
08:22:23FromGitter<kristianmandrup> @disruptek Do you know about amplifyJS for AWS? Would be cool with sth similar in nim, but perhaps using KNative and Kubernetes templates instead (no avoid vendor lock-in)
08:28:01*nc-x joined #nim
08:29:56nc-xAraq: is this expected? https://ibb.co/DbmFVpn
08:31:56nc-xthis is causing failure for https://github.com/nim-lang/Nim/pull/13261
08:31:57disbotdisallow typedesc in arrays & move existing checks to `types.typeAllowedAux`
08:40:34PMunchhttps://forum.nim-lang.org/t/5866, for you dom96
08:47:47nc-xI opened an issue https://github.com/nim-lang/Nim/issues/13278
08:47:50disbot`proc` type in `template` return type gets converted to `template` type ; snippet at 12https://play.nim-lang.org/#ix=28y3
08:48:50*nc-x quit (Remote host closed the connection)
08:52:08*thomasross quit (Ping timeout: 268 seconds)
08:53:08*thomasross joined #nim
08:54:22*Pqzcih5 joined #nim
09:03:15*floppydh joined #nim
09:09:29*skrylar joined #nim
09:09:47skrylarhoboy. alpine's version of nim is still on 0.17 o.o
09:31:54PMunchYeah, most package managers Nim versions are horribly out of date
09:34:14PMunchBest way to install Nim has for a long time now been choosenim
09:34:35PMunchEasy updates, easy to switch between versions for testing, etc.
09:39:36skrylaropensuse's isn't too far out of date iirc
09:39:54skrylari tweaked the abuild for it but the tests lock up on the inheritence test
09:45:20kungtotteNot on Void Linux :P Choosenim fails horribly because Void doesn't ship openssl and the Nimble version in Choosenim looks for the wrong libraries. Good thing the nim package is always up to date; might lag a couple of days but not more
09:46:11skrylarhm. does choosenim do anything that wouldn't let it use one of the libressl shims
09:46:56narimiranbtw, here are nim versions in various distros: https://repology.org/project/nim/versions (notice the only green ones seem to be those from federico3 :))
09:49:36narimirantrivia: the mention version 0.17 was released in May 2017, more than 2.5 years ago
09:49:42narimiran*mentioned
09:50:03skrylarright. it's in the "testing" branch so the maintainer might have gone in to cryo
09:52:05*nimblepoultry quit ()
09:52:23*nimblepoultry joined #nim
10:02:48skrylarback when i last touched gui stuff i had made this custom serializer based on beos messages; partly cause the api is weird about how you do things like create arrays
10:03:08skrylarafter looking in to cuckoo and hopscotch hashes again i'm wondering about just throwing that in the trash and using those
10:21:30FromGitter<alehander92> oy
10:44:20federico3narimiran: huh, ubuntu automatically pulled the release already
10:45:38*abm joined #nim
11:02:29*akitoshi joined #nim
11:02:34akitoshihello, how to iterate over a tuple in nim ?
11:07:13Zevvakitoshi: https://play.nim-lang.org/#ix=28ys
11:07:49Zevvrealize that nim is statically typed, 'fieldPairs' will expand under the hood to unrolled code that is run for each member of the tuple.
11:08:03Zevvthus 'v' does not have a specific type, it varies for each iteration
11:14:57akitoshiZevv: it works, thanks
11:17:09kungtotteskrylar: just tested it again and now Choosenim works fine. It didn't ~6 months ago, so I can't say whether it's choosenim or void that's gotten their act(s) together now :)
11:25:56*zyklon quit (Ping timeout: 248 seconds)
11:26:10*hinst joined #nim
11:26:49hinstGood day. Do you by any chance know how can I encodeUriComponent for C++ target?
11:28:58*dddddd joined #nim
11:37:43PMunchhinst, do you get a particular error message?
11:44:31*zyklon joined #nim
11:46:34FromGitter<NimStart> Can anyone here help me with a fidget (treeform's gui) crash? getting Error: could not find symbol: glTextureSubImage2D when crosscompiling from linux to windows
11:47:25FromGitter<kaushalmodi> shasklick: Someone on Nim forums was looking for windows build on the latest nightly build, but it's not there: https://forum.nim-lang.org/t/5865#36372
11:47:59FromGitter<kaushalmodi> Then I saw that all the platform build assets don't show up on all nighties. So you know what's going on?
12:13:05*xet7 quit (Remote host closed the connection)
12:14:12*xet7 joined #nim
12:15:48narimiranit can be different things:
12:16:07narimiranif you look at https://github.com/nim-lang/nightlies/releases you'll spot the first thing, and that is...
12:16:44narimiran...some commit was pushed as nightlies were running, so some of the builds have one hash, others have other (but the date is the same)
12:17:35narimiranother times, something might have failed while testing/building, so it won't have a nightly version
12:18:00*xet7 quit (Remote host closed the connection)
12:19:05*xet7 joined #nim
12:19:30*rockcavera joined #nim
12:20:28narimiranand from the logs, the windows versions lately have "The job exceeded the maximum log length, and has been terminated."
12:28:50*ftsf quit (Ping timeout: 240 seconds)
12:35:40*euantor quit ()
12:35:55*euantor joined #nim
12:36:05*endragor quit (Remote host closed the connection)
12:47:05*cgfuh joined #nim
12:53:49FromGitter<kaushalmodi> Thanks. I assumed the first reason, but didn't dig deeper as I am on phone.
12:55:31PMunchDid anyone ever look at the exceptions in C++ when running with the arc GC on Arduinos?
12:59:59*krux02 joined #nim
13:02:54krux02how do I restart this job: "builds.sr.ht: freebsd.yml — builds.sr.ht job failed" in https://github.com/nim-lang/Nim/pull/13275
13:02:55disbotfix #13255
13:07:28*nsf quit (Quit: WeeChat 2.7)
13:09:35FromDiscord_<Clyybber> krux02: I guess you have to force-push
13:12:28krux02Do you know that I really dislike web technologies.
13:12:37krux02It is just slow and unreliable.
13:14:36FromDiscord_<Clyybber> krux02: you could also ssh into the CI
13:14:47FromDiscord_<Clyybber> and trigger a rebuild there
13:15:06krux02I would like to have a button from github to restart.
13:15:36krux02or even better, a test environment that isn't flakey.
13:15:46FromDiscord_<Clyybber> yeah
13:18:21*neceve joined #nim
13:20:57*akitoshi quit (Quit: Connection closed for inactivity)
13:21:33Zevvkrux02: Just run it locally!
13:21:59*ng0 quit (Quit: leaving)
13:22:01Zevvbuy another PC, put BSD on it
13:22:04krux02Zevv, that doesn't fix the problem that CI failed
13:22:13ZevvI know, I hate it too.
13:22:26Zevvand if it fails it is always a pain to find out *why*
13:22:39krux02It fails no no reason at all.
13:22:40Zevvscrolling logs, clicking the wrong thing and ending up in the wrong pages somewhere showing the wrong things
13:22:44krux02github unreliable
13:29:01*cron joined #nim
13:32:36leorizekrux02: reopen the pr
13:33:03leorizethat's how to restart the ci on github because they never thought of a "re-run" button
13:39:34FromDiscord_<Clyybber> doesn't work for sourcehut though
13:39:38FromDiscord_<Clyybber> I think
13:40:34*hinst quit (Remote host closed the connection)
13:41:27leorizeIt works, I restarted my ci several times like so :P
13:44:12*solitudesf joined #nim
13:48:00*Romanson joined #nim
14:03:38krux02leorize, I closed and reopened several times already. Doesn't work for that test though, it "caches" the fail.
14:29:02*jholland__ joined #nim
14:46:21disruptekkrux02: what do you think of this?
14:46:25disruptek!repo disruptek/nigel
14:46:27disbothttps://github.com/disruptek/nigel -- 9nigel: 11 15 1⭐ 0🍴
14:48:00disruptekkristianmandrup: i used amplify but i found it annoying. i dunno, i probably missed the point.
14:48:14*sacredfrog quit (Quit: ZNC 1.7.5 - https://znc.in)
14:49:48*sacredfrog joined #nim
14:51:50krux02disruptek, what exactly does it replace?
14:52:13disrupteki'm not sure it's really designed to replace anything.
14:52:33krux02then what is the problem that it is going to solve?
14:52:34disrupteki would use it to get faster reactions to library/compiler changes.
14:52:52krux02good thing.
14:52:54disruptekthis is the backend for an issues-turning-into-tests implementation.
14:52:59FromDiscord_<treeform> but it has no source code?
14:53:00krux02But there are more things that need to be improved.
14:53:16disruptekwell, i'm still writing it.
14:53:36krux02One thing that I always wanted is, performance logging.
14:53:56krux02so that you see when a PR increases compilation or execution time.
14:54:10FromDiscord_<treeform> me too
14:54:11krux02generally metrics that are collected over time and stored in some form
14:54:19disruptekthat's what golden is about.
14:54:29ZevvI never saw results of golden
14:54:29FromDiscord_<treeform> I want this for my own project and nim in general, I started a thing here: https://github.com/treeform/nimbench
14:54:35FromDiscord_<treeform> But kind of lost steam...
14:54:51krux02it could be binary size, memory usage per test, amount of allocations per test.
14:54:53krux02Stuff like that.
14:55:08FromDiscord_<treeform> And have like a nice chart
14:55:08disruptekgolden is unfinished. but i think the concept is sound. i expect to basically have golden output for any test run in nigel.
14:55:17Zevvnigel takes it too far. Really
14:55:24disrupteki probably need to do a better job of explaining golden.
14:55:34Zevvyou're overdoing it and bound to get stuck on practicalities. Start samller
14:55:56disrupteki've implemented almost all of nigel at one time or another.
14:56:05disruptekit's not as challenging as you might think.
14:56:12Zevvshow me a proto then
14:56:12FromGitter<kristianmandrup> Any examples or resources on how to interop with async JS (Promises)?
14:56:31disruptekZevv: shit man, i just started yesterday.
14:56:37Zevvthe whole "distributed" things makes it quite an effort imho
14:57:08disruptekit's a weak point, no doubt. but no one could give me an alternate design.
14:57:18FromGitter<kristianmandrup> Hmm.. I found this: https://nim-lang.org/docs/asyncjs.html
14:57:38disruptekhowever, even that is not terrible hard. i've done cdn fail-over and it works fine.
14:58:35disrupteki did the caching code somewhere, and i have nim running in lambda...
14:58:37FromGitter<kristianmandrup> any examples out there using `asyncjs` module?
14:58:50disruptek!code "import asyncjs"
14:58:51disbothttps://github.com/nim-lang/Nim/blob/27b081d1f77604ee47c886e69dbc52f53ea3741f/lib/pure/async.nim -- 11lib/pure/async.nim 7& 2 more...
14:59:11FromGitter<kristianmandrup> `macro async(arg: untyped): untyped`
14:59:21FromGitter<kristianmandrup> looks "Promising" :)
15:00:55FromGitter<kristianmandrup> ```async: ⏎ proc waitingForTheSun*(): auto {.importcpp .}``` [https://gitter.im/nim-lang/Nim?at=5e304ca6fe0e6f74e9d5940e]
15:01:00disruptekwe will get most metrics "for free" because anything that runs in the cloud is pretty well logged and graphed.
15:01:30*PMunch quit (Quit: Leaving)
15:01:55*nsf joined #nim
15:05:03disruptekanyway, if you're worried about the effort, you could always contribute.
15:11:24*NimBot joined #nim
15:12:51*ng0 joined #nim
15:20:08*ng0_ joined #nim
15:20:08*ng0_ quit (Changing host)
15:20:08*ng0_ joined #nim
15:23:51*ng0 quit (Ping timeout: 265 seconds)
15:25:15Zevvwho, me?!
15:26:26Zevv*contribute*?!
15:27:44disruptekcrazy talk, i know.
15:38:58FromDiscord_<Clyybber> I think I got it
15:39:46FromDiscord_<Clyybber> We simply generate the "hash" of a type locally and don't care about cross-dll thing
15:40:14FromDiscord_<Clyybber> but provide a table for other dlls to look up our hash
15:41:43FromDiscord_<Clyybber> then methods are just procs with switch statements for those hashes inside
15:42:23FromDiscord_<Clyybber> and method can be made syntactic sugar for "proc(a: dynamic SomeType)"
15:42:33FromDiscord_<Clyybber> and you can specify which parameters are dynamic and which are not
15:43:29FromDiscord_<Clyybber> Araq: WDYT about the approach on hashes?
15:45:29disruptekkrux02: /But there are more things that need to be improved./ -- what did you have in mind?
15:46:26disruptekclyybber: you want a foreign dll to hash something in order to figure out how to dispatch to a nim method?
15:46:53FromDiscord_<Clyybber> nah, only when we call a nim method of a foreign dll
15:47:13FromDiscord_<Clyybber> then we look it up in their hashtable
15:47:39disruptekso we predict the value we expect to find in the table?
15:47:54FromDiscord_<Clyybber> no
15:47:55disruptekso we must agree on the hash methodology between the two .objects.
15:48:03FromDiscord_<Clyybber> but we cant
15:48:16FromDiscord_<Clyybber> so when we call a method across those borders
15:48:36FromDiscord_<Clyybber> we look it up in the specific hash table
15:49:00*tane joined #nim
15:49:29FromDiscord_<Clyybber> disruptek: With objects do you mean dlls / sos?
15:49:35disruptekyeah.
15:49:46FromDiscord_<Clyybber> k
15:50:23disruptekwhat's the input to the hash?
15:50:24FromDiscord_<Clyybber> I mean using a string instead as it is done now isn't perfect either
15:50:33*ng0_ is now known as ng0
15:50:44FromDiscord_<Clyybber> disruptek: The type
15:50:59FromDiscord_<Clyybber> its done at CT
15:51:11disruptekright, but it still has to match.
15:51:25FromDiscord_<Clyybber> Thats why we store a hashtable
15:51:36FromDiscord_<Clyybber> that maps the hashes back to something cross-dll
15:51:44FromDiscord_<Clyybber> strings
15:51:56disrupteki understand, but the way you develop the keys to the hash table has to be consistent between shared objects.
15:52:07disruptekregardless of compile-time.
15:52:08FromDiscord_<Clyybber> Only the strings though
15:52:18disruptekthe hashing, too.
15:52:57FromDiscord_<Clyybber> no why?
15:53:01FromDiscord_<Clyybber> its not possible
15:53:07disruptekyou aren't going to embed the hash func in the shared object and call it at compile-time.
15:53:20FromDiscord_<Clyybber> nah, I'm gonna call it at runtime
15:53:35FromDiscord_<Clyybber> but only if its called from somewhere externally
15:53:36disruptekoh, with the string as input?
15:53:44FromDiscord_<Clyybber> disruptek: Right
15:54:23disruptekso the first time you have to do dispatch, you'll hash the string using the hasher from the shared-object. then you use the result as an index into the foreign table.
15:54:58krux02disruptek, about nigel, because consider a different name. It is yet another crappy name that is hard to remember.
15:55:23FromDiscord_<Clyybber> you look it up in your table, translate it to a string, look it up in the foreign table and translate it to their hash
15:55:25disrupteksuggestions?
15:55:30*pbb quit (Ping timeout: 246 seconds)
15:55:44disruptekthe table maps string to hash?
15:55:50FromDiscord_<Clyybber> "nigel" - racist asian
15:56:18*pbb joined #nim
15:56:28krux02disruptek, use a name that actually contains what it does.
15:56:44FromDiscord_<Clyybber> disruptek: Nah, it maps hashes to strings
15:57:01disruptekcan you give me example? "ice cream" comes to mind.
15:57:20disrupteki obviously cannot grok how this architecture works, clyybber.
15:59:13FromDiscord_<Clyybber> disruptek: We just translate our hash into a common format (string or whatever fits) and then translate it back to the foreigns hash
15:59:55krux02well you can call it "Continuous Integration Tool for Nim: Oliver"
16:00:07krux02Make the name long and descriptive
16:00:27krux02and then "Olive" to distinguish it from other potential CI tools for Nim.
16:00:38disruptekso, "oliver: continuous integration tool for nim" might work, too?
16:00:50krux02yes
16:01:07disruptekbut, nigel doesn't.
16:01:11disruptek!repo disruptek/nigel
16:01:13disbothttps://github.com/disruptek/nigel -- 9nigel: 11continuous integration tool for nim 15 1⭐ 0🍴
16:01:17disruptekis it racist?
16:01:30disrupteki never heard of that before.
16:01:48krux02well I knew a guy called racist, so I guess Nigel is fine, too.
16:01:54krux02But Oliver is easier to remember.
16:01:59FromDiscord_<Rika> lol
16:02:16krux02ups sorry typo
16:02:22krux02I mean a guy called Nigel
16:02:44FromDiscord_<Clyybber> disruptek: It was a joke, a racist one
16:02:53disruptekalrightly.
16:02:57disruptekalrighty, too.
16:03:00krux02In my head I had some thought about his name being racist. Influentcy my finger movement somehow
16:03:26disruptekit's not an uncommon english name.
16:03:34krux02ok
16:03:51krux02He was from Aruba
16:03:54disrupteki see where you two are coming from now, though. 😉
16:04:17disrupteka stripper from aruba had a crush on me once.
16:04:31FromDiscord_<Clyybber> :kriby:
16:04:32krux02lol
16:04:47disruptekshe was bi-polar. i swear if they aren't crazy when they get to me, i make them crazy in short order.
16:05:16krux02I knew many people from Aruba when I still had my Girlfriend from Aruba.
16:05:27krux02She wasn't a stripper though.
16:05:32disrupteknever?
16:05:43krux02pretty sure.
16:07:42*lritter joined #nim
16:07:45FromDiscord_<Rika> anyone use chronicles?
16:08:14FromDiscord_<Clyybber> status or xenoblade?
16:08:27FromDiscord_<Rika> status
16:08:50FromDiscord_<Clyybber> tried it once, but don't have a use case atm
16:09:14FromDiscord_<Rika> whenever i use the json format i get some error in the macros shim they implemented, something about a child and an nnkSym, i'll get the error one sec
16:09:38FromDiscord_<Rika> it's prolly the shim no? i'd like to get to the root of the issue though
16:13:08*icebattle joined #nim
16:20:45*ptdel joined #nim
16:27:55FromDiscord_<Rika> ugh, discordnim's such a pain to update because the objects file is huge and disorganized
16:27:56Zevvdisruptek: http://zevv.nl/div/ni2.jpg
16:28:14disruptekpotato?
16:28:32Zevvpo-teh-to po-tah-to
16:29:06disrupteklooks fine from here. 😉
16:29:10ZevvI vectorized
16:29:18disruptekah, good.
16:29:21FromDiscord_<Rika> nice
16:29:56FromDiscord_<Clyybber> why is there a grenade in your hair ?
16:30:04Zevvsafety
16:30:18disruptek"pull pin to disarm"
16:30:26FromDiscord_<Clyybber> nice
16:30:27Zevvcamera strap
16:30:39FromDiscord_<Clyybber> ah, I see
16:30:50FromDiscord_<Clyybber> lol
16:31:07disruptekso you shot a photo of a mirror and then you had to flip it?
16:31:08rockcaveranarimiran, hello. I saw that you closed this issue: https://github.com/nim-lang/Nim/issues/11764, but I didn't see any correction ... Will it be applied later?
16:31:10disbotHashSet[uint64] slow insertion depending on values ; snippet at 12https://play.nim-lang.org/#ix=21E6
16:31:43Zevvdisruptek: no I just had the shirt printed mirrored because I don't know how to photoshop
16:31:59disruptekah, that makes more sense.
16:32:16disruptekbeats photoshopping 30 t-shirts.
16:34:09narimiranrockcavera: it is fixed in devel (nim 1.1.1)
16:34:54rockcaveranarimiran, Thanks, I will download and compile the devel to see.
16:47:14*icebattle quit (Ping timeout: 240 seconds)
16:49:02AraqNim Jägermeister?
16:51:15ZevvAraq: monty python
16:51:26disruptekhow do i buy my shirt?
16:51:55Zevvgo to http://my.local.shirt.shop and upload the image
16:51:56Araqhad to drink 21 Jägermeister once to win a hat
16:52:22Zevvyeah, after 21 jagermeister you need something to throw up in, of course
16:52:28Zevvany hat will do just fine
16:52:41AraqI think I still have this hat somewhere
16:53:24Araqanyhow, I wasn't alone, we were two or three. nevertheless it was too much and since then I don't like it anymore
16:57:26*skrylar quit (Quit: WeeChat 2.7)
17:02:16*icebattle joined #nim
17:04:36disruptekAraq: so nimph segfaults under arc when you attempt to clone. also, the tests deadlock, which is even more troubling.
17:05:12disruptekZevv: we'll need the svg.
17:06:03Araqdisruptek: valgrind it?
17:06:22disrupteki didn't look into it at all yet.
17:06:58*Romanson quit (Quit: Connection closed for inactivity)
17:07:45Araqprobably the NIM_CONST bug
17:07:57Araqsomewhat hard to fix
17:10:01disrupteknot familiar with that bug, but i did notice that it hangs in ensureInitialized from lib/core/locks.
17:10:44FromDiscord_<treeform> Disruptek, you going to FOSDEM?
17:10:48disrupteksure.
17:10:54FromDiscord_<treeform> Cool
17:10:57disruptekie. it's not a let/const/var thing.
17:11:02disruptekyou going?
17:11:06FromDiscord_<treeform> Yes
17:11:11disrupteknice.
17:11:25Araqdisruptek: not directly but the compiler now "optimizes" let into const
17:12:01disruptekoh but does let still get mm machinery?
17:12:12disrupteki mean const.
17:12:33Araqyeah but this is where it breaks.
17:13:31disruptekdo you lift consts?
17:14:07disrupteki would guess not.
17:14:07Araqnot sure what that means
17:14:37disruptekyou were saying that you use temps and the compilers hate that.
17:15:05disrupteki thought maybe consts got a similar toplevel treatment.
17:23:38*nsf quit (Quit: WeeChat 2.7)
17:26:25*MD87 quit ()
17:26:33disruptekthe lion is the king of the jungle.
17:26:59*MD87 joined #nim
17:27:09FromGitter<kristianmandrup> Hi @disruptek, I'd like to interop with RxJS, but still not sure how to use Nim interop with imports, such as:
17:27:34FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e306f06433e1d40396bd475]
17:27:48disruptekwhat is rxjs?
17:28:07disruptekdoes this have anything at all to do with lions or jungles?
17:28:27krux02Araq: is it possible to exclude single overloads when importing from a module?
17:28:28FromGitter<kristianmandrup> A standard for Reactive programming - ie. Observable streams
17:28:52disruptekkrux02: i don't think so.
17:29:02krux02for example import foo(arg: TypeA), but not foo(arg: TypeB)
17:29:17krux02disruptek, it would solve some problems.
17:29:25FromDiscord_<Rika> oh hey i've been thinking of porting rx into nim
17:29:28disruptekwe woulda used that for conditional export, too.
17:29:38FromDiscord_<Rika> but i'm too smallbrained to understand reactive
17:29:40FromGitter<kristianmandrup> My issue is that Nim seems to expect some variables are available to "hook on to", but how to do this in a concrete example?
17:29:44FromDiscord_<Rika> ive only recently understood async xd
17:30:24disruptekkristianmandrup: i'm pretty anti-web and i've managed to avoid it in nim. but, there are lots of people who are doing js integration without issue. shouldn't be hard to find examples.
17:30:39FromGitter<kristianmandrup> I'd like to do a proper blog post or github repo tutorial on JS interop, as there seem to be almost no information on how to do this... trying to figure it out
17:30:53disruptekpretend that it's c, basically.
17:31:05FromGitter<kristianmandrup> sure
17:31:11FromDiscord_<Rika> importjs, cdecl, etc
17:31:11FromDiscord_<Rika> ?
17:31:11disruptekimportc and everything.
17:31:31FromDiscord_<Rika> no no please use importjs now (i thin)
17:32:17disrupteknews to me.
17:32:51leorize[m]importc and importcpp are all you need for js interop
17:33:25*marmotini_ joined #nim
17:33:33disruptek!code importjs
17:33:34disbothttps://github.com/nim-lang/Nim/blob/38ab51c44572b78845fa62b0c0a597a46a63ad28/tests/js/tjsffi.nim -- 11tests/js/tjsffi.nim 7& 4 more...
17:33:55leorize[m]Araq considered renaming them but that's low priority
17:34:20disruptekit was just added in september.
17:34:20*Trustable joined #nim
17:42:52*sschwarzer joined #nim
17:44:29sschwarzerI'm sad that I had to cancel my trip to FOSDEM. :-( I would have liked so much to meet you.
17:48:18*PMunch joined #nim
17:53:37FromGitter<kristianmandrup> `importjs`?? haven't seen that b4
17:53:41disruptekdude. just because of trump's plague?
17:53:48FromGitter<kristianmandrup> A Nim module?
17:53:57disrupteks/importc/importjs/ that is all.
17:54:18disrupteki bought full-body condoms to wear while travelling upon the diseased.
17:56:12sschwarzerdisruptek?
17:56:28disrupteki mean, if they won't lie down and die quitely then s/upon/among/
17:56:34Zevveverbody knows brussels lies in the heart of china, right
17:56:43disruptekpretty much the epicenter.
17:56:45FromGitter<kristianmandrup> @disruptek Reminds me of the 007 satire movie with Leslie Nielsen - wearing full body condoms for 6x
17:57:09PMunchWuhan is a township in Brussels is it not?
17:59:15sschwarzerZevv *lol*
17:59:38*floppydh quit (Quit: WeeChat 2.7)
17:59:39sschwarzerdisruptek: No problem with the location here; I'm in Germany. :)
18:03:28sschwarzerAlthough I heard today about a case of Corona virus in Germany. But it was a matter of time anyway. Let's see how it turns out.
18:05:05PMunchSeems like it's fairly under control, but I guess an otherwise healthy person could get it and just think it's a hard case of the fly
18:05:08PMunchflu*
18:05:46disruptekhow do you figure it's under control? the growth is exponential and it can be weeks before a contagious carrier shows symptoms.
18:06:00disrupteki'm pretty sure i have it right now.
18:06:33disruptekima lick my hand before we meet; you lemme know how you feel on valentine's day.
18:10:01PMunchHaha, please don't. I'll be halfway across the globe by then..
18:15:44Zevvdang why do I keep running into this: http://ix.io/28Aj
18:15:47Zevviterators are *weird*
18:17:03LyndsySimonCan a Nim executable be compiled to run on an Arduino or other SoC?
18:17:05narimiranZevv: join the club: https://github.com/nim-lang/RFCs/issues/1
18:17:06disbot[RFC] Better iterators syntax
18:17:09FromDiscord_<Clyybber> Zevv: Thats a bug
18:17:13disruptekzevv: that should be fixable.
18:17:29Zevvar_q tried to explain to me once what happens really, but I dont grok it
18:18:02Zevv"naming" the thing instantiates it
18:18:08disrupteklyndsysimon: sure.
18:18:42LyndsySimonYay :$. I have a commercial use case in mind :)
18:18:46FromDiscord_<Clyybber> Zevv: Does it iterate forever?
18:18:50FromDiscord_<Clyybber> Or just not at all
18:18:59Zevvnope, it just returns the first item and then ends
18:19:08FromDiscord_<Clyybber> He, ok
18:19:42PMunchLyndsySimon, indeed, I have a talk at FOSDEM about this topic :)
18:19:45Zevvbut looking at the code, strictly there should be no difference. The result of cLines is evaluated, and who cares where that is done
18:19:57LyndsySimonOooh. Link?
18:20:00PMunchAnd with the new --gc:arc it should be easier than ever to use
18:20:12disruptekZevv: yes, that's why it's a bug.
18:20:16ZevvPMunch: soo you *will* put that in, right? :)
18:20:17PMunchLyndsySimon, FOSDEM isn't until this weekend, so it's not been held yet
18:20:32LyndsySimonAwesome, I’ll be on the lookout.
18:20:34LyndsySimonTy
18:20:37PMunchZevv, --gc:arc? I plan on putting it in yes :)
18:20:46PMunchJust need to understand it first :P
18:21:12ZevvLyndsySimon: https://github.com/zevv/mininim should get you started
18:21:14FromDiscord_<demotomohiro> LyndsySimon, Nim executable means the Nim compiler or an executable file created by Nim?
18:21:31LyndsySimonCreated by Nim
18:21:46Zevvit doesn't do anything, but it shows how to get the compiler to generate avr code
18:22:01LyndsySimonI want to make a hardware device that reports the status of a 3D printer via an API.
18:22:13LyndsySimonPart of a larger project.
18:22:16Zevvbut why on earth does anyone choose to run on an AVR in 2020?
18:23:12disrupteklyndsysimon: constrained envs will be a particular strength of nim, particularly in the future.
18:23:52PMunchZevv, why not?
18:24:08Zevvpure masochism
18:24:32disruptekzevv's the expert and he says, "save yourselves!"
18:25:17PMunchWell, for a dollar or so you can get a little controller that is powerful enough to hook up to a sensor or two along with some communication possibility. I've thought about just littering my house with these things equiped with things like temperature sensors for fun.
18:25:48disrupteki've thought about littering your house with devices, too.
18:26:16Zevvright. But for a dollar or so you can get a 32 bit ARM Cortex M0 runnng at 64 Mhz
18:26:17FromDiscord_<demotomohiro> I heard someone is trying to make a program with Nim for game boy advance
18:26:22disruptekdid anyone else notice the ThinkGeek box on jim lehr's desk in his NYT obit photo?
18:26:49disruptekZevv: you make it hertz so good.
18:28:24Zevvand if you look a bit firther, for less then a dollar you get an ARM with MMU with enough on chip RAM to run Linux.
18:34:08Zevvfor three dollars you get 32bit SOC with bluetooth and wifi on board, able to run HTTPS if you want it to
18:35:31disruptekthat's actually pretty wild. link? what's the package?
18:35:36disruptekfootprint, i mean?
18:36:04disruptekwe should build some nim business cards.
18:36:23sschwarzerZevv: What about ease of set-up? If you have to install and configure a Linux on the device it might be quite some overhead if you want to do something simple. (That said, maybe you can simplify things if you can run a container on the device. Also I don't know how much you have to do to prepare an Arduino for development)
18:36:45disruptekprobably too late to get anything in time to hack up id badges for fosdem, but that woulda be a cool advertisement.
18:36:54Zevvsschwarzer: that's the thing with arduinos: the whole setup is ridiculously simple
18:37:06sschwarzerdisruptek: dynamic business cards, running on an embedded device? ;)
18:37:13ZevvI'm an embedded software engineer, and I'm too ashamed to do anything with arduinos or raspberries.
18:37:13FromGitter<kristianmandrup> So I've discovered there is an `importjs` alias (to `importcpp` I believe?) available, but nowhere mentioned in docs or any examples I have found...
18:37:26disrupteklol zevv
18:37:33FromGitter<kristianmandrup> how do I import f.ex `rxjs/observable/merge`??
18:37:50disruptekkristianmandrup: it's the same as importc. just an alias.
18:38:00FromGitter<kristianmandrup> {.importjs "rxjs/observable/merge".} or do I use `emit`?
18:38:06disruptekformer
18:38:09sschwarzerI thought Raspberries are quite "high-level". I set up a server (in a Docker container) on one recently.
18:38:30disruptektry not to use emit; it's code smell.
18:38:37FromGitter<kristianmandrup> @disruptek - cool :)
18:39:18Zevvsschwarzer: well raspberries are so high level that there is not really much embedded about them.
18:39:27ZevvBut you get a PCB, so lot's of people go "oooooh it's embedded"
18:39:34disruptekit looks the part.
18:39:44disruptekbut let's get back to the $3 parts.
18:39:47Zevvthey whip up three lines of python and wonder what the fuzz my job is about
18:40:05disruptekwe should really do this. it'd be a good advertisement.
18:40:26*Ven`` joined #nim
18:40:36disruptekthey should do something together. like emit a name in led when you get nearer to another such badge.
18:40:37Zevvdisruptek: if you really want to go there, I think someone should take the time to properly integrate arduino with nim
18:40:43Zevvso you just can start the arduino IDE
18:40:47Zevvtype "echo hello world"
18:40:50Zevvand hit the run button
18:41:11disruptekno, i don't want to go there. that's not my bag, baby. i know nothing about embedded.
18:41:17Zevvok, then you'd get an error about the quotes being in the wrong place
18:41:33disruptekyeah, that sounds like my kinda error.
18:41:33Zevvdisruptek: you'd be surprised. Its not about the embedded, its about the integration of the nim compiler with the arduino ide
18:41:49disrupteksee? i'm already out of my depth.
18:42:08Zevvit's a bit of plumbing, but it would make a wonderful story. Arduino is a still programmed in C with a bit of honey on top
18:42:17disrupteki think the fact that i chat on irc all day makes people think i know something about that which i bullshit about.
18:42:31disruptekhoney, huh.
18:42:36disrupteksounds sweet.
18:42:54Zevvso there is a tiny pythonnesque thing for arduino, but honestly, Nim would shine there
18:43:11disruptekcould you and i build it?
18:43:28rockcaveranarimiran, I tested these codes of mine https://github.com/rockcavera/nim-problem with the devel version and still the same thing
18:43:28Zevvsure, if I could find the inspiration and time
18:43:32sschwarzerZevv: good point (about Raspberries and high-level). I only mentioned it because I think you mentioned them under "embedded"
18:43:35sschwarzer:-)
18:44:07disruptekrockcavera: man, that's a bummer. 😦
18:44:09Zevvsschwarzer: well, most of the embedded" stuff I did over the last decade has been linux based anyway
18:44:17Zevvso where do you draw the line.
18:45:06disrupteki am super impressed by my palmtop. ima bring it this weekend.
18:45:11sschwarzerZevv: a question that I have asked myself, too :)
18:45:15rockcaveradisruptek, what is a bummer?
18:45:26Zevvfor me if it runs debian or ubuntu on an SD card, it's not embedded
18:45:47disruptekno, not embedded. but surprisingly good. 1920x1200, touchscreen, 2 cores, 4 threads, 8gig.
18:46:57FromGitter<kristianmandrup> @disruptek - best approach for multi import?
18:47:01FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e3081a4f301780b833d87c5]
18:47:04disruptek7" 330dpi, qwerty, audio and active cooling. intel. onboard ssd, but also micro-sd. usb3, usb-c. pretty good.
18:47:10FromGitter<kristianmandrup> Can I do the 2nd variant?
18:47:32FromGitter<kristianmandrup> Not sure how to use push pragma correctly yet
18:48:17disrupteki'd be shocked if you could do that.
18:48:37disruptekthat works?
18:48:43FromGitter<kristianmandrup> Haven't tried, but would be nice and convenient
18:49:02FromGitter<kristianmandrup> so this is the only way?
18:49:06FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e308222433e1d40396c67e7]
18:49:08disruptekyou could write a macro to produce that for you.
18:49:32disruptekeg. a block like `importTheseFrom "rxjs/operators":`
18:49:50FromGitter<kristianmandrup> Awesome! Would be fantastic, will try my first macro tmrw
18:50:00disruptekyou'll be surprised how easy it is.
18:50:06FromGitter<kristianmandrup> but should the above work? using `importjs` in correct context?
18:50:27disrupteki have no idea. i've never done it.
18:51:08disrupteki run nim natively on the backend (as opposed to inside node) and haven't bothered to integrate anything into my frontend.
18:51:46disrupteki would rather start from scratch in karax that port a largish spa i wrote 6 years ago.
18:51:51disrupteks/that/than/
18:52:51PMunchZevv, what about battery consumption. How long can you run your 64Mhz M0 on a coin-cell?
18:53:10disruptekhonestly, i would rather wake up to a neck punch every day for the next three years than touch the js ecosystem.
18:53:42disruptekPMunch: it only needs to last a weekend. 😁
18:54:18FromDiscord_<Clyybber> ð
18:54:20PMunchI was thinking about in general, but yeah for a business card that might be enough
18:54:52disrupteki know, i get it. i'm still waiting for a link.
19:03:17PMunchI mean the ESP8266 is a 32Bit chip with built in WiFi that costs <$3
19:04:08disrupteki was thinking low power; bluetooth.
19:04:35disruptekmaybe there's a good app for a wifi business card or badge, though.
19:04:57*ptdel quit (Ping timeout: 260 seconds)
19:05:24disruptekwe could do key exchange or something.
19:05:44AraqClyybber: I'm implementing scope based destruction
19:09:14*sschwarzer left #nim (#nim)
19:10:54*ofelas joined #nim
19:15:46*ptdel joined #nim
19:20:20ZevvPMunch: weeks, if you get your power management right. Just like an atmel
19:20:28disruptek~motd is for a good time, visit your most busy repo and type `git fsck`
19:20:28disbotmotd: 11for a good time, visit your most busy repo and type `git fsck`
19:20:35ZevvJust make sure you stop your clocks when nothin to do
19:20:44Zevvmonths, even, for the right devices
19:21:06ZevvAraq: sweet!
19:21:51PMunchHuh, that's neat
19:25:14*PMunch quit (Quit: Leaving)
19:26:22*PMunch joined #nim
19:31:11FromDiscord_<Clyybber> Araq: Nice!!!
19:32:48FromGitter<kaushalmodi> @kristianmandrup I have use push and pop for `header` and that works fine
19:32:59FromGitter<kaushalmodi> e.g. https://github.com/kaushalmodi/std_vector/blob/master/src/std_vector.nim
19:33:39*matlock quit ()
19:33:54*matlock joined #nim
19:39:57*ptdel quit (Ping timeout: 260 seconds)
19:45:24FromDiscord_<Recruit_main_70007> why are my 3 threads performing worse than a single function call?
19:45:34*pbb_ joined #nim
19:45:40disruptekthey don't want to make it look bad.
19:47:45*pbb quit (Ping timeout: 272 seconds)
19:48:25PMunchRecruit_main_70007 probably because you have some contention or lock overheard
19:48:48PMunchOr your problem simply isn't very thread-friendly
19:49:07FromDiscord_<Recruit_main_70007> code paste works, right?
19:49:21PMunchUhm, define code paste
19:49:22zedeus~paste
19:49:23disbotpaste: 11a frowned-upon behavior in chat; please use a service such as https://play.nim-lang.org/ or http://ix.io/ or https://gist.github.com/ and supply us a URL instead.
19:49:29PMunchPlease don't paste code directly into discord
19:49:50PMunchOh sweet, disbot have gotten a nice message about this now :)
19:50:03FromDiscord_<Recruit_main_70007> irc can do it, why cant i?
19:50:11PMunchHuh?
19:50:16disrupteki think you just answered your question.
19:50:34PMunchEveryone on IRC does it manually..
19:50:45PMunchOr rather most of us probably have some shortcut to do it for us
19:51:14PMunchDamn it, I hate web-pages that blocks certain browsers..
19:51:16FromGitter<kaushalmodi> > Or rather most of us probably have some shortcut to do it for us ⏎ ⏎ This.. `C-u x m w`
19:51:28disruptekthe person that fixes my clipboard gets added to my .sig; it's absolutely bonkers.
19:51:32PMunchJust let my browser try damn it.. It's fully equipped to handle your bullshit site
19:51:52PMunchHaha, what have you done to it disruptek?
19:52:17disrupteki dunno; i'm stupid i guess. wayland, terminal, browser. i only use two apps.
19:52:50FromDiscord_<Recruit_main_70007> https://play.nim-lang.org/#ix=28AJ
19:52:50FromDiscord_<Recruit_main_70007>
19:52:50FromDiscord_<Recruit_main_70007> thats it
19:53:43FromDiscord_<Recruit_main_70007> these includes how i create the threads https://play.nim-lang.org/#ix=28AL
19:55:22FromDiscord_<Clyybber> disruptek: What part?
19:55:41FromDiscord_<Clyybber> The part that when you close an app you pasted from the paste disappears?
19:55:55disruptekno; i can't paste from one to the other.
19:56:07FromDiscord_<Clyybber> Oh
19:56:09PMunchYardanico, would it be possible for the discord bot to not send empty messages?
19:56:32PMunchdisruptek, haha kinda defeats the purpose :P
19:56:41disruptekor, i guess, from chrome which runs in Xwayland to kitty which is wayland native. or vice-versa. they have different ideas about what the contents are most of the time.
19:57:03disruptekyeah, it's really annoying. just about the only problem i have with my env.
19:57:15YardanicoPMunch: I'm not sure if it's configurable in matterbridge, but with ircord sure :P
19:58:35PMunchAah, so it's probably a Wayland vs. X issue
19:58:48PMunchYardanico, oh right this one isn't your version (yet)
19:59:17YardanicoWell, anyone can improve it, it's on GitHub :P
19:59:22Yardanico!repo ircord
19:59:22disbothttps://github.com/Yardanico/ircord -- 9ircord: 11Discord <-> IRC bridge in Nim 15 4⭐ 0🍴
19:59:26FromDiscord_<Recruit_main_70007> pls, do i have any kind of error that makes things slow 😦
20:02:52*marmotini_ quit (Remote host closed the connection)
20:03:29*marmotini_ joined #nim
20:08:03*marmotini_ quit (Ping timeout: 265 seconds)
20:08:10disruptekyes.
20:11:19FromDiscord_<Recruit_main_70007> what
20:18:38PMunchRecruit_main_70007, just while looking at this I noticed a couple of things not really related
20:19:13PMunchNim uses two spaces for indentation. And your whole clicking thing can be simplified to clicking = not clicking
20:19:53PMunchelse: discard is also not really doing anything
20:20:08PMunchAnd why do you sleep for a second in there? That's probably what's slowing you down :P
20:20:37*icebattle quit (Ping timeout: 265 seconds)
20:33:09FromGitter<NimStart> is @treeform online?
20:35:53FromDiscord_<Clyybber> @NimStart yeah, I'll tag him for you @treeform
20:38:37FromGitter<NimStart> thanks
20:43:36FromDiscord_<Recruit_main_70007> Pmunch: the first leep cant be slowing my function though, i will set the clicking = not clicking, but that still doesnt slove my problem, thank you anyway
20:43:37PMunchClybber, I think taggings are coming across in the bridges
20:43:56FromDiscord_<Recruit_main_70007> nope, its not highlighted
20:44:12PMunchWhat do you mean the first sleep? It waits a full second after you click whatever key that is
20:44:30PMunchAnd every thread will be running the same code, what do you hope to achieve by that?
20:45:20FromDiscord_<Recruit_main_70007> it waits 0.1 seconds i believe, and by running it more times, more clicks basically
20:45:45FromDiscord_<Recruit_main_70007> its neccesary, the program wont stop when i tell it to do so
20:46:07disrupteksay it louder.
20:46:47FromDiscord_<Recruit_main_70007> NimStart he is live
20:46:54disrupteki've been practicing my travelling american. you just say everything in english loudly and slowly.
20:47:19disruptekthe french in particular love it.
20:47:29FromDiscord_<treeform> Nimstart, what?
20:49:37FromGitter<NimStart> thanks for fixing fidget. how to include font in static binary?
20:50:13*zama quit (Ping timeout: 260 seconds)
20:53:03*zama joined #nim
20:53:13FromDiscord_<treeform> Like you want the font to be baked in as well?
20:53:35FromGitter<NimStart> Yeah if possible, or at least use a system font
20:53:53FromDiscord_<treeform> I started on system fonts.
20:55:06FromGitter<NimStart> Is it usable?
20:55:12FromDiscord_<treeform> I don't have static read for fonts
20:55:54*icebattle joined #nim
20:56:03FromDiscord_<treeform> that might not be hard
20:56:10FromDiscord_<treeform> I just ship fonts in the data folder
20:56:21FromDiscord_<treeform> I need icons and stuff from the data folder anways.
20:57:04FromDiscord_<treeform> I want to use system fronts for Chinese because those fonts can be 1GB+
20:57:08FromDiscord_<treeform> but its not ready yet
20:57:50disruptekthat seems kinda large for a font.
20:58:14FromDiscord_<treeform> they have 100,000-200,000 glyphs
20:58:22disrupteki heard web-pages were getting heavier these days, but holy shit.
20:58:25FromDiscord_<treeform> and ifs high quality?
20:58:34FromDiscord_<treeform> I don
20:58:48FromDiscord_<treeform> 't think you want to include a CJK font on a webpage.
20:58:58disruptekwell, maybe not mobile.
21:00:09FromGitter<NimStart> is it possible to customize the app icon and splash with fidget?
21:00:33FromDiscord_<treeform> splash?
21:00:41FromDiscord_<treeform> app icons is done differently on every OS
21:00:49FromDiscord_<treeform> you can set the display icon after your app is running
21:01:07FromDiscord_<treeform> but the displayed icon in a folder is different for all OS, linux I don
21:01:11FromDiscord_<treeform> 't think supports it.
21:01:41*Trustable quit (Remote host closed the connection)
21:05:51*icebattle quit (Ping timeout: 265 seconds)
21:07:35FromGitter<NimStart> Any reason why figma centered text shows up not centered on fidget?
21:10:00PMunchRecruit_main_70007, no that sleeps for a full second, sleep takes milliseconds
21:10:21PMunchAnd the reason why it doesn't stop when you want it to is probably because the thread is sleeping
21:12:08*narimiran quit (Quit: leaving)
21:12:54FromDiscord_<Recruit_main_70007> no, it doesnt work when there is no sleep, it wont stop
21:25:09PMunchThat's probably because the GetAsyncKeyState reports that you are holding the key down
21:25:26PMunchSo clicking bounces between the two states as fast as the loop runs
21:26:06FromDiscord_<Recruit_main_70007> yes, and i dont want to fight the program to make a 1 frame press everytime i stop it
21:26:13PMunchYou need to keep track of when the key has been let go, and only then accept new clicks
21:27:54FromDiscord_<Recruit_main_70007> ok... leaving aside the clicking and not clicking thing, how can i make it faster, like pushing it to the breaking point
21:29:05*ltriant joined #nim
21:34:27FromGitter<NimStart> @treeform, Any reasons why simple app with text box consumes 30% CPU, 300mb RAM and 30% GPU?
21:35:11FromDiscord_<Recruit_main_70007> not connected
21:37:38*Vladar quit (Quit: Leaving)
21:43:21PMunchRecruit_main_70007 no idea, to be honest I don't even know what this is doing..
21:44:11FromDiscord_<Recruit_main_70007> literally a fast autoclicker
21:45:31*filcuc joined #nim
21:45:31*filcuc quit (Remote host closed the connection)
21:45:51*filcuc joined #nim
21:54:17*icebattle joined #nim
22:03:40*icebattle quit (Quit: Lost terminal)
22:04:52*abm quit (Quit: Leaving)
22:08:37PMunchWell, that is going to be limited by whatever interface you use to actuate the clicks
22:09:06PMunchThreads are very unlikely to make it run any faster
22:09:21FromDiscord_<Recruit_main_70007> i ve already seen that 😉
22:10:02FromDiscord_<Recruit_main_70007> i believe the windows api is the fastest one, dont you think?
22:10:43PMunchQuite possibly
22:11:08FromDiscord_<Recruit_main_70007> so thats it?
22:11:08FromDiscord_<Recruit_main_70007> thats the fastest?
22:11:30PMunchI dunno, never tried the Windows mouse APIs
22:11:37PMunchOr indeed implemented an auto-clicker
22:11:53PMunchWhat speeds are you seeing?
22:12:05PMunchThe loop for handling mouse clicks probably have some limit as well
22:12:27FromDiscord_<Recruit_main_70007> most clicking stats webs crash
22:13:05PMunchHuh?
22:13:35FromDiscord_<Recruit_main_70007> they will start to freeze
22:15:43FromDiscord_<Recruit_main_70007> 96.37 clicks per second on average, but i know thats pretty shitty for an autoclicker
22:19:22*tane quit (Quit: Leaving)
22:19:56PMunchHmm, maybe find an open source auto-clicker and see what it does?
22:20:01PMunchAnyways, I'm off to bed
22:20:03*PMunch quit (Quit: Leaving)
22:20:33FromDiscord_<Recruit_main_70007> gn, i can see some of them are 1000Cps, but the thing is making it myself
22:25:50FromDiscord_<Recruit_main_70007> shit, even python is faster...
22:33:13*adeohluwa joined #nim
22:34:11*jxy quit (Quit: leaving)
22:36:12*adeohluwa quit (Remote host closed the connection)
22:38:16*solitudesf quit (Ping timeout: 268 seconds)
22:39:39*jxy joined #nim
22:40:18rayman22201I'm late to the party, but Zevv is my hero and I want to know more about hacking the arduino ide :-P
22:42:22FromGitter<Varriount> Recruit_main_70007: Is this Nim performance?
22:42:53FromGitter<Varriount> One big difference between Python and Nim (aside from the obvious) is that strings are copy-on-assignment in Nim.
22:46:01*gangstacat quit (Quit: Ĝis!)
22:46:12FromDiscord_<Recruit_main_70007> No, an aoutoclicker, just a key to start/stop, python uses a thread, and goes nuts, while Nim doesn’t improve
22:47:02FromDiscord_<Recruit_main_70007> I guess it’s Nim performance, yes, the no is because I don’t use strings, so they can’t be the problem
22:49:36FromGitter<Varriount> How large is the code? Could you post it?
22:51:46*filcuc quit (Quit: Konversation terminated!)
23:00:49*ftsf joined #nim
23:06:13*icebattle joined #nim
23:06:37*lxbarbosa joined #nim
23:22:27*disrupteq quit (Ping timeout: 240 seconds)
23:25:15*neceve quit (Ping timeout: 265 seconds)
23:26:51FromDiscord_<Recruit_main_70007> https://play.nim-lang.org/#ix=28AJ that’s faster than this
23:26:51FromDiscord_<Recruit_main_70007> https://play.nim-lang.org/#ix=28AL which use multithreading
23:27:08*disrupteq joined #nim
23:29:55*jken_ is now known as jken
23:44:14*Ven`` quit (Quit: Textual IRC Client: www.textualapp.com)
23:53:39FromDiscord_<Clyybber> @Recruit_main_70007 you should probably use https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput instead
23:53:40FromDiscord_<Clyybber> gn
23:58:23FromDiscord_<treeform> the UI thread in the OS is usually single threaded. You might not be able to use threads to send mouse_events to OS faster.