<< 28-06-2020 >>

00:00:01*junland quit (Quit: %ZNC Disconnected%)
00:00:42*junland joined #nim
00:09:33FromDiscord<exelotl> idea for a macro that lets you alias an expression with `var` semantics https://gist.github.com/exelotl/ef2507c58b4f81c74a197f99c56b9bd5
00:10:13FromDiscord<exelotl> sent a code paste, see https://play.nim-lang.org/#ix=2qnl
00:13:11FromDiscord<MapleSyrup|TagMeIfReply> can anyone drop the names of some libraries that use stropping?
00:13:23rayman22201Hey everyone. Been a minute. how are you all doing. I decided to compile nim devel fresh from scratch after being gone for two months, and I get this:
00:13:23rayman22201```
00:13:23rayman22201 /usr/bin/ld: /home/ray/.cache/nim/nimsuggest_r/linenoise.c.o: relocation R_X86_64_32 against `.bss' can not be used when making a PIE object; recompile with -fPIC```
00:13:23rayman22201Any ideas? Why is Nim shipping with a broken version of linenoise now? :-P
00:13:30FromDiscord<MapleSyrup|TagMeIfReply> I'm just curious if that's more of a thing that's allowed but not accepted generally or somethinge lse
00:14:57*oddp quit (Ping timeout: 258 seconds)
00:27:23FromDiscord<Rika> @MapleSyrup|TagMeIfReply I don't see why it wouldn't be accepted generally
00:28:07FromDiscord<MapleSyrup|TagMeIfReply> ok please dont crucify me, but it looked to me like it was just to make allowances for people who really want to use keywords and not really recommended
00:28:20FromDiscord<Rika> What I do think it is is that it is not what people prefer
00:28:28FromDiscord<MapleSyrup|TagMeIfReply> AH
00:28:32FromDiscord<MapleSyrup|TagMeIfReply> that's what I wanted to know
00:28:34FromDiscord<MapleSyrup|TagMeIfReply> the nim meta
00:28:34FromDiscord<MapleSyrup|TagMeIfReply> thanks
00:28:42FromDiscord<Rika> People don't prefer writing it, but it's fine to use it
00:29:00FromDiscord<Rika> Most people don't notice (when using a library) until they read your code
00:29:09FromDiscord<MapleSyrup|TagMeIfReply> fair enough!
00:29:27FromDiscord<MapleSyrup|TagMeIfReply> also what are your thoughts on me linting other people's code to my code format style
00:29:28FromDiscord<Rika> Unless you strop the proc name itself lol
00:29:36FromDiscord<MapleSyrup|TagMeIfReply> O_o cray cray
00:29:55FromDiscord<Rika> Sure you can do that, as long as you don't pr back that code to them lol
00:30:05FromDiscord<MapleSyrup|TagMeIfReply> oof ok
00:30:06FromDiscord<Rika> That's my take on linting
00:30:22FromDiscord<MapleSyrup|TagMeIfReply> that sounds fair enough, I wish linters were smart enough to revert to whatever style was used, before committing
00:30:34audiophileello rika
00:30:40FromDiscord<Rika> Some people just have inconsistent styles
00:30:42FromDiscord<Rika> Hello
00:30:47FromDiscord<MapleSyrup|TagMeIfReply> It is me
00:31:10FromDiscord<Rika> I have an inconsistent style tok
00:31:44FromDiscord<Rika> I'm undecided on how I'd split up proc signatures, so sometimes you see one long ass line, or one split up kinda weirdly
00:32:02FromDiscord<MapleSyrup|TagMeIfReply> oh right, esp since the nim style guide recommends keeping cols within 80
00:32:15FromDiscord<Rika> I don't follow that
00:32:26FromDiscord<MapleSyrup|TagMeIfReply> _picks up pitchfork_
00:32:27FromDiscord<Rika> Used to follow 120, but I don't anymore
00:32:29FromDiscord<KingDarBoja> I do
00:32:34FromDiscord<MapleSyrup|TagMeIfReply> 80 is short I agree
00:32:42FromDiscord<MapleSyrup|TagMeIfReply> so are you implying you go over 120?
00:32:43FromDiscord<KingDarBoja> 80 is nice, but if there is no chance on some code block, I will forgive it
00:32:44FromDiscord<MapleSyrup|TagMeIfReply> that could be true
00:32:51FromDiscord<Rika> Yes I do, in rare cases
00:33:04FromDiscord<Rika> I don't intentionally go over 120 but when I do I don't split the line
00:33:24FromDiscord<MapleSyrup|TagMeIfReply> I mean, almost everyone has an ultrawide monitor these days, let's try to make it 256 😎
00:33:30FromDiscord<Rika> Smh
00:33:55FromDiscord<MapleSyrup|TagMeIfReply> I know some people out there with 32:9 monitors >_>
00:33:56FromDiscord<Rika> Wonder if nimscript can do async functions that go back to nim
00:34:03FromDiscord<Rika> Sounds stupid
00:34:07FromDiscord<Rika> I mean what I just said
00:34:17FromDiscord<MapleSyrup|TagMeIfReply> that's okay
00:34:19FromDiscord<MapleSyrup|TagMeIfReply> we are all a little stupid
00:34:31FromDiscord<Rika> Nah I'm a lot stupid lol
00:34:50FromDiscord<KingDarBoja> lol
00:35:00FromDiscord<KingDarBoja> I don't have ultra wide monitor lol
00:35:29FromDiscord<Rika> I only have a 1080p 24 inch
00:35:54FromDiscord<Rika> Hmm, wonder how I'd do async scripting
00:36:08rayman22201ultrawide monitors but no help for my poor linenoise problem :-(
00:36:17audiophileaww bummer
00:36:21audiophilesorry man i have no idea
00:36:31audiophiletry singing sweet nothings in your linenoise's ears
00:37:05rayman22201damn. But I need a better pulse audio driver to sing those sweet nothings :-P
00:37:13FromDiscord<MapleSyrup|TagMeIfReply> haha
00:37:54FromDiscord<Rika> rayman22201 I made a full nim linenoise port if that matters
00:38:10FromDiscord<MapleSyrup|TagMeIfReply> what is linenoise
00:38:26rayman22201I'm bootstraping the compiler though, so I don't think that will help :( Thanks though
00:38:35rayman22201linenoise is a line buffering library written in C
00:38:46FromDiscord<MapleSyrup|TagMeIfReply> ohh I see
00:39:17rayman22201it lets you have cool vi bindings and autocomplete in your terminal, stuff like that.
00:39:40rayman22201which makes sense, it's nimsuggest that is failing to build
00:42:48audiophilewait what
00:42:53audiophilehow does vi tie into this
00:43:05audiophileI'm still a bit hazy on how linebuffering is useful here
00:43:25zedeuscli input
00:43:41FromDiscord<MapleSyrup|TagMeIfReply> is this useful in the sense you elminate any lag?
00:44:16zedeusit provides cli input similar to a typical shell, with features like vi bindings
00:44:42zedeushttps://github.com/antirez/linenoise
00:44:45audiophileah h
00:46:38rayman22201to be clear. I don't actually care about linenoise... I'm just trying to bootstrap the compiler from github, and it's failing because the script is trying to build nimsuggest and vomits when it tries to link in lineoise...
00:47:04audiophilehey, linenoise is cool
00:47:11audiophile<insert stop emoji>
00:47:54rayman22201lol, it is, but it would be cooler if nimsuggest didn't choke on it for me :-P
00:47:58FromDiscord<Vindaar> @rayman22201 I assume you try to use the build_all.sh script?
00:48:02rayman22201correct
00:48:08FromDiscord<Vindaar> have you tried just building the compiler w/o the tools?
00:48:55rayman22201going to try that next. I want nimble though :-(
00:49:11FromDiscord<Vindaar> you can just build each tool individually using koch
00:49:19rayman22201it's phase 2 of the 3 phase bootstrap btw
00:49:57FromDiscord<Vindaar> so it's actually happening during the compiler bootstrap?
00:50:07FromDiscord<Vindaar> what does nimsuggest have to do with that?
00:50:57rayman22201bootstrap tries to build nimsuggest
00:51:34FromDiscord<Vindaar> and what happens if you just do `./koch boot -d:danger` (or release if you prefer)
00:51:42FromDiscord<Vindaar> I assume the csources were correctly built?
00:52:23rayman22201I didn't get any errors in csources, so I assume yes.
00:52:30rayman22201doing ./koch boot now
00:54:12rayman22201works
00:54:22FromDiscord<Vindaar> good to know
00:54:29FromDiscord<Vindaar> then you can just `./koch nimble`
00:55:00rayman22201probably bad that nimsuggest doesn't compile though, yes?
00:55:12FromDiscord<Vindaar> eh, sure
00:55:17rayman22201also bad that build_all.sh doesn't work?
00:55:21rayman22201lol
00:55:25FromDiscord<Vindaar> yep, haha
00:55:51FromDiscord<Vindaar> does work fine on my machine thouhg
00:57:57rayman22201I'm using an old vm. I wonder if it's using my system linenoise, which is just too old.
00:58:05rayman22201ubuntu 18.04
00:58:56FromDiscord<Vindaar> hm no idea. but I don't know why it would use your system linenoise
00:59:26FromDiscord<Gary M> can nim access the filesystem/open applications through the javascript target if you're using node.js
01:00:08rayman22201I can't find where linenoise is getting included in nimsuggest in the first place, but I'm not super familiar with nimsuggest
01:01:08rayman22201Gary M, in theory yes, but the nim stdlibrary functions won't work. You will have to importjs the node.js versions of those functions.
01:02:18rayman22201Well, thanks Vindaar. That's good enough for me right now. I'm going to file a bug report about it and move on :-P
01:07:18FromDiscord<Vindaar> No worries! Yeah, just open an issue and do something fun afterwards πŸ˜‰
01:09:14*ForumUpdaterBot quit (Remote host closed the connection)
01:09:43FromGitter<raydf> Hello everyone. Is there someone with some knowledge about nimterop? I'm trying to wrap the duktape library with this code: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5ef7edd747fdfd21edec8833]
01:13:02*screens_ quit (Quit: No Ping reply in 90 seconds.)
01:14:17*screens_ joined #nim
01:15:02*hecanjog quit (Ping timeout: 265 seconds)
01:15:25*hecanjog joined #nim
01:16:56*lritter quit (Ping timeout: 256 seconds)
01:17:36rayman22201wow. nimterop plugs into conan.io now. That's cool... Nimterop has grown some fancy features since I have been gone. Sorry, can't help you there.
01:19:02FromDiscord<Gary M> is Araq around?
01:21:35FromDiscord<Gary M> I'm looking at nimsuggest right now and need to be reminded on the optimal way to run it in the workspace. I think you said just point it at the folder of the current open file?
01:21:48FromGitter<raydf> @thx rayman, np.
01:30:04*bung joined #nim
01:37:27shashlick@raydf let me see
01:38:22shashlickYou need to tell getHeader what you want it to do
01:38:47shashlick-d:duktapeDL on the command line
01:40:22shashlick@Gary M best to check how @leorize does it work nim.nvim - https://github.com/alaviss/nim.nvim
01:40:38FromDiscord<Gary M> ok thanks
01:40:42FromGitter<raydf> thx @shashlick
01:40:59shashlickWhere you been @rayman22201
01:45:36FromGitter<raydf> @shashlick for connan is the same -d:duktapeConan?
01:46:07FromGitter<raydf> i tried: ⏎ ⏎ ```nimble run test -d:duktapeConan``` [https://gitter.im/nim-lang/Nim?at=5ef7f65f7ba3965373d28f2e]
01:48:39FromGitter<raydf> i made some advances with ⏎ ⏎ ```nim c -d:duktapeConan src/executer.nim ``` [https://gitter.im/nim-lang/Nim?at=5ef7f6f7d65a3b0292b46fb9]
01:49:04FromGitter<raydf> but is giving me ⏎ ⏎ ```Error: undeclared identifier: 'uint_least8_t'``` [https://gitter.im/nim-lang/Nim?at=5ef7f710fa0c9221fc64e513]
01:49:21FromDiscord<Gary M> man I've never had to look at vimscript this is weird πŸ˜„
01:49:52*chemist69 quit (Ping timeout: 260 seconds)
01:50:41shashlicklet me see - which OS are ou on
01:51:38*chemist69 joined #nim
01:52:47FromGitter<raydf> @slashlick, i'm on macOS
01:54:38FromGitter<genotrance> if you look at the duktape code, uint_least8_t is not defined so you need to see what it should be and define that in a cOverride section
01:55:14FromGitter<genotrance> https://stackoverflow.com/questions/35055042/difference-between-uint8-t-uint-fast8-t-and-uint-least8-t
01:56:12disruptekshashlick: oom trying to build nimterop on 500mb node. 😦
01:57:01FromGitter<genotrance> wow
01:57:49disrupteki know, it sucks.
02:03:51*fredrikhr quit (Ping timeout: 265 seconds)
02:07:24leorize[m]@Gary M what version of nimsuggest are you planning to support?
02:07:57disruptekshashlick: i get this on nim 1.0.7 and nimterop v0.6.0: # Failed to parse `nim dump` output: input(1, 0) Error: { expected
02:08:00FromDiscord<Gary M> I don't know, I don't even know how it's supposed to work yet.
02:08:10FromDiscord<Gary M> This is going to take a lot of effort and bashing my head against a wall
02:08:32FromGitter<raydf> @genotrance thx, i'm checking all the overrides i need to do.
02:10:33FromGitter<genotrance> all those are defined in stdint
02:11:32shashlick@raydf - http://ix.io/2qnD/nim
02:12:28disruptekshashlick: nevermind me; i rebuild it and it seems fine.
02:12:48shashlickwhat did you rebuild?
02:13:19shashlick@raydf - here's what the output looks like on my linux machine - http://ix.io/2qnE/nim
02:14:53shashlickany reason why you aren't using https://github.com/manguluka/duktape-nim?
02:17:47FromGitter<raydf> because it gives a signal error when the javascript is not valid, it looks like the duktape error handling is not working.
02:18:31FromGitter<raydf> i'll compile with docker and get rid of the xcode hell. thax for the stdint.h tip
02:21:49shashlick@raydf - I created a gist for posterity - https://gist.github.com/genotrance/51702ec94efcf7151b3d253600f6be22
02:25:36disruptekshashlick: i rebuilt toast.
02:26:09shashlickhmm
02:27:41leorize@Gary M well I've already do the head bashing part, so feel free to ask me if you have any questions
02:28:47disruptekaudiophile: in theory, you can output objc with the nim compiler and interface with native ios libraries.
02:28:58shashlick@disruptek: i've bumped nimgit2 to v0.3.0 - it adds conan and jbb support if you want to use it
02:29:07disruptekdoes that help?
02:29:33shashlicki don't think it helps you yet since neither of them have prebuilt binaries for v1.x+
02:29:37audiophileoh I see disruptek
02:29:38shashlickbut when they do
02:29:48disruptek`nimph upgrade` is an awesome feature.
02:29:53FromGitter<raydf> @shashlick, thx for the help, i got it working in mac overriding ⏎ ⏎ ```intmax_t = int64 ⏎ uintmax_t = uint64``` [https://gitter.im/nim-lang/Nim?at=5ef800a1d65a3b0292b481c7]
02:30:18disruptekshashlick: well, it still builds the bot against v0.3.0, so that's one datapoint.
02:30:48shashlickdisruptek: conan has 0.28.3 and jbb has 0.28.5
02:31:21disrupteknot helpful, no.
02:31:32shashlickeventually when they create newer binaries, you can then statically link to libgit2 but until then, will have to manually build like today
02:31:41disruptekthat's fine.
02:31:51disruptekdoes this solve the libssh2 problem for windows users?
02:32:31shashlickit does - the jbb version has libssh2 also pulled in
02:32:37disruptekawesome.
02:32:56shashlickanother thing, the libdir feature will now copy .so files over to the outdir
02:32:58disruptekthat's a really good improvement.
02:33:16shashlickconan also builds static binaries that include all deps
02:33:31shashlickbut on windows, they compile with VC++ so generate .lib files which don't work with mingw
02:33:35disruptekso the so problem is solved?
02:35:13disruptekbut not on windows?
02:35:33disruptekor, you mean only with jbb and not with conan (yet).
02:35:51FromDiscord<Elegant Beef> Well leorize gary and i are working on this together, so how the hell does one use nimsuggest properly, cause i'd have assumed you just pass it the file:line:col and it'd give the sensible suggestions
02:36:22leorizethat's kinda how it works for real lol
02:36:43FromDiscord<Elegant Beef> II tried with `let a:boo` and i more than just a few suggestions
02:36:47leorizeso do you want to use the epc interface or the normal interface?
02:36:48FromDiscord<Elegant Beef> i get more*
02:37:22leorizeit will spam suggestions at you
02:37:26FromDiscord<Elegant Beef> I mean it's for vscode, so which is better?
02:37:43leorizeidk, I've only used the normal interface
02:37:54leorizedownsides: need nim >= 1.0.0
02:37:55FromDiscord<Elegant Beef> even if you do `nimsuggest` then `sug ./fileName.nim:line:col`
02:38:02FromDiscord<Elegant Beef> Well that's not an issue imo
02:38:18leorizemake sure your line and col are correctly indexed :P
02:38:42leorizeone of them use 1-index
02:38:46leorizedon't remember which
02:39:04FromDiscord<Elegant Beef> i get suggestions but they're nonsensible
02:39:29leorizeyou'd have to do some regex filtering to get just the name out
02:39:39FromDiscord<Elegant Beef> well i mean there is many of them
02:39:56FromDiscord<Elegant Beef> for `let a:boo` i imagine there shouldnt be many suggestions, no?
02:40:22leorizeI only got one
02:40:32shashlick@disruptek: its not solved for you since neither of these places have a 1.x binary yet but when they do, we will get it all for free
02:41:03leorize@Beef yea you messed up the indexing
02:41:07*muffindrake quit (Ping timeout: 272 seconds)
02:41:13leorizecolumn indexing is 1-based
02:41:23FromDiscord<Elegant Beef> i just tried with x -1 and y -1
02:41:43FromDiscord<Elegant Beef> ok
02:41:46FromDiscord<Elegant Beef> weird im just dumb
02:41:54FromDiscord<Elegant Beef> I did try it but guess didnt save the file
02:42:03leorizelol
02:42:19leorizewell how are you finding the project file?
02:42:33FromDiscord<Elegant Beef> Currently im just trying to understand how to use nimsuggest so im manually finding it
02:42:39FromDiscord<Elegant Beef> Im doing this all in CLI atm
02:42:43FromDiscord<Elegant Beef> not actually writing anything yet
02:42:48leorizesure
02:42:54*muffindrake joined #nim
02:43:24leorizeso for nim >= 1.2.0, I wrote an algo that should select the correct file 98% of the time
02:43:31leorizebut before that the algo is not there
02:43:52leorizeto use it either just point nimsuggest to a project folder (or workspace in vscode lingo)
02:44:06leorizeor pass a file with the `--find` flag to nimsuggest
02:44:23leorizeideally you won't have to do all this...
02:44:39leorizebut until nimlsp make it to the main tree this is what you'll have to live with
02:48:08FromGitter<raydf> @genotrance it looks like the output of nimterop for the duktape.h doesn't output a function: ⏎ ⏎ ```duk_create_heap_default()``` ⏎ ⏎ Any ideas why that could happen? [https://gitter.im/nim-lang/Nim?at=5ef804e8d65a3b0292b48a4f]
02:49:36FromGitter<genotrance> @raydf - that is actually a #define shortcut which nimterop doesn't yet support
02:49:51FromGitter<genotrance> need to add support to generate a template that does the same thing in Nim
02:51:52FromGitter<raydf> yeah, np. thx for the response.
03:02:55*krux02_ quit (Remote host closed the connection)
03:16:21*livcd quit (Ping timeout: 265 seconds)
04:00:30*pbb quit (Read error: Connection reset by peer)
04:01:43*pbb joined #nim
04:06:02*supakeen quit (Quit: WeeChat 2.8)
04:06:41*supakeen joined #nim
04:19:54*aeverr quit (Ping timeout: 240 seconds)
04:20:15*aeverr joined #nim
04:25:00*aeverr quit (Ping timeout: 256 seconds)
04:26:05*aeverr joined #nim
04:42:53*waleee-cl quit (Quit: Connection closed for inactivity)
04:45:49rayman22201what's up @shashlick and @disruptek. nice to see you guys still around o/
04:50:55shashlickYep no escape
04:51:19leorizelong time no see rayman22201
04:51:54rayman22201feels nice to be missed lol
04:53:45*Romanson joined #nim
04:55:13shashlickWe need an async expert, good timing
04:55:48rayman22201lol. I keep getting drawn back in!
04:55:56rayman22201asynchronously :-P
04:56:13leorizeyou're the async god rn :P
04:56:59rayman22201umm.... that's a scary thought
04:57:06FromDiscord<Technisha Circuit> Hey guys, @Synth needs help with his chat program :p
04:59:16FromDiscord<Synth> Uhh. I'm okay...
04:59:22FromDiscord<Technisha Circuit> Synth.
04:59:24shashlickWondering what to work on next, need a break from nimterop
05:00:00FromDiscord<Technisha Circuit> Synth, like dude, if you need help ask man (not joking rn btw)
05:00:09rayman22201you have been very busy with nimterop it seems!
05:00:23rayman22201yes, please ask questions! we don't bite!
05:00:49*audiophile quit (Ping timeout: 264 seconds)
05:00:59FromDiscord<Technisha Circuit> ^^^
05:01:12leorizeshashlick: you can help me figure out why some nightlies fail :P
05:02:28rayman22201ughhh, my new async pr fails on mac... I have to go steal my wife's mac now lol
05:03:14leorizesometimes having a mac is a perk I guess :P
05:09:45shashlickWhat's failing
05:09:56shashlickI'm zero on azure pipelines
05:10:31shashlickQuite bored to learn honestly
05:13:18rayman22201I'm not much better. I just click on things and hope for the best
05:22:01leorizeshashlick: I mean the test failures
05:26:50*marnix joined #nim
05:31:02*Senny quit (Ping timeout: 260 seconds)
05:45:38shashlickOk nightest ya - need to fix those and add important packages testing as well
05:53:31*sagax quit (Ping timeout: 246 seconds)
05:58:02*marnix quit (Ping timeout: 258 seconds)
06:14:17*lbart joined #nim
06:30:32*marnix joined #nim
06:37:32*waleee-cl joined #nim
06:38:18*rockcavera quit (Remote host closed the connection)
06:51:10*pietroppeter joined #nim
07:06:20*dmi0 quit (Remote host closed the connection)
07:06:47*dmi0 joined #nim
07:08:04FromDiscord<Technisha Circuit> !repo ws
07:08:06disbothttps://github.com/treeform/ws -- 9ws: 11Simple WebSocket library for nim. 15 82⭐ 9🍴 7& 5 more...
07:08:22FromDiscord<Technisha Circuit> How do i use that package to connect to a websocket server? :P
07:10:39FromDiscord<Technisha Circuit> Figured it out
07:14:15FromDiscord<Elegant Beef> Sometimes i wonder if peeople read the readme
07:14:20FromDiscord<Technisha Circuit> How would i make a global variable
07:14:30FromDiscord<Technisha Circuit> ~~I just did, that's how i figured it out~~
07:14:53FromDiscord<Elegant Beef> Make a file and put the values you want to be global in there is what i do
07:15:11*sagax joined #nim
07:15:23FromDiscord<Technisha Circuit> It's was defined in an asynchronous function :P
07:15:40FromDiscord<Technisha Circuit> So i need to make everywhere able to access it now
07:42:53*Vladar joined #nim
07:50:34*dddddd quit (Ping timeout: 260 seconds)
08:22:23*solitudesf joined #nim
08:24:10*fredrikhr joined #nim
08:33:28*ofelas joined #nim
09:00:57*pietroppeter quit (Quit: Connection closed for inactivity)
09:02:53*waleee-cl quit (Quit: Connection closed for inactivity)
09:03:49*nikita` joined #nim
09:04:27*drewr quit (Ping timeout: 260 seconds)
09:05:58*drewr joined #nim
09:06:25*oddp joined #nim
09:25:55*marnix quit (Ping timeout: 260 seconds)
10:01:57*Vladar quit (Remote host closed the connection)
10:10:35FromDiscord<ο½Œο½‰ο½Œο½ο½ˆ β–Έ πŸŽ€> sent a code paste, see https://play.nim-lang.org/#ix=2qp4
10:10:37FromDiscord<ο½Œο½‰ο½Œο½ο½ˆ β–Έ πŸŽ€> :ASthink:
10:11:20FromDiscord<lqdev> you can strop the identifier using \`\`
10:11:24FromDiscord<lqdev> eg. \`type\`
10:12:53FromDiscord<ο½Œο½‰ο½Œο½ο½ˆ β–Έ πŸŽ€> nice, thanks
10:40:35*fredrikhr quit (Read error: Connection reset by peer)
10:40:59*fredrikhr joined #nim
10:53:08*haxscramper joined #nim
10:56:49*kenran joined #nim
10:57:30*Senny joined #nim
10:57:49*clemens3 joined #nim
10:59:35*fredrikhr quit (Read error: Connection reset by peer)
11:00:04*fredrikhr joined #nim
11:08:47*vikfret joined #nim
11:11:12*lritter joined #nim
11:15:18*tane joined #nim
11:23:53*lritter quit (Quit: Leaving)
11:24:14*lritter joined #nim
11:25:17*kenran quit (Quit: leaving)
11:27:27federico3shashlick: libhandy
11:29:30*Vladar joined #nim
11:35:28ZevvWhat is the state of Atomics - is that stable and working?
11:37:04FromDiscord<Clyybber> @mratsim uses them afaik
11:37:21Zevvoh, then it's probably fine :)
11:37:26FromDiscord<Clyybber> so yeah they should be stable and working, though afair there is an issue with CPP
11:43:51*fredrikhr quit (Ping timeout: 265 seconds)
11:58:04shashlick@federico3 why not try nimterop
11:58:29federico3among other things it fails to install
11:59:40*Romanson quit (Quit: Connection closed for inactivity)
12:00:37shashlickWhat os Nim version
12:00:47shashlickAnd what's the error
12:02:06*Tongir quit (Ping timeout: 260 seconds)
12:02:12federico3Error: cannot open file: compiler/ast with 1.2.2
12:03:04federico3even if I re-run it after "nimble install compiler"
12:06:01*supakeen quit (Quit: WeeChat 2.8)
12:06:29shashlickNimterop uses $nim which should point to the compiler directory within the nim installation
12:06:39*supakeen joined #nim
12:06:43shashlickLooks like that doesn't exist
12:11:36shashlickUsing the compiler nimble package has the issue that the nim binary and stdlib might not be compatible with the package - e.g. Compiler loading a library that isn't in 1.2.2 yet
12:11:40*ehmry quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:12:27shashlickBut that's cause the new compiler has those files in the stdlib so it bootstraps fine in normal circumstances
12:16:47*ehmry joined #nim
12:18:45*krux02 joined #nim
12:26:50*marnix joined #nim
12:41:02*crem quit (Ping timeout: 260 seconds)
12:42:14*NimBot joined #nim
12:47:43*dddddd joined #nim
12:51:06*arecaceae quit (Remote host closed the connection)
12:51:51*arecaceae joined #nim
13:09:16*mklooste joined #nim
13:10:38*nsf joined #nim
13:12:00*marnix quit (Ping timeout: 256 seconds)
13:13:35*crem joined #nim
13:19:50FromDiscord<Shucks> Whats the correct way of getting the result from flowvars once they're ready? https://play.nim-lang.org/#ix=2qpz
13:28:26*mklooste1 joined #nim
13:28:56FromDiscord<Shucks> Well casting it into byteaddress again works
13:30:40FromDiscord<Rika> @Shucks https://nim-lang.org/docs/threadpool.html#FlowVar ?
13:31:14*mklooste quit (Ping timeout: 260 seconds)
13:39:38krux02Can somebody refresh my memories on how to make a module known to the nim compiler but without touching nimble at all?
13:40:11FromDiscord<Rika> smth to do with setting a nimblepath i think
13:40:19krux02well, no nimble
13:40:34krux02but maybe it is a misnomer in the compiler
13:40:38FromDiscord<Rika> setting nimble path w/ nim compiler?
13:40:45FromDiscord<Rika> its prolly a misnomer
13:41:01FromDiscord<Rika> dunno
13:41:01krux02prolly? you mean probably
13:41:08krux02well, let me try
13:41:21FromDiscord<Rika> https://www.urbandictionary.com/define.php?term=Prolly πŸ˜›
13:41:47krux02ok
13:41:59krux02I did not know that word.
13:42:20krux02probably is also hard to pronounce
13:42:33krux02but in German it isn't better either.
13:42:37krux02wahrscheinlich
13:42:42FromDiscord<Rika> ah ah
13:43:03FromDiscord<Rika> i think --path:() will work, says here https://nim-lang.org/docs/nimc.html
13:43:26krux02ok
13:44:14krux02and then --noNimblePath as well
13:44:18krux02could work I try it.
13:44:30krux02I really really want to get rid of nimble.
13:47:17krux02I think I will experiment with git submodules now instead of nimble.
13:47:33FromDiscord<Clyybber> git submodules are great
13:47:37FromDiscord<Clyybber> I use them too
13:47:46*mklooste1 quit (Ping timeout: 246 seconds)
13:47:54krux02thanks for the feedback.
13:49:30krux02Clyybber: how is the work on my old PR on `getCustomPragma` doing?
13:49:48krux02I remembor you wanted to take over. Did some minor changes.
13:51:47krux02@Clyybber: do I need to tag you with an @ so that you get notified on discord?
13:52:00FromDiscord<Rika> yes
13:52:00disruptek--path="/some/where"
13:52:36disruptekuse git submodules or nimph, which just verifies that you nimble-free setup makes sense.
13:52:38krux02and just that you know it, because you are on discord name completion on your name doesn't work here on IRC and your name is horrible to type
13:53:10krux02yea, nimph might be good. But I don't feel like experimenting right now.
13:53:20krux02git submodule are something that I know work.
13:53:51disrupteknimph just validates that your setup works and it will touch it up to fix minor shit if you ask it to.
13:53:52krux02I just don't like that with submodules a simple git clone doesn't do it anymore you have to explicitly clone the submodules.
13:54:11disrupteki mean, it's one extra git command. not a big deal.
13:54:29*marnix joined #nim
13:54:41krux02yea true,
13:55:01FromDiscord<Rika> just alias git clone to git clone --recurse-submodules
13:55:21krux02but I used to work in an environment where it problems occured constantly and the problem was 80% of the times, forgot the recursive update.
13:55:28krux02submodules out of date.
13:55:32krux02that is really annoying.
13:55:41disrupteksounds like a case for automation.
13:55:42krux02that is why it refused to go there for so long.
13:55:51krux02not really.
13:56:04krux02for me it is just a git usability issue that I don't have control over.
13:56:23krux02I think a git clone/pull should at least warn that submodules could be updated
13:59:50disrupteki'm not sure why you stubbornly refuse to fix the problem either in your shell or a proper program, but i do understand why it's frustrating.
14:00:21disruptek~gitnim
14:00:22disbotgitnim: 11https://gitnim.com/ -- choosenim for choosey nimions -- disruptek
14:00:24FromDiscord<Rika> because shouldnt the git team be the ones fixing it?
14:00:33disruptek~news
14:00:34disbotnews: 11the #nim-news channel has a Nim news feed of updates to pull requests, issues, and packages. The bot also broadcasts ix.io -> playground URLs here automatically. -- disruptek
14:00:38disruptek!repo nimph
14:00:39disbothttps://github.com/disruptek/nimph -- 9nimph: 11Nim package hierarchy manager from the future 🧚 15 67⭐ 5🍴 7& 1 more...
14:06:42*pietroppeter joined #nim
14:07:13disruptekleorize: what is this new `build` subdirectory for?
14:09:54FromDiscord<Clyybber> krux02 Yeah
14:21:12krux02disruptek, fixing it in MY shell doesn't solve the problem in thea team for others.
14:21:31disruptekman, if there was only a way to share software between multiple users.
14:21:34FromDiscord<Shucks> > @Shucks https://nim-lang.org/docs/threadpool.html#FlowVar ?↡@Rika yea saw it. There's just no documentation how you could get the variable. Guess its ment to be casted back
14:21:39disruptekdude, we should invent it.
14:21:49disruptekwe can call it `teh interweb`!
14:21:54krux02and getting a group of people to use a new tool to fix a minor annoyance also isn't practical.
14:22:15disruptekneither is complaining about it.
14:22:21FromDiscord<Rika> @Shucks https://nim-lang.org/docs/threadpool.html#%5E%2CFlowVar%5Bref.T%5D ????
14:22:32FromDiscord<Rika> kinda confused
14:22:56FromDiscord<Shucks> That blocks. Look at my code. Im spawning and wan't to get the variables once theyre ready
14:23:11FromDiscord<Shucks> (edit) 'wan't' => 'want'
14:23:37FromDiscord<Rika> it wont block if its ready
14:23:42FromDiscord<Rika> which you check already
14:24:11krux02disruptek, well complaining about the problem creates awareness of the problem. And then it might get fixed eventually. And yes it can be fixed. And as I said, I see this problem a usability problem of git and there it should be fixed. And when enough people are aware of the problem and report it as a problem to git, then it can be fixed properly.
14:24:13FromDiscord<Shucks> oh!
14:24:44disruptekdid you report it to git or are you hoping that one of us will do that?
14:24:48krux02anyway, not really that important right now.
14:25:14krux02disruptek, it is already reported.
14:25:19krux02people know about this problem.
14:25:31disruptekare there many git developers here?
14:26:03disrupteki think it's silly to wait around for other people to fix my problems with their software.
14:26:13disrupteki offer nimble and choosenim as proof.
14:26:50disruptekthe problems are well known, there are many developers here, its has been reported, the problem should be fixed upstream, yet it remains unfixed.
14:26:59disruptekthis is why i went ahead and wrote a shell script to replace choosenim.
14:27:19disruptekand i distribute it on what i call, `teh interweb` so that others may use it, trivial though it may be.
14:27:25disruptekand thus, the problem ceases to be.
14:28:28krux02I think we agree somewhat and somewhat not. But I don't really want to discuss it, so I am sorry that I brought this topic up to a discussion.
14:28:57disrupteki'm right there with you, buddy. πŸ‘
14:28:58FromDiscord<impbox> is there a nice way to read and write binary data on JS backend? normally i'd use StringStream but it seems to be unavailable on JS
14:29:41FromDiscord<impbox> i'm trying to encode my nim object for transport over the network and back again
14:29:44krux02why do so many people abuse string for binary?
14:29:51FromDiscord<Yardanico> It's available on devel @impbox
14:29:53FromDiscord<impbox> abuse?
14:30:00FromDiscord<Yardanico> streams was fixed for JS
14:30:02krux02yea string is for text.
14:30:03FromDiscord<impbox> string is the recommened type for binary data
14:30:09FromDiscord<impbox> is it not?
14:30:21disruptekin my case, i haven't found that it matters.
14:30:24krux02can be abused for binary as well, but then it is an invalid/ill formed string.
14:30:27FromDiscord<lqdev> use `seq[uint8]`
14:30:34FromDiscord<Yardanico> "JavaScript and NimScript standard library changes:Β streams.StringStreamΒ is now supported in JavaScript, with the limitation that any bufferΒ pointers used must be castable toΒ ptr string, any incompatible pointer type will not work. TheΒ lexbaseΒ andΒ streamsΒ modules used to fail to compile on NimScript due to a bug, but this has been fixed."
14:30:37FromDiscord<lqdev> you can get overflow errors if you use strings for binary
14:31:04disruptekit's convenient because there is a lot of support for strings in the standard library.
14:31:52krux02disruptek, that basically means that it is inconvenient to do the non abusive way.
14:32:00FromDiscord<impbox> @Yardanico where are you quoting from?
14:32:02disruptekexactly.
14:32:04krux02And that right there is a language design problem.
14:32:05FromDiscord<Yardanico> changelog
14:32:14disruptekno, it's a library problem.
14:32:23krux02library design prbolem
14:32:26FromDiscord<Yardanico> https://github.com/nim-lang/Nim/blob/devel/changelog.md
14:32:30disruptekyes.
14:32:31FromDiscord<impbox> @Yardanico thanks
14:33:15krux02but also language design when on the javascript backend you get forced to use string for technical reasons.
14:33:37disruptekif you're on discord, i cannot see you, sorry.
14:33:38krux02I think seq[uint8] might have a lot of overhead because uint8 doesn't really exist on javascript.
14:34:24krux02sorry again, also not really here to talk about Nim problems.
14:34:38disrupteksolutions!
14:34:48krux02yea
14:34:52disruptekwhat have you brought us?
14:35:04krux02not providing solutions for Nim anymore.
14:37:27*waleee-cl joined #nim
14:40:09disruptekit's weird that we don't have better `window` emojis.
14:40:23Zevvor cutlery
14:40:34disruptekeh.. πŸ”±
14:40:48disrupteki'm okay with trident.
14:42:19krux02what do you mean with window emoji?
14:42:24disrupteki would like the following emojis: tree, array, hash, size, parent, child, address ... others?
14:42:47krux02Window like in Windows 95, or Window like in, next to the door to look outside?
14:42:59disruptekwhy should i say with "window" what i can say with "πŸ—”"?
14:43:10krux02well, for me those are not emojis, as they don't represent emotions.
14:43:20disrupteki use 🧡 for "thread".
14:43:26krux02but in the more general term of pictorgrams or symbols, yes.
14:43:51krux02maybe you need to explore the deep layers of UTF more and find matiching symbols.
14:44:00krux02There is more than just emoji that you can use for those things.
14:44:01disrupteki use 🏁 for race.
14:44:10krux02for has there is #
14:44:10disruptek🎽 for run.
14:44:16krux02for tree there is an emoji
14:44:29krux02for address could be complicated.
14:44:44FromDiscord<Rika> πŸ‘— a dress
14:44:50krux02I think the road you have to take to get proper unicode support for what you want is the following:
14:44:52FromDiscord<Rika> Sorry. That was a horrible joke
14:45:02disrupteki want something that is more literal for tree; i'm not sure it translates well.
14:45:10krux02Introduce the symbols you want to use in a scientific paper.
14:45:22disruptekno, it's easier to get stuff into unicode than you think.
14:45:30disruptekor, maybe harder. i dunno what you think.
14:45:35krux02Make that scientific patper super popular so that many people adopt this notation.
14:45:41disruptekthere's a good story about the introduction of ⏻
14:45:52krux02then when many people use that notation, suggest it to unicode.
14:45:59krux02They will make it official.
14:46:03disrupteki wanna say it was one or two guys that got it done. they documented the process.
14:46:14krux02Then you need to contact your favorite font maker to get support for these symbols.
14:46:34krux02Then you can use them and hope that the people on the other side of the chat have support for the symbols.
14:46:41krux02or just type the words.
14:46:56disrupteki mean, i think you're wrong.
14:47:06krux02⏻ is not a character that I can see
14:47:10disruptekbut my source is the aforementioned article.
14:47:15krux02it is just a square for me
14:47:44disrupteki'm sorry; it's a "power" symbol, as you might find near an "on/off" hardware switch.
14:48:22FromDiscord<Yardanico> @krux02 neither do I on latest stable Android
14:48:30FromDiscord<Yardanico> It's U+23FB
14:48:30disruptekmost of a circle, with a ray stretching from the center through the gap.
14:48:42krux02ok I know that one.
14:49:00krux02but that symbol is for on/off because the symbol is a combination of a 0 and a 1
14:49:07krux02to toggle between them.
14:49:22krux02if people use it for just on or just off it is technically incorrect.
14:49:26krux02but it happens
14:49:30disruptekyes, but i didn't find that to be an easier way of understanding what it looks like.
14:49:40disruptekit's for "power".
14:50:01*azed joined #nim
14:50:03disruptekthere is also ⏽ (power on) and ⏼ (power on/off)
14:50:13disruptek⏾ power sleep
14:50:25krux02There are many more symbols that I know from various devices such as printers and microwaves.
14:50:44krux02I can't see any of that.
14:51:21disruptekit's not important; i think these are fairly recent introductions.
14:51:30krux02ok
14:53:10disruptekrika, move to irc, please.
14:54:38disruptekirc is for high signal, low noise.
14:55:24*disruptek furiously scrubs talk of unicode from the logs.
14:57:48Zevvhttp://zevv.nl/div/unicode.png
14:57:54Zevvso happy to live in the 90's
14:58:31FromDiscord<lqdev> zevv is a dark web hacker confirmed
14:58:42leorize[m]disruptek: what build folder?
14:59:01*nekits0 quit (Quit: The Lounge - https://thelounge.chat)
14:59:11disruptek⚽⚾
14:59:37disruptekleorize[m]: there's a "new-to-me" build subdir in your nightlies.
14:59:46disruptekholds a shared-link binary.
14:59:49disruptek100k
15:00:09disrupteki omitted it from gitnim, but what is it?
15:00:14leorize[m]that's weird, there shouldn't be any
15:00:35disruptekokay, it's whatever.
15:00:41leorize[m]which nightlies is that?
15:00:55disruptektoday, the 28th.
15:01:14disrupteki try to update gitnim daily.
15:03:17leorize[m]do you know the exact archive? just did a quick glance and I couldn't find it
15:03:31*haxscramper quit (Remote host closed the connection)
15:04:28disruptekhttps://github.com/alaviss/nightlies/releases -- the linux_x64 build.
15:05:05disruptekor do you mean which branch?
15:05:17leorize[m]yea
15:05:20disrupteki think it was devel but the only alternative is 1.2.
15:06:13disruptekthe filename was build/D20190111T024543
15:06:58disruptekyeah, it was 1.3.5
15:07:38leorize[m]ok... I couldn't find it
15:08:02leorize[m]are you sure that's not a nimterop artifact?
15:08:20disruptekassume nothing.
15:09:06leorize[m]whatever it is it's not in the archives that's generated
15:09:07disruptekit's not in the tarball, so i guess it was something from my end.
15:09:27disruptekweird, i have no idea what it is.
15:12:23disruptekit's a nim program, build with libc 2.2.5.
15:19:11disruptekman this is creepy.
15:19:23*opal quit (Ping timeout: 240 seconds)
15:22:35solitudesf> he knows, activate the backdoor
15:23:41disrupteki think it might be something from shashlick, but more specifically, i think it might be `koch tests` output.
15:23:55*opal joined #nim
15:26:14nikita`hi, what's the nim way to express this python (already adjusted to Nim a bit) expression: if link[0:3] == "ftp" or link[0:4] == "http" and link not in visited_urls and link not in discovered_urls and link not in frontier:
15:26:43nikita`nim stops at 'not'
15:26:52Yardaniconikita`: "not in" => "notin"
15:26:57disruptektry `notin`
15:27:01nikita`thanks
15:27:10Yardanicoalso slices are link[0 .. 3]
15:27:15Yardanicolink[0 .. 4]
15:27:15disruptektwice πŸ˜‰
15:27:20nikita`i probably will also hjabve to adjust the rest
15:27:46Yardanicobtw you can use https://nim-lang.org/docs/uri.html to parse the scheme
15:27:57disruptekyeah, my mystery files are koch test artifacts.
15:27:58Yardanico(to get http/ftp :P) but might be an overkill
15:28:01*bab left #nim (#nim)
15:28:41nikita`it's a basic crawler i once had to write and I'm now converting it to write more nim
15:28:43*opal quit (Ping timeout: 240 seconds)
15:28:54Yardaniconice
15:29:28*azed quit (Quit: WeeChat 2.8)
15:29:29nikita`i've seen the uri module before, thanks
15:31:27disruptekthe syntax is described here:
15:31:29disruptek~manual
15:31:30disbotmanual: 11the Nim Manual is https://nim-lang.org/docs/manual.html -- disruptek
15:31:57*opal joined #nim
15:34:27shashlick@disruptek @leorize https://github.com/nim-lang/Nim/pull/10274/files
15:34:28disbotβž₯ fix #10273 execShellCmd now returns nonzero when child killed with signal + other fixes
15:35:28disrupteki get it now.
15:36:02disruptekgitnim doesn't ignore build, but it should. also, other crap generated in testament should be relocated to build.
15:39:28disruptekthis is already implemented and released in gitnim, for all nim versions.
15:39:44disruptekless than five minutes of work.
15:41:10*liblq-dev joined #nim
15:42:15FromDiscord<lqdev> Araq: would something like `macros.check` or `macros.semcheck` be possible to implement? it would save a lot of headaches with macro "chain reactions" (producing macro calls from macro calls to evaluate something during semcheck)
15:43:02leorize`getAst`?
15:43:33FromDiscord<lqdev> that's not it
15:43:50FromDiscord<lqdev> because `getAst` takes your input literally
15:43:51Yardanico`compiles` ?
15:43:54nikita`Yardanico: i mean uri makes it easier, not overkill. it's also weird to do this on top of code I wrote as a quick prototype 2 years ago which looks functional but far from what I know today :D
15:44:01FromDiscord<lqdev> as in, you can't pass in a macro param to it
15:44:08FromDiscord<lqdev> because it won't get expanded
15:47:31FromDiscord<Shucks> Could that run into memory issues? Im calling that in a loop which shorty builds up 500mb of memory and runs into 'out of memory' https://play.nim-lang.org/#ix=2qq3
15:49:05*liblq-dev quit (Quit: WeeChat 2.8)
16:00:37Yardanicosoo uhh
16:00:41YardanicoI'm fixing some typos in nim docs
16:00:55Yardanicoand stumbled upon " the reloaded refinitions will affect only newly created instances" in https://nim-lang.org/docs/hcr.html
16:01:00Yardanicoin "Native code targets"
16:01:09Yardanicoshould it be "redefinitions" or "definitions"? :P
16:01:32Yardanicoor is that just programmer's slang?
16:01:51Yardanicoah, by the context seems like "definitions"
16:01:53FromDiscord<Clyybber> eh, I think thats a typo :D
16:02:02FromDiscord<Clyybber> so it should be "reloaded definitions" yeah
16:03:45krux02is there a way to see global options in nim files?
16:03:46FromDiscord<Clyybber> fixed
16:04:03FromDiscord<Clyybber> krux02: You mean in nims files?
16:04:03Yardanico@Clyybber I'm making a PR with typo fixes myself later :)
16:04:06Yardanicofound a good vscode plugin
16:04:10Yardanicogoing through the doc files rn
16:04:11krux02I want to know from source if the project is compiled with --noNimblePath
16:04:11FromDiscord<Clyybber> oh, well too late :p
16:04:27FromDiscord<Clyybber> @Yardanico But if you find other typos go ahead
16:04:28FromDiscord<Clyybber> :D
16:04:47FromDiscord<Clyybber> krux02 Ugh, hopefully not to lock out nimble users eh?
16:04:53krux02no
16:04:56FromDiscord<Clyybber> krux02 But yeah, there is a way one minute
16:04:59Yardanicotraversation -> traversal ?
16:05:06krux02to provide an alternative when nimble is explicitly disabled
16:06:17FromDiscord<Clyybber> krux02 https://nim-lang.github.io/Nim/compilesettings
16:06:47FromDiscord<Clyybber> @Yardanico Yeah, traversal or traversion are better
16:06:51Yardanicookay
16:07:16FromDiscord<Clyybber> traversal is probably better than traversion, but I'm not a native speaker so /shrug
16:07:49YardanicoWell, I'll make a PR but I try to make different commits to split all changes in chunks
16:07:52Yardanicomaybe easier to review, idk
16:07:53krux02clyybber: cannot open file compilesettings
16:08:52Yardanicoalso I like how openArray is the "idiomatic" way of using openArray
16:08:58Yardanicobut manual refers to it as "openarray" :P
16:09:13FromDiscord<Clyybber> krux02: Maybe you need std/compilesettings
16:09:15FromDiscord<Vindaar> I'm pretty sure "traversation" isn't a word
16:09:20Yardanicoyeah I know
16:09:27Yardanicobut we don't have a lot of native english speakers
16:09:38FromDiscord<Vindaar> true
16:09:42YardanicoI'm just going through the doc files with the vscode spell checker extension and fixing stuff
16:09:43*FromDiscord quit (Remote host closed the connection)
16:09:50*marnix quit (Ping timeout: 258 seconds)
16:09:52*FromDiscord joined #nim
16:10:00YardanicoI'm just going through the doc files with the vscode spell checker extension and fixing stuff
16:15:58krux02Clyybber: yes that works, thank you
16:16:02FromDiscord<Clyybber> np
16:16:13*pbb quit (Ping timeout: 272 seconds)
16:16:27krux02Vindaar: can't you just make traversation a word by using it?
16:16:44krux02is there a native speaker around here?
16:16:57Yardanicodisruptek is
16:17:15krux02disruptek, are you around?
16:17:16Yardanico@Clyybber is https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-align-pragma here a typo?
16:17:20Yardanico" Valid non-zero alignments that are weaker than nother align pragmas on the same declaration are ignored. "
16:17:21Yardaniconother
16:17:36FromDiscord<Clyybber> yep
16:17:54Zevvand you need a native speaker for that :)
16:18:16krux02Yardanico, I implemented the alignment pragma and I do a lot of typos in text. So it was probably me.
16:18:23Yardanicoit's okay
16:18:29Yardanicomost of us aren't native english speakers
16:18:36FromDiscord<Vindaar> @krux02 aehm, yeah you can. but then you'll be looked at weird for the first years using it by everyone else. and chances are you will be forever, because people won't pick it up πŸ˜›
16:18:42YardanicoI just decided to do some of this dirty typo fixing work :P
16:18:59FromDiscord<Clyybber> its not much but its honest work
16:19:00FromDiscord<Clyybber> :p
16:19:04Yardanicoexactly :D
16:19:09krux02that is not the point. I know that it is wrong. I just do it incorrectly and don't see it anymore.
16:19:44krux02I think traversal is the correct word isn't it?
16:19:48Yardanicoyeah
16:19:54Yardanicoi think so too
16:19:58krux02sometimes there isn't a word, then you have to make one up.
16:20:10krux02or use a word from another language.
16:20:37krux02I recontly learned that there is an English word where no precise German translation exists.
16:21:07krux02Anxiety
16:21:14krux02doesn't exist as a German word.
16:21:47krux02I think I have to introduce this word into German.
16:21:54FromDiscord<Clyybber> Angst?
16:22:00krux02not really.
16:22:08krux02Angst is Fear.
16:22:21FromDiscord<Vindaar> I think this is just a natural case of words never mapping *exactly* from one language to another
16:22:27FromDiscord<Clyybber> well, Anxiety is somewhere between fear and worry I think
16:23:00FromDiscord<Clyybber> and stress
16:23:25*pbb joined #nim
16:23:58krux02It just doesn't map well to German.
16:24:59*mklooste1 joined #nim
16:26:26*bung quit (Ping timeout: 256 seconds)
16:27:49*dmi0 quit (Remote host closed the connection)
16:28:17*dmi0 joined #nim
16:29:06*bung joined #nim
16:30:02Yardanicofsck
16:30:11YardanicoI based my branch on 4raq's scoped mm branch :P
16:33:36*bung quit (Ping timeout: 258 seconds)
16:34:38FromDiscord<Clyybber> lol
16:34:46Yardanicotime to have fun with git
16:36:26krux02is there a way to get the absulute file path of a module?
16:36:37Yardanicoof a current module?
16:36:45krux02I need it for compilation
16:36:56Yardanicohttps://nim-lang.org/docs/system.html#currentSourcePath.t
16:39:14krux02Yardanico, an easy way to strip off the file part and get the directory?
16:39:30Yardanicothe docs say it in there directly :P
16:39:31Yardanico"To get the directory containing the current source, use it with os.parentDir() as currentSourcePath.parentDir()."
16:39:57Yardanicobut as it's a template itself, be careful when using it in templates
16:40:40krux02ok
16:40:42krux02thanks
16:41:27krux02it works
16:43:41Yardanico@clyybber https://github.com/nim-lang/Nim/pull/14843
16:43:42disbotβž₯ Fix some typos
16:43:52Yardanicodo we need backport or not? :P
16:44:11*mklooste1 quit (Ping timeout: 246 seconds)
16:45:32*pietroppeter quit (Quit: Connection closed for inactivity)
16:47:27*Senny quit (Ping timeout: 240 seconds)
16:48:55Yardanicobtw, is "backport" just a tag for Miran to cherry-pick the PR/commits to older nim versions?
16:53:32disruptektraversal is a word, sure.
16:53:44Yardanicodisruptek: we meant "traversation" :P
16:53:50Yardanicothat was the word I changed to traversal
16:54:40*vicfred quit (Ping timeout: 246 seconds)
16:54:47*mklooste1 joined #nim
17:03:52*bung joined #nim
17:04:59*chemist69 quit (Remote host closed the connection)
17:05:16*mklooste1 quit (Ping timeout: 265 seconds)
17:05:24*chemist69 joined #nim
17:07:40*dddddd_ joined #nim
17:08:23*bung quit (Ping timeout: 260 seconds)
17:08:43*ahmed____ joined #nim
17:10:00*ahmed____ quit (Client Quit)
17:10:19*dddddd__ joined #nim
17:10:25*dddddd quit (Ping timeout: 264 seconds)
17:10:45*rockcavera joined #nim
17:12:26FromDiscord<codic> someone asked me this: Can you make a pointer with no end point that starts at a specific memory address in Nim?
17:12:36Yardanicothat's how all pointers work lol
17:12:41Yardanicothey don't have "an end point"
17:12:44YardanicoI mean unmanaged pointers
17:12:57Yardanicojust allocate a raw pointer and you're done
17:13:09FromDiscord<Rika> see: modern string handlers in C
17:13:15FromDiscord<Rika> takes a char ptr and a length
17:13:22*dddddd_ quit (Ping timeout: 260 seconds)
17:18:06*dddddd__ is now known as dddddd
17:25:04FromDiscord<Vindaar> ah, heck. the ginger PR I merged earlier had a fun side effect again. will fix that (and thus nim CI) later today
17:27:14FromDiscord<dom96> Bah, my last few weeks have been so busy. How's everyone doing? πŸ™‚
17:28:32*ForumUpdaterBot joined #nim
17:28:34Yardanicofixing forum eventer again :P
17:28:39ForumUpdaterBotNew post by Doongjohn in LSP client for VSCode: I think it is a kinda new thing (project is 2 years old?) I've come across ... (https://forum.nim-lang.org/t/6503#40155)
17:28:55Yardanicowait
17:28:58Yardanicoit shouldn't have posted here wtf
17:29:00*ForumUpdaterBot quit (Remote host closed the connection)
17:30:12*ForumUpdaterBot joined #nim
17:30:14Yardanicoah I mistaken the channels for posts with channels for all updates
17:38:56*ForumUpdaterBot quit (Remote host closed the connection)
17:39:03*ForumUpdaterBot joined #nim
17:41:08*dddddd_ joined #nim
17:43:51*dddddd quit (Ping timeout: 260 seconds)
17:44:32*vikfret quit (Quit: Leaving)
17:45:10*bung joined #nim
17:48:53*Trustable joined #nim
17:49:30*bung quit (Ping timeout: 258 seconds)
18:05:53*mklooste1 joined #nim
18:06:05FromDiscord<Varriount> @Zachary Carter What's your opinion of Godot?
18:06:11Yardaniconot good :P
18:06:21FromDiscord<Zachary Carter> I'm not a fan
18:06:22Yardanicohe talked about it in mumble
18:06:43FromDiscord<Zachary Carter> I think you should just use Unity and C#
18:07:13FromDiscord<Varriount> Even for something commercial?
18:07:40FromDiscord<Zachary Carter> I've changed frag to instead of being the low level implementation for an engine, to be a wrapper to an already existing C low level library that I can build an engine on top of
18:07:57FromDiscord<Zachary Carter> so soon I should start being able to create a game rather than writing all this plumbing code
18:08:05FromDiscord<Zachary Carter> Yeah - I'd use Unity for something commercial over GOdot
18:08:08FromDiscord<Zachary Carter> (edit) 'GOdot' => 'Godot'
18:08:27FromDiscord<Zachary Carter> If you're just doing 2d stuff - I think Godot is overkill
18:08:37FromDiscord<Yardanico> @Varriount btw, you might like <#706542664643772436> we have πŸ™‚
18:08:42FromDiscord<Zachary Carter> and Godot's 3d capabilities aren't where they need to be and performance isn't great either
18:08:53ldleworkWhen it comes to something commercial, Unity's ability to one-button compile to basically all devices is pretty nice.
18:09:17ldleworkGodot is moving at an incredible pace, so it's exciting, but I agree it is not a competitor yet.
18:09:23FromDiscord<Zachary Carter> Godot just has not great designs baked into it, like being object oriented instead of data oriented
18:09:40FromDiscord<Varriount> I've recently been using a piece of software called Dungeondraft (D&D map editor) and it uses Godot
18:09:56FromDiscord<Zachary Carter> I'm sure you could probably build the same thing with sdl2
18:10:03FromDiscord<Varriount> Mainly for light rendering, I think
18:10:18PrestigeI thought godot uses ECS not OOP
18:10:51FromDiscord<Zachary Carter> well you can certainly implement an object oriented ECS
18:10:57FromDiscord<Zachary Carter> I'm not sure why you'd want to - but you can
18:11:22FromDiscord<Zachary Carter> ECS and DoD are not the same thing
18:11:30FromDiscord<Zachary Carter> (edit) 'DoD' => 'DOD'
18:11:36FromDiscord<Clyybber> Yeah, what Godot does is a bit more like multiple inheritance
18:11:41FromDiscord<Zachary Carter> mmhmm
18:11:43PrestigeAre they not mutually exclusive?
18:11:52PrestigeTrue
18:11:53FromDiscord<Zachary Carter> they're not
18:12:48FromDiscord<Zachary Carter> you don't need an ECS to write data oriented code
18:14:57PrestigeI tried Godot for a bit but having to use a GUI trips me up
18:16:36FromDiscord<Zachary Carter> Unity is pretty nice, especially with the new experimental DOTS stuff
18:17:10*Senny joined #nim
18:17:43FromDiscord<Varriount> DOTS?
18:17:43FromDiscord<Zachary Carter> Prestige: https://github.com/dbartolini/data-oriented-design is a good resource
18:18:00FromDiscord<Zachary Carter> https://unity.com/dots
18:18:08FromDiscord<Varriount> I just wish I could use Nim with Unity
18:18:31FromDiscord<Zachary Carter> you can but it's probably more trouble than it's worth
18:18:49PrestigeThanks Zach that's awesome
18:19:37FromDiscord<Zachary Carter> Np!
18:20:26FromDiscord<Zachary Carter> Varriount: https://jacksondunstan.com/articles/3938
18:20:30FromDiscord<Varriount> @Zachary Carter Ever heard of Multimedia Fusion?
18:20:53FromDiscord<Zachary Carter> yeah - I think it used to be named clickteam fusion or something?
18:21:26FromDiscord<Zachary Carter> I think Haxe might be a better choice if you're going that route
18:21:33FromDiscord<Varriount> Yep. It's a 2d "content" (game) maker.
18:21:38FromDiscord<Zachary Carter> like haxe + https://heaps.io
18:22:06FromDiscord<Zachary Carter> https://armory3d.org also looks really interesting
18:23:16FromDiscord<lqdev> @Zachary Carter actually multimedia fusion is the old name, they renamed it to clickteam fusion later
18:23:20FromDiscord<Zachary Carter> ah
18:25:32FromDiscord<Clyybber> armory is cool, but using javascript is meh
18:26:06FromDiscord<mratsim> Mmmh, is there any way to prevent emitting NimFrame in debug mode?
18:26:42krux02I have to deal with an error `Error: identifier expected, but found 'mesh`gensym22135456'`
18:26:48FromDiscord<mratsim> I have exactly 0 register to spare and since I'm doing inline assembly spilling is a huge pain
18:26:52krux02The problem is, this is old code it used to work
18:27:20krux02`mesh` is in a template that expands into an identifier.
18:27:22FromDiscord<Clyybber> oh, looks like kha now has proper C/C++ support
18:27:43FromDiscord<Zachary Carter> so now you could use armory with Nim I guess?
18:27:45FromDiscord<Zachary Carter> that's pretty cool
18:27:53FromDiscord<mratsim> @krux02, I would start playing with either dirty or inject
18:28:01FromDiscord<Clyybber> @Zachary Carter yeah
18:28:58FromDiscord<Zachary Carter> apparently you can use Haxe with armory too
18:29:01FromDiscord<Zachary Carter> according to the tutorial anyway
18:29:03FromDiscord<Clyybber> @Zachary Carter Btw, the original blender game engine is updated too https://github.com/UPBGE/upbge
18:29:10FromDiscord<Clyybber> @Zachary Carter armory is built around haxe
18:29:16FromDiscord<Zachary Carter> oh yeah I saw that - I still think Armory looks better
18:29:17FromDiscord<Clyybber> haxe compiles to a lot
18:32:13krux02mratsim: how do I use a local symbol with dirty templates?
18:32:30krux02I really tried to get rid of dirty timplates
18:32:35Yardanico@mratsim to ping him on Discord :)
18:32:36krux02They are not hygienic
18:32:49krux02ok thanks
18:33:48FromDiscord<Clyybber> https://github.com/nim-lang/Nim/pull/14816 please vote
18:33:49disbotβž₯ Make unreachable code a warning instead of an error
18:33:59FromDiscord<Clyybber> er, meant https://github.com/nim-lang/RFCs/issues/240
18:34:00disbotβž₯ Make "unreachable statement" error a warning ; snippet at 12https://play.nim-lang.org/#ix=2q6i
18:34:30*mklooste2 joined #nim
18:35:07FromDiscord<Varriount> @Clyybber Eh, can I vote both yes and no? I'm ambivalent about that behavior.
18:35:17FromDiscord<Yardanico> you can πŸ˜„
18:35:26FromDiscord<Yardanico> both upvote/downvote lol
18:35:30FromDiscord<Clyybber> @Varriount Heh, if it helps to convince you heres a weird behaviour:
18:35:58FromDiscord<Clyybber> sent a code paste, see https://play.nim-lang.org/#ix=2qqD
18:36:17FromDiscord<Clyybber> arguably I could just forbid that too
18:36:21FromDiscord<Clyybber> but that would be a breaking change
18:36:25FromDiscord<Varriount> Isn't that just an argument that the detection logic needs improvement?
18:36:32FromDiscord<Clyybber> I improved it in the PR
18:36:38FromDiscord<Clyybber> But made it a warning
18:37:16*mklooste1 quit (Ping timeout: 256 seconds)
18:37:35FromDiscord<mratsim> @krux02 this is my crazyest use of templates to replace "inject": https://github.com/mratsim/Arraymancer/blob/master/src/tensor/backend/openmp.nim#L105-L107↡at the call site: https://github.com/mratsim/Arraymancer/blob/a0bdf4ecd79c615403a8db387b171ade3d426221/src/tensor/higher_order_foldreduce.nim#L23
18:39:49krux02the problem is, I have a template that is over 700 lines of code that now simply doesn't work anymore because the symbol binding rules have been changed.
18:40:05Yardanicocan't you do something like -d:nimOldBehaviourForSomething ?
18:40:10YardanicoI think every breaking change after 1.0 did that
18:40:23FromDiscord<lqdev> I think there's --useVersion
18:40:25Yardanicoyeah also that
18:40:36krux02I will check for that
18:40:49krux02and no, I don't use --useVersion
18:41:02disruptekgood, because it doesn't work.
18:41:12krux02I thought so
18:41:20krux02(I assumed it)
18:41:24FromDiscord<Yardanico> @Clyybber could it cause some issues with destructors and stuff? if they generate some additional stuff before the noreturn proc for code after a noreturn proc ?
18:43:54FromDiscord<Varriount> @mratsim I don't quite understand - where is the template "x" being used?
18:44:04FromDiscord<Yardanico> in https://github.com/mratsim/Arraymancer/blob/a0bdf4ecd79c615403a8db387b171ade3d426221/src/tensor/higher_order_foldreduce.nim#L23
18:44:12FromDiscord<Yardanico> (that's his second link)
18:44:31FromDiscord<Yardanico> template call as an lvalue πŸ™‚
18:44:33FromDiscord<mratsim> it's magic
18:45:03FromDiscord<Yardanico> but it's actually cool, IDK if that's considered ugly or not though πŸ˜›
18:45:12FromDiscord<Yardanico> it's really smart since you can do a 0-cost mutation for private fields and stuff
18:45:37FromDiscord<mratsim> you can't for private field as you need visibilty into it to access it
18:46:04FromDiscord<Yardanico> oh
18:46:34FromDiscord<mratsim> a proc in the same module would allow you access, but not a template, except maybe if you use "bind"
18:47:04FromDiscord<mratsim> but symbol resolution is probably the most obscure area of Nim
18:47:24FromDiscord<Varriount> @mratsim I can't tell whether you're a genius, or have gone mad with power
18:47:35krux02mratsim: a template did allow to use symbols from the same module.
18:47:48krux02that is what semTemplateDef did for you
18:48:00krux02all locally defined symbol were bound.
18:48:01FromDiscord<mratsim> even if the symbol was a private field?
18:48:28FromDiscord<Yardanico> it still works
18:48:43FromDiscord<Yardanico> that works
18:48:44FromDiscord<Yardanico> sent a code paste, see https://paste.rs/nfa
18:49:05krux02a bit weird behaviour, because undefined symbol remain identifier and can bind to symbol that are later defined were the template expands. This doesn't work for symbols that already bind to locally defined symbols.
18:49:20krux02very weird and obscure behaviour that I reported as strange.
18:49:25FromDiscord<Varriount> @mratsim So a template declaration can replace an injected variable?
18:49:34krux02but it is intenionally this way.
18:49:41FromDiscord<Varriount> (at least in a block)?
18:50:13krux02I didn't test private field.
18:50:23krux02I don't exactly know how that works.
18:50:26FromDiscord<mratsim> @Varriount mmmh here I use the template to assign directly into an array element
18:50:26FromDiscord<Yardanico> ah I'll try with an object
18:50:42FromDiscord<mratsim> so it's kind of similar to inject yest
18:50:48FromDiscord<Varriount> I didn't know that was possible.
18:51:30FromDiscord<mratsim> that's because proc/template are auto-injected while variable needs the specific pragma
18:51:57FromDiscord<Varriount> @mratsim What percentage of your code base is composed of templates (as opposed to procedures and macros)?
18:52:21FromDiscord<mratsim> In Arraymancer it's the iterators
18:52:39FromDiscord<mratsim> that's also mostly because they were the first stuff I wrote in Nim
18:53:12FromDiscord<mratsim> but the change to Laser backend would replace all iterators and their templates for injecting various things with a proper macro
18:53:32FromDiscord<mratsim> otherwise in general I have no idea.
18:56:00krux02I think I found the problem
18:56:50krux02The compiler introduced a nkHiddenDeref node and then `considerQuotedIdent` doesn't accept the `nkHiddenDeref` as an identifier.
18:58:13ForumUpdaterBotNew thread by Bobd: Libgcc_s_dw2-1.dll dependency, see https://forum.nim-lang.org/t/6504
19:07:32FromDiscord<Clyybber> @Yardanico No, won't cause problems
19:08:53FromDiscord<Clyybber> krux02: So {.inject.} didn't work for you?
19:09:18krux02nope
19:09:31krux02the Nim compiler is just broken and I am really really frustrated with it.
19:09:40FromDiscord<Clyybber> bruh
19:10:50krux02There is a reason I created my own Nim fork.
19:13:20FromDiscord<Clyybber> and you didn't fix this bug.
19:13:59FromDiscord<Clyybber> but to be more constructive: how do you think it should be fixed?
19:14:01krux02I also didn't introduce it.
19:14:05krux02it is a breaking change.
19:14:14krux02I is from code I wrote years ago
19:14:35krux02before I worked on the compiler.
19:14:43FromDiscord<Clyybber> \> constructive
19:14:46FromDiscord<Clyybber> how would you fix it?
19:15:22krux02don't know
19:15:43*waleee-cl quit (Quit: Connection closed for inactivity)
19:15:47krux02maybe reduce the bug to a small reproducable error. use git bisect to find the introduction of the error.
19:15:49krux02Revert it.
19:15:58FromDiscord<Clyybber> ok, so the sledgehammer approach
19:16:13krux02yea, because I am angry right now.
19:16:35FromDiscord<Clyybber> if you are angry go outside and get some fresh air; no one forced you to use nim and get angry
19:16:36krux02It is not bad code or bad stley something that is wonky or easy to break.
19:16:45krux02it is really well written code that I care about.
19:16:46*mklooste2 quit (Ping timeout: 246 seconds)
19:17:13krux02and now a pattern that I used in a very big filed around 50 times just doesn't work anymore at all.
19:17:39FromDiscord<Clyybber> You can fix it. fix it add a testcase. Continue with life
19:18:05krux02I can introduce a hack yeas
19:18:09krux02would be easy.
19:18:16FromDiscord<Clyybber> or you can try to fix it properly
19:18:36krux02But all these compiler hacks that don't really understand the problem make working on the compiler a nightmare
19:18:37FromDiscord<Clyybber> or give me a snippet and I'll try to..
19:19:49FromDiscord<Clyybber> then try to understand the problem and fix it?
19:20:59krux02I have a different dayplan that to report yet another bug that just gets ignored in the myriads of bug reports that Nim already has.
19:21:30FromDiscord<Clyybber> clearly you have enough time to cry about how "nim is broken" on IRC
19:21:37FromDiscord<Clyybber> coulda used that time to report it
19:22:23FromDiscord<Clyybber> its just really annoying if you shout "nim is broken" over and over again just because you found an obscure bug
19:22:52FromDiscord<Clyybber> especially when you have the knowledge to actually fix it
19:24:22FromDiscord<mratsim> while I don't shout nim is broken, I totally understand krux frustration.↡↡Things that used to work and get broken by further Nim releases are incredibly frustrating
19:24:35FromDiscord<Clyybber> yeah, but they need to get reported
19:24:47FromDiscord<Clyybber> its unreasonable to expect that not to happen when you don't report the issues
19:24:51FromDiscord<mratsim> sometimes it's quite complex to create a minimal test case
19:25:31FromDiscord<Clyybber> yeah, but its all we can do. Minimizing, Fixing, adding testcases
19:26:07FromDiscord<mratsim> This one for example cannot really have a test case: https://github.com/nim-lang/Nim/issues/7743
19:26:08disbotβž₯ 3x performance regression
19:26:29FromDiscord<Clyybber> what I'm trying to say is that angrily complaining on IRC isn't worth the time
19:26:40FromDiscord<mratsim> sure
19:28:54*bung joined #nim
19:29:57bungkrux02 , think the good parts, things are developed.
19:37:35*Vladar quit (Quit: Leaving)
19:38:11Yardanicobung: you still maintaining nimlsp for vscode? :)
19:42:56*dddddd__ joined #nim
19:44:25*nsf quit (Quit: WeeChat 2.8)
19:44:47*dddddd_ quit (Ping timeout: 246 seconds)
19:45:24bungYardanico ,I think it finished
19:45:29Yardanicowdym? :)
19:45:38*kenran joined #nim
19:45:54bungno new features that I need
19:45:57Yardanicooh
19:46:14bunggot some ideas?
19:46:32Yardanicowell I mean I should probably use it, and report bugs :)
19:46:39Yardanicoor try to fix them myself but I don't really know TS
19:47:02bungreport it, I will fix it if I can.
19:49:06*kenran quit (Client Quit)
19:54:29*dddddd_ joined #nim
19:56:57shashlickIt would be easy if Nim was an app that users could adjust to when drastic changes are introduced but it's a programming language
19:57:08Yardanicobtw, does requiresInit work or not really?
19:57:10*dddddd__ quit (Ping timeout: 260 seconds)
19:57:21Yardanicoor maybe I'm using it wrong here - https://play.nim-lang.org/#ix=2qr1
19:57:31shashlickThere will always be crap code in retrospect but tearing it out won't be as simple
19:57:32*dddddd joined #nim
19:57:41Yardanicojust be like browsers
19:57:48Yardanicoand release a new major version each month :P
19:58:00shashlickI have perhaps 5 users of nimterop but had to go thru a huge effort to replace the backend
19:58:07nikita`so learning purposes and probably bad code aside, is there a way I can avoid an error of modying the seq while looping over it (which works just fine in python as a set, but I get it that the properties of the languages are different): https://github.com/teknokatze/sandboxes_nim/blob/default/scraper_urls.nim
19:58:22Yardaniconikita`: what line of code? :)
19:59:07nikita`my guess is 108
19:59:09shashlickMy old approach was crap in retrospect but it took me six months to get rid of it, and it is still pre 1.0
19:59:30*dddddd__ joined #nim
19:59:32Yardanicoshashlick: sounds like 4raq's https://github.com/nim-lang/Nim/pull/14790 :P
19:59:33disbotβž₯ scoped memory management
19:59:36disruptekhey, it's only pre-1.0 because you don't want to cut a 1.0 release.
19:59:45Yardanicohe said recently that he should've done it that way initially
19:59:45*dddddd_ quit (Ping timeout: 265 seconds)
19:59:58Yardaniconikita`: i'll see
20:00:08shashlickI totally get the frustration when core devs don't agree with feedback but neither is it so simple to replace stuff as if it is a piece of wood
20:00:08Yardanicoalso we have a russian channel on Discord :)
20:00:11Yardanicoin the nim server
20:00:43shashlickI'm going to sit pre 1.0 for as long as Nim did :)
20:00:52shashlickNo one is pushing me so far
20:01:22Yardaniconikita`: what's the link you're testing it with?
20:01:24Yardanicoso I could test
20:01:28nikita`oh
20:01:32nikita`just use whatever
20:01:47nikita`so links.txt has
20:01:49Yardanicooh yeah i see
20:01:52nikita`https://github.com
20:01:58nikita`https://gnunet.org/en/
20:02:03Yardanicoyeah yeah I got the exception
20:02:10shashlickBest part is the fact that nimterop is under 2k lines of code with mostly one developer and still it is difficult to deal with
20:02:24disruptekwell, it's a complex animal.
20:02:25ForumUpdaterBotNew thread by JohnAD: Advanced `nim doc` use, see https://forum.nim-lang.org/t/6505
20:02:35shashlickImagine the compiler then
20:02:38*dddddd quit (Ping timeout: 264 seconds)
20:02:55disrupteki thought the forum updater was moving to news?
20:02:58nikita`Yardanico: can't really share the python code for 3 letter reasons, even if they won't notice or try me
20:03:01FromDiscord<Clyybber> isn't nimterop 5k loc?
20:03:04FromDiscord<Elegant Beef> Why arent we iterating down the sequence adding/removing values by index πŸ˜„
20:03:05Yardanicodisruptek: for posts - yes
20:03:56Yardaniconikita`: ah yeaho fc
20:04:03Yardanicoyou're modifying frontier on line 141
20:04:07Yardanicowhile iterating over it
20:04:27Yardanicolemme try to refactor it
20:04:54Yardanicoseems to work now
20:05:08nikita`oh indent
20:05:08Yardanicosee https://gist.github.com/Yardanico/798f8d5a106aa951006b0c68d8ed7516/revisions
20:05:22Yardanicoalthough maybe you meant indentation, idk
20:05:25shashlickok 7.5k
20:05:34nikita`the old code was long enough that i skipped this shift.
20:05:47nikita`thanks!
20:06:41*pi4 joined #nim
20:08:26nikita`maybe your solution is good too, I would have to read into scrapers again
20:09:39FromDiscord<Vindaar> sorry for breaking Nim CI again via ggplotnim. Waiting for ggplotnim PR to pass, then it should be fine again
20:12:45nikita`no, it wasn't just indentation. hm
20:12:52Yardanicoyeah see my diff
20:13:00Yardanicoyou can't iterate over a seq while modifying it with items
20:13:06Yardanicoso I just do a while loop and .pop the last value
20:13:53nikita`yeah, i have seen it, i was just thinking about what you did and what I wrote it as. .pop is removing it from seq as far as I can remember?
20:13:58Yardanicoyes
20:14:23YardanicoI thought that was correct for your intended behaviour, idk
20:15:19nikita`it's been 2 years since I had to think about this part. I'll have to refresh some memory :D
20:16:10*waleee-cl joined #nim
20:17:39nikita`i think a crawler frontier has to keep a list of URLs it learns, pop'ing it would remove it from the list of known urls it checks against. so I need some other way to work on this, but at least now I know more about how nim behaves there
20:18:13*kenran joined #nim
20:18:31Yardaniconikita`: well, then you can just inc by the index
20:18:46Yardanicoand when would your program actually stop running?
20:18:46*aeverr quit (Quit: Konversation terminated!)
20:18:55nikita`it just keeps running
20:18:59Yardanicolol
20:19:04nikita`until it runs out of space or urls
20:19:08YardanicoXD
20:19:14Yardanicowell how can it run out of urls?
20:19:21Yardanicoif it always appends
20:19:25Yardanicobut yeah I think i know what you want then
20:20:19nikita`if I'd do it again, I'd probably would desgn it differently
20:20:37nikita`this is just translation of old code
20:20:38Yardaniconikita`: https://gist.github.com/Yardanico/798f8d5a106aa951006b0c68d8ed7516/revisions
20:20:42Yardanicosomething like that then?
20:21:14Yardanicoah wait you can add the check
20:22:17Yardanicohmm
20:22:41FromDiscord<Elegant Beef> If you
20:22:49FromDiscord<Elegant Beef> 're adding to the sequence this get's mad
20:23:01nikita`Yardanico: looks good enough already
20:23:03*leorize quit (Ping timeout: 240 seconds)
20:23:07Yardaniconikita`: nonono, it's wrong
20:23:11Yardanicowell kinda
20:23:17Yardanicoit will work, yeah
20:23:20FromDiscord<Elegant Beef> Im sorta surprised you were capable of doing what you
20:23:25FromDiscord<Elegant Beef> 're doing on python
20:23:32FromDiscord<Elegant Beef> God damn my hands are off today
20:23:37FromDiscord<Elegant Beef> who wants to chop them off for me
20:24:35nikita`in python i did it with dicts and sets. i think the code which I don't have anymore looked better and this is just the first version of it
20:24:46Yardaniconikita`: something like that should work https://gist.github.com/Yardanico/798f8d5a106aa951006b0c68d8ed7516/revisions
20:25:16Yardanicoso if you didn't discover any new urls in the iteration and you're on the last item in the frontiers - break from the loop
20:25:27*leorize joined #nim
20:25:35nikita`hm
20:25:40nikita`ok
20:29:44*pi4 quit (Quit: WeeChat 1.6)
20:31:10nikita`yep, works as intended now
20:31:12nikita`thanks :)
20:31:22Yardaniconp, for russian talk as I said you can join the discord channel :)
20:31:51nikita`oh, I'm not russian or speak russian
20:31:55Yardanicoah lol
20:32:02YardanicoI assumed you are by your irc name, sorry :)
20:33:13FromDiscord<Elegant Beef> That's offensive yard, next you'll assume im a cow
20:33:16nikita`no problem. is there a larger russian speaking community of Nim users in the smaller Nim community?
20:33:28Yardaniconot really
20:33:35YardanicoI just created a few language-specific channels in discord recently
20:33:42nikita`ah
20:33:45Yardanicobut yeah, we have small separate russian/spanish/chinese communities
20:33:49Yardanicomaybe more I don't know of
20:34:12FromDiscord<Elegant Beef> Greek, german, french, and polish are the other ones
20:34:25Yardanicothey don't have nim communities really
20:34:36FromDiscord<Elegant Beef> Yea i know i was just saying the channels
20:34:59YardanicoI meant that we actually have separate russian/chinese/spanish communities
20:35:07Yardanicothey were there before I created these discord channels
20:36:27FromDiscord<Vindaar> nim CI should be healthy again πŸ™‚
20:36:32Yardanicoyay
20:36:47bungI dont feel this channel too activity, think they chat in this channel is fine.
20:37:40FromDiscord<Elegant Beef> Ill pretend i understand what that means bung
20:38:38nikita`it's easy to understand, no need to be hard on grammar..
20:38:38*kungtotte quit (Read error: Connection reset by peer)
20:38:38bungthen I assume you understand that sentence...
20:38:48Yardanicobung: yeah I understand
20:38:52Yardanicobut people would be against it
20:38:59Yardanicoas they were against posting new forum posts here :)
20:39:12bungso I dont really need learn english very hard .
20:39:15Yardanicoso I only post new forum threads here, no forums
20:39:21Yardaniconot posts*
20:39:41Yardanicobtw guys who missed - Nim will get a new color in the next github linguist update
20:39:44Yardanicoso in around 2-4 weeks
20:39:49FromDiscord<Clyybber> \o/
20:39:51Yardanicoit'll go live
20:39:56FromDiscord<Clyybber> it looks great
20:41:07bungoh, I need readjust the color soon.
20:43:31*kungtotte joined #nim
20:50:11FromDiscord<Clyybber> krux02: Sorry if I came off aggressive before, did you find out what commit broke your template?
20:50:38krux02no, I did not.
20:50:49krux02I currently try to find a workaround instead of fixing the bug.
20:51:34*ForumUpdaterBot quit (Ping timeout: 256 seconds)
20:51:43*Yardanico quit (Ping timeout: 272 seconds)
20:51:58*Yardanico joined #nim
20:52:03krux02I need to get progress instead of getting stuck at fixing Nim bugs.
20:53:15*ForumUpdaterBot joined #nim
21:00:57shashlickwhy does {.borrow.} not work if including a file
21:02:00*kenran quit (Quit: leaving)
21:02:40*kenran joined #nim
21:03:46*kenran quit (Client Quit)
21:04:08*kenran joined #nim
21:04:28*kenran quit (Client Quit)
21:13:47*fredrikhr joined #nim
21:24:10*tane quit (Quit: Leaving)
21:29:39*bung quit (Ping timeout: 265 seconds)
21:32:56*jeko joined #nim
21:42:33*audiophile joined #nim
21:55:46FromDiscord<Yardanico> So an interesting thing
21:56:54FromDiscord<Yardanico> A guy in IRC asked if this is possible in Nim (it's possible in Rust):↡let num = "4".parse().unwrap()
21:57:13FromDiscord<Yardanico> Ah sorry not this
21:57:37audiophilehey Yardanico you are awesome
21:57:51FromDiscord<Yardanico> First of all it was in Telegram not IRC, sorry:↡↡let num: u32 = "4".parse().unwrap()
21:58:08FromDiscord<Yardanico> This is possible in rust, parse is generic but the compiler gives u32 to the parse function
21:58:21FromDiscord<Yardanico> @audiophile don't know why, but thanks :P
21:58:58audiophileI mean, you are very active in nim community and even help in exercism track so yeah :D
21:59:27FromDiscord<Vindaar> doesn't that enter the realm of return type overloading?
21:59:40FromDiscord<Yardanico> Ah nvm yeah
22:00:03FromDiscord<Yardanico> Rust apparently has https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system too
22:00:55FromDiscord<Yardanico> Ah wait no
22:01:22FromDiscord<Yardanico> Oh it's inspired by HM
22:01:30FromDiscord<Yardanico> @Vindaar that's exactly what it is
22:04:14FromDiscord<Yardanico> I was surprised, didn't know Rust had that
22:04:16FromDiscord<Vindaar> ah, I see interesting. sometimes I'd love to have that. But I can see how that would allow one to turn nim into something as messy as python, where everything is hidden πŸ˜›
22:04:31FromDiscord<Vindaar> also didn't know that (but tbf I haven't spend a lot of time reading up on rust details)
22:04:48*bung joined #nim
22:07:17FromDiscord<Yardanico> I wonder what Araq thinks of HM type system :P
22:08:49FromDiscord<Vindaar> not like I've grasped (or even really read) that wiki article. but probably not too much, at least not in the context of a lang like nim, heh
22:08:54*bung quit (Ping timeout: 240 seconds)
22:14:18FromDiscord<Yardanico> I found a good explanation in https://softwareengineering.stackexchange.com/a/317093
22:15:54FromDiscord<Yardanico> It seems to be actually really interesting, but yeah, I'm already scared of how hard that would be to implement in the context of Nim
22:20:59FromDiscord<Yardanico> By the way
22:21:12FromDiscord<Yardanico> What's the difference between `any` and `auto`]
22:21:14FromDiscord<Yardanico> ?
22:21:19FromDiscord<Yardanico> I know auto but what is any?
22:23:48*nikita` quit (Quit: leaving)
22:24:30*solitudesf quit (Ping timeout: 256 seconds)
22:25:10FromDiscord<Yardanico> Ah okay I understand
22:25:16FromDiscord<Yardanico> Or maybe not
22:25:42FromDiscord<Yardanico> Reading https://nim-lang.org/docs/manual.html#generics-type-classes and https://nim-lang.org/docs/manual.html#generics-implicit-generics below
22:39:02FromDiscord<Vindaar> isn't `any` just from the typeinfo module (or whatever it was)?
22:39:09Yardanicono that's Any
22:39:15YardanicoI mean system's "auto" and "any"
22:39:16FromDiscord<Vindaar> ahh!
22:39:22Yardanico"any" seems to be defined as "distinct auto"
22:39:24FromDiscord<Vindaar> I didn't realize there was `any`
22:39:27Yardanicopretty confusing
22:39:37FromDiscord<Vindaar> yep
22:39:43Yardanicoit has something to do with binding once or many
22:40:24FromDiscord<Vindaar> but yes, implementing return type overloading probably isn't fun. but the implications from a usability standpoint are the worst part if abused imo
22:48:00*bung joined #nim
22:51:58FromGitter<deech> If I convert a `proc` to a function pointer & an environment pointer and pass it to C as a callback is it safe to free them on the C side?
22:52:20*bung quit (Ping timeout: 256 seconds)
22:59:42*lritter quit (Ping timeout: 256 seconds)
23:09:39*Trustable quit (Remote host closed the connection)
23:11:57Yardanico@deech I don't really think so, aren't closures managed by the GC?
23:12:24audiophiledoes anyone here use nim for functional programming
23:12:37Yardanicoidk, but I have some lib recommendations
23:12:47audiophilesure! I'm all ears
23:12:58Yardanicohttps://github.com/zero-functional/zero-functional https://github.com/andreaferretti/patty
23:13:05Yardanicohttps://github.com/alehander92/gara
23:13:12audiophilewhoa sweeet, checking them out :D ty
23:13:17Yardanicohttps://github.com/vegansk/nimfp
23:13:36Yardanicohttps://github.com/CosmicToast/pipe
23:13:51Yardanicoignore the last one though, it seems to be too simple :P
23:14:01audiophilenice to see many implementations
23:29:11PrestigeIs there a way to have an object's property be an array without knowing the size until it's creation?
23:29:23Prestigeits*
23:29:34Yardanicoyou can make the array size generic
23:29:38Yardanicoand size is static I presume?
23:29:48Yardanicowith runtime size you can only use seq
23:33:25PrestigeSize would stay the same, yeah. Was wanting to use an array because it won't change
23:35:44audiophilehello, where can I read more about the packaging in nim? like how it avoids the issues faced in python
23:36:02audiophilein case one day someone has to install my code :O
23:36:44FromDiscord<Elegant Beef> Nimble?
23:36:56FromDiscord<Elegant Beef> https://github.com/nim-lang/nimble
23:37:48audiophileis nimble the only one?
23:38:57*krux02_ joined #nim
23:39:21Yardanicoaudiophile: there's nimph but it still uses nimble's packaging hierarchy
23:39:43audiophileohh okay, I'll check that out too!
23:40:23FromDiscord<Elegant Beef> `nimble install` will fetch all deps and if it's a binary build/place it in the path
23:40:44FromDiscord<Elegant Beef> so you can do something like `nimble install moe` and get the moe editor built into your path
23:41:47*krux02 quit (Ping timeout: 260 seconds)
23:44:32*vicfred joined #nim
23:45:47*ofelas quit (Ping timeout: 240 seconds)
23:58:15*bung joined #nim