<< 14-11-2019 >>

00:02:23*endragor joined #nim
00:02:41*endragor quit (Remote host closed the connection)
00:03:19*endragor joined #nim
00:07:56madpropsok seems tables can't do that
00:10:26*abm quit (Quit: Leaving)
00:11:00FromGitter<alehander92> you might be able to override `.`
00:11:03FromGitter<alehander92> with a macro
00:11:08FromGitter<alehander92> look at jsgen
00:11:16madpropsthing is this would be user facing
00:11:21FromGitter<alehander92> i wouldnt do it tho, it seems confusing imo
00:11:21madpropsthe user would have to do that
00:11:35madpropsi can just do p["name"] but that's a bit verbose
00:11:39FromGitter<alehander92> jsffi*
00:12:03FromGitter<alehander92> but it makes it obvious its a table
00:18:26madpropshmm im iterating through a list of objects
00:18:33madpropscan't seem to change a property of one
00:18:49disruptekuse mitems or mpairs.
00:19:59disruptekm as in mutable.
00:20:51*endragor quit (Remote host closed the connection)
00:24:02disrupteki like you, madprops. i hope you stick with nim.
00:28:20*norm_ quit (Quit: Leaving)
00:34:10*nif quit (Quit: ...)
00:34:20*nif joined #nim
00:37:58madpropsnot sure how to do this https://play.nim-lang.org/#ix=1Y3N
00:38:07madpropsand an enum doesn't seem would work
00:38:28disruptektry to use variant objects instead.
00:38:42madpropsi just want a function that can return different kinds of types, so i just return one of the NapValue variants as a NapValue
00:39:16disruptektry to use variant objects instead; nim doesn't do method dispatch upon return type.
00:41:12madpropsoh i see what those are now
00:43:24disruptekthey work better in nim.
00:49:48FromDiscord<krab4t> disruptek ive found your brother https://github.com/ducdetronquito/express
00:50:16disruptekmy MAN!
00:52:59madpropsi dont' get the point of object variants if the field has to have a different name
00:53:07madpropsi was hoping to just use "value" on each variant
00:53:27disruptekbecause they are a single type that holds arbitrarily disparate values.
00:54:14FromDiscord<exelotl> don't tell anyone, but I'm overloading `.` for the entity system in my gba game
00:54:23disruptekyou're an animal.
00:55:21FromDiscord<exelotl> got really tired of writing self.data.foo, when 90% of the good stuff is in data, but self is the object of interest
00:55:32FromDiscord<exelotl> so now I just write self.foo :P
01:02:56madpropsis there something like Cat(super::name:"Mike") ?
01:03:32disruptekprocCall
01:07:25madpropsprocCall seems to be a way to call procs
01:07:31madpropsnot sure if i can use it for instantiation
01:08:51disruptekit's for super() calls.
01:09:02disruptekwhat are you trying to do?
01:09:55madpropsbasically i just want to return either int, float, string, or bool
01:10:02madpropsfrom a proc
01:10:40madpropsobject variants are not that good because the user would have to use a specific property for each type
01:11:09disruptekyou could have a proc that returns the value depending on the discriminator.
01:11:34disruptekbut again, you cannot dispatch on return type.
01:29:57FromDiscord<yewpad> any optimizations recommendations? https://play.nim-lang.org/#ix=1Ygs
01:38:07*Kevin5 joined #nim
01:43:01*endragor joined #nim
01:43:04*vsantana joined #nim
01:43:32*endragor_ joined #nim
01:47:17*endragor quit (Ping timeout: 240 seconds)
01:55:57*ng0 quit (Quit: Alexa, when is the end of world?)
01:56:51zedeusyewpad: https://play.nim-lang.org/#ix=1YmY
01:57:18FromDiscord<yewpad> nice! thank you
02:09:10*u9898287 joined #nim
02:10:19u9898287Hi. I want to use a constant defined inside C's <errno.h>. How can I tell the compiler to compile and make errno.h symbols available?
02:10:59u9898287to be more precise, I want to use EADDRINUSE (http://man7.org/linux/man-pages/man3/errno.3.html)
02:11:03*seni quit (Quit: Leaving)
02:14:32stefantalpalaruGo ahead and use it. It's already defined and exported in OS-specific modules: https://github.com/nim-lang/Nim/search?q=EADDRINUSE&unscoped_q=EADDRINUSE
02:17:32u9898287`var EADDRINUSE* {.importc: "EADDRINUSE", header: "<errno.h>".}: cint` works thank you
02:17:36*u9898287 quit (Quit: u9898287)
02:25:05*vsantana quit (Remote host closed the connection)
02:26:14*u9898287 joined #nim
02:32:23*vsantana joined #nim
02:32:38FromDiscord<demotomohiro> u9898287, you can use `EADDRINUSE` just with `import posix`
02:34:56*ponyrider quit (Quit: WeeChat 2.6)
02:40:26*ponyrider joined #nim
02:48:02*lritter quit (Ping timeout: 240 seconds)
02:49:01*lritter joined #nim
03:03:23zedeushmm, having trouble building devel using choosenim
03:03:25zedeusError: unhandled exception: 'alignment' is not accessible using discriminant 'kind' of type 'TSym' [FieldError]
03:04:32FromGitter<iffy> I'm implementing a JSON interface with Nim, and I'd like to generate TypeScript typings from it. I was thinking of having the generating of typings be part of the compilation process (e.g. in static: blocks). Is there something like the opposite of `slurp` for writing to a file? Do you have a recommendation for a different way to generate the typings?
03:08:20*theelous3 quit (Read error: Connection reset by peer)
03:09:17disruptekiffy: you can writeFile in compile-time code.
03:09:27disruptekmacros, static: etc.
03:09:44FromGitter<iffy> I thought I tried that... oh, maybe I did open(filename)
03:10:54FromGitter<iffy> Sure enough! Thank you, disruptek
03:11:06leorizezetashift, nisstyre: if you use vim then my plugin won't work :P
03:11:30nisstyreleorize: yeah I figured
03:11:36nisstyreI could just use nvim only for nim
03:11:43nisstyrethat's not out of the question for me
03:11:57leorizeor you could switch to nvim altogether :p
03:12:45leorizealso YCM is a terrible plugin IMO
03:12:52leorizenowadays with LSP you can use clangd instead
03:13:01*theelous3 joined #nim
03:21:20TangerHey folks, with macros, is there a way to see what genSym is creating?
03:21:28*thomasross quit (Read error: Connection reset by peer)
03:21:31*thomasross_ joined #nim
03:21:31*thomasross_ is now known as thomasross
03:22:08Tangerdumptree gets me what it's calling behind the scenes, but I'd like to see the result and see what's up with that, I guess
03:40:37*rockcavera quit (Remote host closed the connection)
04:05:08*u9898287 quit (Quit: u9898287)
04:15:46FromGitter<iffy> expandMacros: maybe?
04:22:38*u9898287 joined #nim
04:34:37*Kevin5 quit (Ping timeout: 240 seconds)
04:39:38*nsf joined #nim
04:44:53*chemist69 quit (Ping timeout: 250 seconds)
04:46:51*chemist69 joined #nim
04:52:17*haldean joined #nim
04:53:07haldeanhey there! probably an easy question but I'm a noob: if I have a C function I'm calling from nim, how do I pass it a null pointer? I tried passing 0 and pointer(0) and the first complains about types not matching and the second claims that 0 can't be converted to a pointer
04:54:04haldeantechnically I'm calling a function that's declared in a library (an OpenGL wrapper) and it wants an argument of type "pointer"
04:59:57miprihaldean: https://play.nim-lang.org/#ix=21Ah
05:00:32haldeanoh perfect. thanks mipri!
05:03:17*u9898287 quit (Quit: u9898287)
05:13:10*Kevin5 joined #nim
05:18:55*nif quit (Quit: ...)
05:19:04*nif joined #nim
05:29:34*uu91 quit (Read error: Connection reset by peer)
05:29:51*uu91 joined #nim
05:30:59*haldean quit (Quit: Leaving)
05:31:43*uu91 quit (Read error: Connection reset by peer)
05:31:59*uu91 joined #nim
05:38:13*bacterio joined #nim
05:46:02FromGitter<Vindaar> @mratsim About that c/cpp 2x perf difference: not sure that was me. But I remember some forum post (?) about something like this
05:46:23*NimBot joined #nim
06:01:57*theelous3 quit (Ping timeout: 240 seconds)
06:08:28*Hexeratops joined #nim
06:14:43*ltriant_ quit (Ping timeout: 265 seconds)
06:17:31*Hexeratops quit (Quit: Leaving)
06:19:58*narimiran joined #nim
06:26:28*uu91 quit (Read error: Connection reset by peer)
06:26:44*uu91 joined #nim
06:52:26*vsantana quit (Remote host closed the connection)
06:53:05*vsantana joined #nim
07:17:48Tangerthanks Iffy!
07:20:27*solitudesf joined #nim
07:26:16*PMunch joined #nim
07:32:52*tane joined #nim
07:33:59*dddddd quit (Remote host closed the connection)
07:37:22*krux02 joined #nim
07:41:38PMunchHmm, I want to delete 1/10th of the keys in a Table randomly. What would be the most efficient way of doing it? I was thinking either myTable.shuffle[0..myTable.size div 10] or for i in 0..(myTable.size div 10): myTable.del(myTable.keys.sample())
07:42:26Zevvdoes the second recalculate the table size for each iteration then?
07:43:20Zevvand I'm pretty sure the del is more efficient then shuffling the whole thing. You either move 100% of the elements or only 10% of them
07:44:10PMunchWell I was thinking of grabbing the size before the loop
07:44:14Zevvoh wait I misread, you sample, but that seems like the right choice
07:44:16PMunchThat was just an illustration :P
07:44:34Zevvyeah i see now, but i was reading while hopping on the train so
07:46:35PMunchWait.. I can't get all the keys easily..
07:46:37PMunchHmm
07:47:38tanePMunch, get the keys once
07:48:45tanethe random module could use a partialShuffle :)
07:48:59taneit's good for your usecase
07:49:50lqdev[m]guess what
07:49:58lqdev[m]termux, that terminal app for android, has nim 1.0.2
07:50:08lqdev[m]in the repos
07:50:14lqdev[m]while arch is stuck at 0.18
07:51:15narimiranlqdev[m]: it is too early to trigger me like that :P
07:51:55Zevvwow you're right. I can now stare at my phone for 43 seconds while it is munching away at hello world!
07:52:33PMunchHaha
07:53:07Zevvph it was only 2.1, not that bad
07:53:11PMunchWait, why does the Nim arch package depend on Python? https://www.archlinux.org/packages/community/x86_64/nim/
07:53:55*Hideki_ joined #nim
07:55:16Araqmust resist...
07:55:33PMunchHuh, never knew that Nim used Python for stuff
07:56:09FromGitter<zacharycarter> I ended up using NESM for my map de/serialization
07:56:28FromGitter<zacharycarter> pretty nice library
07:56:36narimiranfor those of you who have missed it yesterday: https://i.imgflip.com/3g6z16.jpg
07:56:55FromGitter<zacharycarter> lolol
07:57:55AraqPMunch: it doesn't use Python for anything
07:58:33*Hideki_ quit (Ping timeout: 268 seconds)
07:59:31narimiranahem, tools/nim-gdb.py, lib/pure/unidecode/gen.py :D
07:59:46PMunchWhat is lib/pure/unidecode/gen.py used for then?
08:00:00*gmpreussner quit (Quit: kthxbye)
08:00:02narimiran"# Generates the unidecode.dat module"
08:00:20narimiran"# (c) 2010 Andreas Rumpf" :)
08:00:46PMunchI mean I guess the .dat module is also checked in
08:00:58PMunchSo it's just there if it needs to be regenerated
08:04:57*gmpreussner joined #nim
08:05:55Araqnarimiran: GDB requires Python, not nim
08:06:50Araqunidecode/gen.py is usually not run as PMunch said
08:07:53narimiranwait, let me report that to the very welcoming adult arch community
08:08:02Araqlook, you cannot "package" random software without understanding it and hint the authors usually understand it best. which is why Linux's idea of PM is completely and utterly flawed
08:10:13PMunchNothing stops us from packaging it and getting it into AUR though..
08:10:32PMunchOr if we created a package script that could be run to package it properly that would probably be used instead
08:10:40Araqyeah that would work if there weren't 5 trillion different distros
08:10:59Araqand we have the script, it's 'koch distrohelper'
08:12:18PMunchThere are many distros, but fewer discrete package formats
08:12:31PMunchHmm, Error: cannot evaluate 'sizeof' because its type is not defined completely
08:13:00PMunchWhat does that mean?
08:13:38*lritter quit (Ping timeout: 240 seconds)
08:13:56FromDiscord<kodkuce> appimage it
08:14:13FromDiscord<kodkuce> or use void linux it better
08:22:19PMunchHmm, the posix module seems to have a bug: http://ix.io/21AA
08:22:20disbot^ play at https://play.nim-lang.org/#ix=21AA 😏
08:22:37PMunchdisruptek, can you fix your bot please..
08:22:58PMunchNot everything that's an ix.io paste is a playground link..
08:24:30AraqPMunch, maybe you used and .incompleteStruct
08:24:34Araq*an
08:24:54*livcd joined #nim
08:25:03PMunchI was trying to do sizeof(Sockaddr_storage)
08:25:37PMunchThis thing: https://github.com/nim-lang/Nim/blob/version-1-0/lib/posix/posix_other.nim#L407
08:25:45Araqmeh probably caused by .importc then
08:26:55Araqer this looks really incomplete
08:27:05PMunchWhat do you mean?
08:27:30AraqI'm sure it's bigger than just 'ss_family'
08:27:45Araqso it's good that you cannot take its sizeof, maybe
08:28:00Araqif you try to use it at compiletime
08:29:31PMunchOh wait, that was from posix_other. This is the one that is actually used on my system: https://github.com/nim-lang/Nim/blob/version-1-0/lib/posix/posix_linux_amd64.nim#L432
08:34:33PMunchHmm, but what about the error..
08:34:36PMunchThat's worse..
08:39:07PMunchThrowing a {.importc: "__ss_padding".} in the struct definition works fine
08:41:59*sealmove quit (Quit: WeeChat 2.6)
08:44:12*clyybber joined #nim
08:47:31lqdev[m]I'm seriously considering learning to use micro full-time to develop code, lol. not sure if it'll bring any real benefits over vscode (apart from being lightweight, of course)
08:47:48PMunchMicro?
08:48:24lqdev[m]https://micro-editor.github.io/
08:50:44livcdlqdev[m]: rewrite in Nim :F
08:51:14miprihttps://github.com/fox0430/moe is getting pretty good. last I looked the undo wasn't that pleasant.
08:51:19clyybberlqdev[m]: It uses tcell as a library. I'm considering porting that to nim
08:51:20narimiran"Does micro support Vi keybindings? No, if you want to use Vim then use Vim." -- thanks for making this easy for me :)
08:52:02*floppydh joined #nim
08:52:11FromDiscord<exelotl> Would be good to allow the {.size.} pragma to work with things bigger than 8 bytes e.g. imported C structures
08:53:07clyybbersolitudesf: This is the lritter thats here on IRC btw: https://bitbucket.org/duangle/scopes/commits/all
08:53:18PMunchAraq, created a PR that fixes the issue I was having, but if this is the way to fix it there is probably a bit more work to do in order to make it better: https://github.com/nim-lang/Nim/pull/12655
08:53:25clyybberSince I follow you on GH I saw you followed an lritter, but thats a different one
08:53:50FromDiscord<exelotl> Right now I can't do sizeof(oamMem) even though I know it has 128 items and I know how big an oam struct should be
08:54:11FromDiscord<exelotl> (at compile time that is)
08:56:16FromDiscord<mratsim> very nice: https://forum.nim-lang.org/t/5509
08:57:12PMunchHmm, moe and micro looks interesting lqdev[m] and mipri. Have any of you tried kakoune by the way?
08:57:57PMunchmratsim, oh wow, that's really cool
09:04:12solitudesfclyybber, thanks, i figured that was wrong one
09:05:33solitudesfPMunch, nimlsp + kakoune is pretty pleasant combo.
09:06:17leorizePMunch: if you're an arch user then you can ask them on arch-dev mailing list to release the nim package back to AUR as it's maintainer don't appear to have any interest at actually maintaining it
09:06:21PMunchI tried out kakoune a while ago, but that was right after I had set up my Vim environment properly and didn't want to give up some of the features (that I now don't use anyways).
09:06:31clyybberI concur, kakoune is great (though I don't use lsp yet)
09:06:35solitudesfbut i wouldn't recommend kakoune to anyone who has no signs of turboautism
09:06:46clyybberlol
09:06:52PMunchHaha turboautism?
09:07:03PMunchleorize, yeah I guess I should
09:07:25PMunchReally though we should just get it removed and create a choosenim package if it doesn't exist yet.
09:07:52PMunchMaybe even just call that package Nim, but actually just install choosenim and stable.
09:08:45leorizeplease, no
09:09:01leorizeif you want choosenim, make it choosenim
09:09:19leorizeand some actually like having packages installed from one source
09:09:36zedeusspeaking of choosenim, does `choosenim update devel` work for you?
09:09:49zedeusmine fails at the end with this:
09:09:50zedeusError: unhandled exception: 'alignment' is not accessible using discriminant 'kind' of type 'TSym' [FieldError]
09:09:59clyybberha
09:10:02leorizeprobably a devel pug
09:10:05leorizebug*
09:10:31FromGitter<zacharycarter> I wish kak worked on windows natively - using WSL and then compiling with cl is annoying
09:10:45FromGitter<zacharycarter> I think for windows vscode is the best option
09:11:22clyybberzacharycarter: Fear not: https://github.com/71/dance
09:11:32clyybberThose are kakoune like keybindings for VSC
09:12:11Araqzedeus, I have a fix for that, but in an unmergable PR
09:12:16Araq:-(
09:12:19zedeusaw
09:12:27leorizeI like kakoune but I still love my semantic highlighting :P
09:12:44FromGitter<zacharycarter> ah cool
09:12:58leorizedoes they have highlighting for trailing whitespace yet?
09:13:17clyybberShould be pretty easy to do
09:13:43leorizelast time I checked they have it for *all* whitespace but not trailing
09:13:47PMunchWhat is the difference between `system.createU` and `system/ansi_c.c_malloc`
09:14:10clyybberleorize: Just append \n to the regex highlighter, I think
09:14:53clyybberleorize: But it doesn't matter much since kakoune removes trailing whitespace anyways afaik
09:15:20leorizestill not merged :( https://github.com/mawww/kakoune/pull/2256
09:16:16PMunchAh okay, looking at the implementation, not much: https://github.com/nim-lang/Nim/blob/version-1-0/lib/system.nim#L2424
09:18:38PMunchHmm, where is dealloc implemented? I tried to use it to free a pointer I got from some C code, but that didn't work and I had to use ansi_c.c_free
09:18:55PMunchBut `create` seems to be exactly the same as `alloc`
09:19:40leorizejust use `free`
09:19:49leorizecreate is just a wrapper for `alloc`
09:20:01leorizeuse `dealloc` I mean
09:20:21PMunchIt didn't work though
09:20:25PMunchJust gave me an error
09:20:57FromGitter<zacharycarter> will dealloc work with memory that wasn't created using alloc?
09:21:01FromGitter<zacharycarter> or reserved rather
09:21:03FromGitter<zacharycarter> I doubt it
09:21:38FromGitter<zacharycarter> if the C code made the allocation I think you'd need to use free
09:21:40Araqalloc != malloc
09:21:45Araqdealloc != free
09:21:51FromGitter<zacharycarter> yeah exaclty
09:21:57Araqall hell breaks lose if you mix them, don't.
09:22:48clyybberYeah, I can make the jack server crash from a client by doing that :)
09:23:12leorizethat sounds a bit wrong :p
09:23:46clyybberlol
09:24:56PMunchSo I shouldn't use `create` either?
09:25:14PMunchI should use `c_malloc` from ansi_c`
09:25:40clyybberPMunch: What do you want to do again?
09:26:13PMunchAllocate some memory and pass it back to the C program that loaded my DLL who will then free it down the road
09:26:24clyybberYeah, use c_malloc then
09:26:42FromDiscord<Stuffe> I would like to create a webserver where each page is defined in just one file (PHP style). The best way I can think of would be to import all files from a directory on compile time and then find a way to call the procs in the files by string name. Is this possible in NIM?
09:27:17clyybberYeah
09:27:28PMunchI did something like that here Stuffe: https://github.com/PMunch/webexperiment
09:27:48FromDiscord<Stuffe> @ PMunch ok thanks, I will check out your link
09:28:04PMunchIt compiles every page into a DLL, then when it gets a request it passes it to the DLL that listens to that route
09:28:23PMunchAnd then it checks if your Nim code has updated and will re-compile the DLL
09:29:05FromDiscord<Stuffe> So the main file compiles a separate .so file on compile time and then imports it right after?
09:29:15FromDiscord<Stuffe> Or do you have to run several commands? sorry if its a dumb question
09:31:36FromDiscord<Stuffe> * DLL not .so
09:32:51clyybberYou should be able to achieve the same a bit easier with hotcodereloading
09:34:58PMunchclyybber, yeah this was written right before that became a thing :P
09:35:06PMunchOr right after when no-one knew how it worked
09:35:48PMunchBut Stuffe, not quite. The test.nim file is all that is initially compiled IIRC, then that compiles the so files when they are needed
09:36:28PMunchhttps://github.com/PMunch/webexperiment/blob/master/test.nim#L30
09:37:20PMunchAs the name of that repo implies, it is very experimental
09:37:30FromDiscord<Stuffe> Ok, I see, thanks guys. I will check out both things
09:37:53PMunchAnd it only works on Linux IIRC, but that's just because of some flags and string names and such I think
09:38:09FromDiscord<Stuffe> I was also considering just having one script run first to just generate the source code and then just call that
09:39:04FromDiscord<Stuffe> but that feels a bit dirty
09:40:12PMunchI mean if you don't want the dynamic nature of PHP where you can edit files while the page is live without manually recompiling you can just use source code filters: https://nim-lang.org/docs/filters.html
09:40:43PMunchLike this: https://nim-lang.org/docs/filters.html#available-filters-stdtmpl-filter
09:41:29PMunchThen in your main router you just call the generateHTMLPage of the applicable page (or do something similar like what I do in the autorouter of the webexperiment
09:42:50PMunchOr some other scheme
09:43:16PMunchTraverse the path and find the deepest file that matches and run that with the rest of the path as arguments perhaps
09:43:45lqdev[m]PMunch: I tried it, but I don't really like vi/vim-based editors
09:44:03lqdev[m]I may write my own CLI editor at some point, though
09:44:22PMunchkakoune isn't really vim-based though
09:44:30*letto quit (Quit: Konversation terminated!)
09:45:06*letto joined #nim
09:45:14lqdev[m]it uses a similar approach with modes
09:45:25lqdev[m]which is what I don't like about vim
09:45:30*Vladar joined #nim
09:45:37PMunchAh rgiht
09:47:11lqdev[m]I'm fine with commands like :w but having to press esc to change the mode is annoying. also, I'm not used to these commands used for manipulating text
09:47:16lqdev[m]I prefer a classic editing experience
09:47:46PMunchRebinding Esc to CapsLock is almost required to use Vim IMO
09:47:49lqdev[m]there's one library I wanted to try, and that library is illwill
09:47:59PMunchJust makes it 100x more practical
09:48:13lqdev[m]writing some small editor using that might be a fun project.
09:48:24Araqcapslock? that key that shouldn't exist?
09:48:30PMunchWhat do you mean by commands used for manipulating text?
09:48:31Araqthat's what you want to pess all the time?
09:48:47PMunchAraq, exactly, that's what makes it so nice to rebind to an actual useful key
09:49:05Araqa total alien thought for me, but ok
09:49:07FromDiscord<mratsim> Thanks to Vim users, the new Macbooks will have an escape key: https://news.ycombinator.com/item?id=21524088
09:49:13lqdev[m]PMunch: these arcane key commands you use for moving and editing and such
09:49:20PMunchI mean it's the function of the key, not its placement that's the issue
09:49:42lqdev[m]@mratsim wait. did macs not have an esc key?
09:49:45FromDiscord<mratsim> I rebind caps lock to compose usually
09:49:54FromDiscord<mratsim> yep, the Touchbar mac had no escape keys
09:50:01Araqmratsim: this is ... I miss the DEL key
09:50:08lqdev[m]ah, it's the touchbar ones.
09:50:17PMunchAraq, I have loads of weird keybindings. Caps is escape, unless held down, then its Ctrl. Tab is tab, unless held down, then it's Meta
09:50:22FromDiscord<mratsim> what you're on mac now?
09:50:30PMunchAnd of course my entire keyboard is Dvorak :P
09:50:44PMunchAraq, wait, you don't have a del key?
09:50:55FromDiscord<mratsim> Macs have no del keys
09:51:10FromDiscord<mratsim> you need to do Fn+backspace
09:51:22Araqmacs don't have shit and only survived because of massive stupid fanboism
09:51:24PMunchThat's just stupid..
09:51:45lqdev[m]Araq: so true
09:52:01FromDiscord<mratsim> my next laptop will probably be a Lenovo, their keyboard is really good, though their touchpad quality is going down
09:52:35PMunchmratsim, don't need a touchpad when you've got that excellent track-nub :)
09:52:53lqdev[m]paying thousands of dollars for a machine that'll last for maybe a year and then having apple tell you to fuck yourself and buy a new one is just ridiculous
09:52:55PMunchI barely ever use the touchpad on my Thinkpad
09:52:56FromDiscord<mratsim> maybe I'll learn how to use it, but I want a backup
09:53:12lqdev[m]and of course, their overall design weirdnesses
09:53:17PMunchI grew up using that, works well once you're used to it
09:53:44FromDiscord<mratsim> I've got my mac since 2015. Still good though the keyboard doesn't register all keypresses and it has been victim of the Retina Staingate
09:54:06FromDiscord<mratsim> I think 2020 would be a nice time to change, 5 years of service
09:54:55PMunchBut it is not without it's oddities either. Ctrl and Fn are swapped (so Fn is bottom left), but that can be fixed in the BIOS. But it also has a print screen key right between AltGr and right Ctrl, so I think I have about a thousand screenshots of random things..
09:55:04lqdev[m]I'm planning on buying a laptop at some point in the future, but it's not a priority
09:55:35FromDiscord<mratsim> I'm waiting for 2020 for the new CPUs with crypto primitives and deep learning primitives
09:55:53PMunchI mean, it's not impossible to rebind that as well though
09:57:24clyybberlqdev[m]: I'm also considering using illwill
10:01:33Araqmratsim: are you kidding or are these coming?
10:02:27clyybbernot kidding
10:02:37FromDiscord<mratsim> not kidding
10:02:51*CcxWrk quit (Ping timeout: 240 seconds)
10:02:56Araqwhat's a "deep learning primitive"?
10:04:06FromDiscord<mratsim> https://en.wikipedia.org/wiki/AVX-512#New_instructions_in_AVX-512_VNNI
10:04:15FromDiscord<mratsim> AVX512 VNNI (Vector Neural Instruction)
10:04:25FromDiscord<mratsim> they also have 8x8 int8 matmul
10:05:13FromDiscord<mratsim> and for crypto: IFMA (integer fused mul add) and GFNI (Galois Field instruction, an Elliptic Curve is a Galois Field)
10:05:44FromDiscord<mratsim> Thankfully Nim has alignment support now 😉
10:06:09FromDiscord<mratsim> aligned allocator would be nice as well (takes only 10 lines)
10:08:35AraqPRs are always welcome
10:09:04AraqI was against this feature because of the allocator issue
10:09:20Araqyes we can fix our allocator. but we also support -d:useMalloc
10:09:34FromDiscord<mratsim> useMalloc doesn't do alignment
10:09:40Araqexactly
10:09:59FromDiscord<Chiqqum_Ngbata> Link to detail on alignment support?
10:10:02Araqand it's not just 'malloc', alignment is still a niche feature
10:10:05FromDiscord<mratsim> Here is my aligned allocator: https://github.com/numforge/laser/blob/d1e6ae6106564bfb350d4e566261df97dbb578b3/laser/tensor/allocator.nim#L17-L29
10:10:26krux02https://linux.die.net/man/3/aligned_alloc
10:10:30krux02https://docs.microsoft.com/de-de/cpp/c-runtime-library/reference/aligned-malloc?view=vs-2019
10:11:02FromDiscord<mratsim> It's not "still" it's it "became"
10:11:15FromDiscord<mratsim> before SIMD didn't have unaligned loads and stores
10:11:29FromDiscord<mratsim> and even on some platforms you can't do unaligned load/stores
10:11:45Araqhttp://developer.download.nvidia.com/compute/cuda/2_3/toolkit/docs/online/group__CUDART__MEMORY_gc63ffd93e344b939d6399199d8b12fef.html
10:11:52Araq" The allocated memory is suitably aligned for any kind of variable. "
10:11:58Araqaka not under your control
10:12:15FromDiscord<mratsim> Comone, it's a GPU allocator
10:12:18Araqand mratsim, your 10 lines are terribly broken
10:12:21FromDiscord<mratsim> Come on*
10:12:52Araqmy point is, when we support something we better support it properly
10:13:07*ng0 joined #nim
10:13:10FromDiscord<mratsim> ah sorry my alignment code is here: https://github.com/numforge/laser/blob/master/laser/private/memory.nim#L8-L20
10:13:19FromDiscord<Chiqqum_Ngbata> Arm neon when
10:13:38Araqmratsim: ah ok.
10:14:19FromDiscord<mratsim> @Chiqqum_Ngbata Nim already supports Neon
10:14:49FromDiscord<mratsim> You wrap it like I do for x86 here: https://github.com/numforge/laser/blob/master/laser/simd.nim#L6
10:15:05FromDiscord<mratsim> One day i'll have the time to do that, ... in a year or so 😛
10:17:26Araq what about 'realloc'? does it remember the malloc'ed alignment?
10:17:35Araqdo we have a realloc that takes an alignment?
10:18:21FromDiscord<mratsim> C++ standard lib provides an aligned_alloc() proc that takes a buffer, an alignment and returns a pointer in the buffer with the proper alignment
10:18:21Araqso many problems, so little gain. A library solution would have been better than a language extension
10:18:44FromDiscord<mratsim> @narimiran, since you removed mapIt I think you should close this: https://github.com/nim-lang/Nim/issues/12639
10:18:47disbot^ `mapIt` can't be chained when used to generated func-s
10:18:47disbot^ snippet at https://play.nim-lang.org/#ix=21AL 😏
10:18:54clyybberPMunch: The only thing I'm really missing with kakoune is code folding
10:19:35krux02clyybber: kakoune has Nim support now?
10:20:02clyybberkrux02: It had nim highlighting for a long time, but with nim-lsp and kak-lsp it also has completion support and stuff
10:20:24krux02cool
10:22:00narimiran@mratsim the error message is still the same
10:22:22krux02lsp seems to pay off eventually for new editors to become possible.
10:22:41clyybberYeah, even though I think the protocol is kinda messy
10:23:07krux02I think the entire concept "a server" is bonkers.
10:23:22clyybberyeah
10:23:28*filcuc joined #nim
10:23:40AraqI think it's quite inevitable
10:24:17clyybberhmm, otoh how would you do completion without it?
10:25:56krux02I think a uniform API for shared libraries would have done the same as well. Yea maybe it would have made it harder to write backends in Java/C#/Javascipt/python but at the same time, I don't want those backends anyway.
10:26:20krux02anyway
10:26:27*u9898287 joined #nim
10:27:12krux02Araq: regarding your comment in my PR: "makeCString does not do the same thing..."
10:27:23Araqyes?
10:27:25krux02can you elaborate a bit more?
10:27:45Araqwhen I wrote the code I knew about makeCString and I wanted something else
10:27:56krux02yea ...
10:27:59krux02any example?
10:28:07Araqasm """
10:28:11Araq mov rax, 3
10:28:12Araq"""
10:28:25Araqneeds "" around every single line for GCC
10:28:34krux02should work with makeCString
10:28:34AraqNim doesn't require this
10:29:09krux02makeCString converts every newline in "\n"
10:29:16krux02works flawlessly
10:29:51PMunchclyybber code folding is a feature that I've barely ever used
10:29:58krux02you could argue that the generated inline assembly is less readable with "\n", but it is generated code anyway.
10:30:14Araqexactly, it's less readable
10:30:27AraqI mean ok
10:30:41Araqwe don't optimize the C code for readability anyway
10:30:43clyybberPMunch: Me neither, because kakoune doesn't have it :P But when working on compiler code or some other big nested code I really long it
10:31:01Araqbut why make it worse deliberately
10:31:31clyybberkrux02: Where does the "\n" end up?
10:31:41Araqwhat concerns me more is this though:
10:31:55krux02I did not want to have yet another variant of makeCString
10:31:59Araqare these actually read C string literals or is that a GCC extension
10:32:03Araq*real
10:32:13Araqthat happens to look like C string literals
10:32:28Araqfor example, we translate ? into \?
10:32:35Araqbecause of trigraphs
10:33:55krux02you can have the same arguments for other literals that come from tripleStrLit nodes.
10:34:24Araqhttps://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#AssemblerTemplate
10:35:13Araqread the "Special format strings" section
10:36:18Araqbut I suppose we don't want to transform % into %%
10:37:45Araqunless maybe it's inside a string literal inside the asm string literal
10:40:10Araqwhich is what your PR tried to fix... why do we need string literal support in the assembler? and if we support it do we want to translate % into %% for GCC? Does GCC even need this?
10:40:29Araqthe documentation isn't clear
10:41:50krux02well, % is translated into %, because % isn't a special character in string literals.
10:41:57u9898287Hi. Is there any convenience function to get a (little/big/native endian) byte representation of int64 in the standard library? Something similar to https://doc.rust-lang.org/std/primitive.i64.html#method.to_ne_bytes
10:42:21krux02that means %% in the nim asm stmt means the exact same thing as it means in the backed gcc arm statement.
10:42:49Araqkrux02, don't tell me, add it to your test case
10:43:17krux02Araq, I provided a test case with an example where a string literals inside the asm string is required.
10:44:00Araq .incbin "../testdata/string.txt"
10:44:05Araq^ no % in there
10:44:13krux02that is what you want
10:45:22Araqyes, because when you read it
10:45:23Araq> In addition to the tokens described by the input, output, and goto operands
10:45:36Araqit means inside the string literal there are "tokens"
10:45:55Araqand it's not clear where a string literal is a token of its own
10:46:09Araqand if that means % is a literal %
10:46:23Araqit's a reasonable asumption though, so test it please
10:46:58krux02pleas specify the behavior first.
10:48:45AraqI have "a%b" inside a string literal *inside* the asm string literal
10:49:00krux02you want `%` to be translated to `%`, or do yo want it to be escaped so that the gcc % feature can't be used?
10:49:00Araqand it should mean 'a followed by a single % followed by b'
10:49:45AraqI want to ensure that GCC is somewhat reasonable about string literals inside asm code
10:50:33Araqbut if it isn't, maybe we still want to be compatible with it
10:50:38tanehowdy, quick question: can I transform a `ptr T` and a length into an openArray[T]?
10:50:49Araqor maybe we'll say "screw this, use an .emit statement"
10:51:53clyybberNo, please. The asm statement should be as good as possible
10:57:08krux02Araq: I just tested it locally, a % inside string literals inside the asm statement is just a regular character, no special treatment.
10:58:36krux02So should I add a test that ensures that future Araq won't introduce escaping of % characters and therefore break string literals again?
10:58:45Araqkrux02, alright, very well. clyybber happy too?
10:59:03Araqkrux02, nah local testing was sufficient as far as I'm concerned
10:59:41clyybberclyybber happy
11:00:37Araqkrux02, now it's still a breaking change :P
11:00:52krux02not really
11:00:55Araqbecause previously asm was smart
11:00:58Araq"smart"
11:00:59Araq if x[j] in {'"', ':'}:
11:00:59Araq # don't modify the line if already in quotes or
11:00:59Araq # some clobber register list:
11:00:59Araq add(result, x); add(result, "\L")
11:01:05Araqso I can have both
11:01:06Araq"""
11:01:11Araq mov rax, 0
11:01:12Araq"""
11:01:15Araqas well as
11:01:17Araq"""
11:01:21Araq "mov rax, 0"
11:01:22Araq"""
11:01:27Araqand they used to be the same :P
11:01:34krux02yea
11:01:46clyybberIMO, we should only support
11:01:47krux02I wonder why
11:01:49clyybber"""
11:01:53clyybber mov rax, 0
11:01:54clyybber"""
11:01:56clyybberAnyways
11:02:18clyybberbbl
11:02:19*clyybber quit (Quit: WeeChat 2.6)
11:02:48krux02I don't think the double quotes inside the tripple quotes do have any example or test case.
11:03:07Araqkrux02, convenience. we started with requiring the "" around every line and then it became annoying and we supported both ways
11:03:35krux02interesting, that explains a lot.
11:03:43krux02but why did you require the ""?
11:04:09Araqnot sure, I think it worked like .emit
11:04:26Araqand so GCC required the "" everywhere
11:05:21krux02well, c++ has now the multiline string literals
11:12:07*Kevin5 quit (Quit: Leaving)
11:15:37FromGitter<mratsim> I use this to have multiline asm: https://github.com/mratsim/weave/blob/master/picasso/instrumentation/timers.nim#L46-L53
11:16:05FromGitter<mratsim> Nim multiline literals are very ugly
11:16:30*ng0 quit (Quit: Alexa, when is the end of world?)
11:17:25FromGitter<mratsim> either you align everything on the left, or you need to strip tabs/spaces but then it's a pain to control indentation
11:20:03*solitudesf quit (Ping timeout: 240 seconds)
11:32:59*Hideki_ joined #nim
11:36:04*tklohna joined #nim
11:36:56krux02Araq: I found some dead code in Nim that still uses the old asm statement syntax
11:37:05krux02lib/systm/arithm.nim
11:37:21krux02I don't know what to do with it. Should I delete it?
11:37:28krux02It is dead.
11:37:35*Hideki_ quit (Ping timeout: 265 seconds)
11:38:10*filcuc quit (Read error: Connection reset by peer)
11:39:03*rockcavera joined #nim
11:52:50*narimiran quit (Ping timeout: 240 seconds)
11:53:37*u9898287 quit (Quit: u9898287)
11:53:54*u9898287 joined #nim
11:56:37*u9898287 quit (Client Quit)
11:56:52*u9898287 joined #nim
12:07:45Araqand then what? everything is fine with your PR because nobody ever used the 'asm' keyword in Nim?
12:09:05FromGitter<alehander92> i think for those things
12:09:16FromGitter<alehander92> we can have some tooling
12:09:20Araqmratsim: that's your opinion, I prefer the asm """ where I don't have to put "" around every line
12:09:28FromGitter<alehander92> which can generate suggested autofixes
12:09:41FromGitter<alehander92> similarly to how we have old behavior switches
12:09:54Araqalehander92: ridiculous, tooling is not a substitute for professional bugfixes
12:09:54FromGitter<alehander92> i agree it might be pretty complicated in some cases
12:09:57FromGitter<alehander92> just an idea
12:10:13FromGitter<alehander92> well, i am talking more about stuff where
12:10:19FromGitter<alehander92> it should be possible to fix it mechanically
12:10:27Araqif you want to fix a bug, fix the bug, don't alter the behaviour at the same time because it's less work
12:10:38FromGitter<alehander92> simple syntax tweaks etc
12:11:29AraqNim version 1.2: we changed the asm statement because previously krux02 personally didn't use it
12:11:53*seni joined #nim
12:11:53Araqthat's not a development process.
12:12:13Araqit's utterly unprofessional and not acceptable.
12:13:55krux02sorry?
12:14:04krux02but the asm statement was broken?
12:14:24Araqso fix it. Without changing the behaviour.
12:14:32Araqit's possible.
12:14:36krux02if the asm statement would not have been broken, I would not be forced to fix it
12:14:48Araqyour fix breaks it.
12:15:18krux02you don't have a test for it.
12:16:00Araqyeah so I read the code and compared the solutions and figured out it's a breaking change.
12:16:14krux02If you would have a spec and a test, I would make an RFC. Without it, there is no defined behavior that is broken.
12:16:45Araqnope, wrong, not everything that is not covered by a spec can broken nillywilly
12:17:25krux02it not just not covered by a spec in is neither speced nor tested
12:17:37*nsf quit (Quit: WeeChat 2.6)
12:17:59krux02And the comment in the code is hard to anderstand as well.
12:18:14AraqI managed to understand it.
12:18:23krux02But I will add a lagacy fag for the compiler
12:18:29krux02you wrote it?
12:18:30Araqno, just fix the bug
12:18:39Araqor let it be
12:18:48Araqbut don't break somebody's code when you're at it
12:28:39FromGitter<Willyboar> RIP awesome-nim
12:31:18*endragor_ quit (Remote host closed the connection)
12:33:16FromDiscord<mratsim> well someone can fork and adopt it
12:34:22FromGitter<Willyboar> I believe awesome-nim must stay alive
12:46:50*Hideki_ joined #nim
12:51:10*livcd quit (*.net *.split)
12:51:11*bacterio quit (*.net *.split)
12:51:12*rayman22201 quit (*.net *.split)
12:51:12*lbart quit (*.net *.split)
12:51:12*uvegbot quit (*.net *.split)
12:51:12*nixfreak quit (*.net *.split)
12:51:14*JStoker quit (*.net *.split)
12:51:14*Amun_Ra quit (*.net *.split)
12:51:14*Sargun quit (*.net *.split)
12:51:14*zama quit (*.net *.split)
12:51:15*FromDiscord quit (*.net *.split)
12:51:15*SunDwarf quit (*.net *.split)
12:51:16*r4vi quit (*.net *.split)
12:51:16*odc quit (*.net *.split)
12:51:16*jken quit (*.net *.split)
12:51:16*EastByte quit (*.net *.split)
12:53:55*livcd joined #nim
12:53:55*bacterio joined #nim
12:53:55*rayman22201 joined #nim
12:53:55*lbart joined #nim
12:53:55*uvegbot joined #nim
12:53:55*nixfreak joined #nim
12:53:55*jken joined #nim
12:53:55*JStoker joined #nim
12:53:55*Amun_Ra joined #nim
12:53:55*Sargun joined #nim
12:53:55*zama joined #nim
12:53:55*FromDiscord joined #nim
12:53:55*SunDwarf joined #nim
12:53:55*odc joined #nim
12:53:55*r4vi joined #nim
12:53:55*EastByte joined #nim
12:54:51dom96Thank you Araq for enforcing our backwards compatibility promises.
12:56:52*FromDiscord quit (Read error: Connection reset by peer)
12:58:15*FromDiscord joined #nim
12:59:29*Hideki_ quit (Ping timeout: 268 seconds)
13:09:07*abm joined #nim
13:15:41*u9898287 quit (Quit: u9898287)
13:19:48FromDiscord<kodkuce> vscode users, does it troll you, i am constantly getting unused warnings even i am using it ?
13:24:58Araqdunno, mine is always silent
13:27:33PMunchHmm, when I'm building my so with --threads:on it segfaults randomly in "lowGauge"
13:27:45PMunchFrom lib/system/avltree.nim
13:31:10*tklohna quit (Ping timeout: 265 seconds)
13:31:24PMunchThe backtrace from gdb: http://ix.io/21Bh
13:31:25disbot^ play at https://play.nim-lang.org/#ix=21Bh 😏
13:31:39PMunchI'm seriously considering to kick this bot..
13:31:46FromGitter<alehander92> i like it
13:31:50FromGitter<alehander92> what's the problem with it
13:31:57PMunchClick the link it created
13:32:04PMunchDoes that look like Nim to you?
13:32:09FromGitter<alehander92> well, it should just improve the nim detection
13:32:14Zevv"that is a bug" was the last thing I heard about that
13:32:16PMunchYeah..
13:32:17Zevvwell FIX IT
13:32:33PMunchI have nothing against the concept of the bot
13:32:35Zevvif compiles(content): post_link()
13:32:36FromGitter<alehander92> if only we lived in a open source world
13:32:42PMunchBut the current implementation is just annoying
13:32:56Zevvconsidered "/ignore disbot" ?
13:33:19FromGitter<alehander92> exactly
13:35:11FromDiscord<mratsim> just ping @disruptek
13:35:18dom96I'd like it to post links to GitHub issues, that would be useful :)
13:35:47FromDiscord<mratsim> Gitter already does that for you though
13:36:10FromDiscord<mratsim> If it could post a link when someone adds a RFC also
13:36:39dom96Yeah, but Gitter is a slow and buggy web app that as far as I can tell hasn't received an update in years
13:38:17shashlickHard to detect Nim cause most pastes here will be for broken code
13:38:43PMunchCompiled with --debugger:native and got this: http://ix.io/21Bk
13:38:43disbot^ play at https://play.nim-lang.org/#ix=21Bk 😏
13:38:54PMunchshashlick, well it can start by just converting /nim links
13:40:12PMunchAnd support a command like !play that converts the last ix.io link to a plaground link
13:40:19PMunchSo that it can be triggered manually
13:42:34PMunchHmm, looking at the C sources it appears to happen before anything in the body of the Nim procedure
13:43:14Araqwith --threads:on you enable thread local storage
13:43:21PMunchIt's from setting up colonenv_ = (tyObject_Env_optionsutilsdotnim___UpiYziCAz9b9bakYPnH5SO2A*) newObj((&NTI__o9alMI9a4uD9aSMcjteftxpsg_), sizeof(tyObject_Env_optionsutilsdotnim___UpiYziCAz9b9bakYPnH5SO2A));
13:43:27Araqtry also --tlsEmulation:on
13:43:59PMunchHmm, I use setupForeignThreadGc, should I remove that then?
13:44:00Araqbut I gave up on this, compile via --gc:boehm until --gc:arc is ready
13:44:10PMunch--gc:boehm hangs randomly
13:44:19*tklohna joined #nim
13:44:28Araqlovely
13:44:29PMunchAnd throws errors that it's collecting from unknown threads or something like that
13:45:37dom96PMunch: PM'd you
13:46:51*dddddd joined #nim
13:51:32*abm quit (Ping timeout: 276 seconds)
13:53:59FromDiscord<mratsim> by the way, can we have tlsEmulation on by default on OSX, and off by default on iOS
13:54:01disruptekjust ignore the bot if bothers you. what's the problem? if you want it to ignore you, i can add that feature.
13:54:28FromDiscord<mratsim> iirc it was off due to iOS but we shouldn't penalize Mac users
13:55:12FromDiscord<mratsim> @disruptek, the issue is that the bot doesn't give Nim code
13:55:34disruptekit doesn't know how to turn non-nim into nim; sorry.
13:56:51disruptekwe could use a bayes filter to identify nim that might not be syntactically correct and then ignore anything that isn't nimish.
13:57:09dom96Don't worry, I'll implement banning functionality into NimBot soon, we can have a bot war
13:57:38disrupteki'll just turn it off.
13:58:32PMunchHaha
13:58:58disruptekit only needs to work for me; i thought i was being helpful. go figure.
13:59:26PMunchAraq, with tlsEmulation on and no setupForeignThreadGC I get this from gdb: nimFrame (s=0x7ffff66e94d0) at /home/peter/.choosenim/toolchains/nim-1.0.2/lib/system/excpt.nim:464
13:59:30PMunchSo it crashes somewhere else..
14:00:07PMunchdisruptek, as I said I don't dislike the idea. It's just that I use ix for anything longer than a line, including logs, outputs, and various other things
14:00:23disruptekso add a /+ to the end of your url or type /ignore disbot
14:00:27PMunchSo it just creates a bunch of playground links for something that isn't playground related at all :P
14:00:51disruptekanyway, i'll just message me now, and not the channel.
14:00:55FromDiscord<mratsim> @disruptek, I'm not criticizing, but
14:01:09PMunchI really want to see a !play function though
14:01:19FromDiscord<mratsim> I guess this is a special incident and PMunch should be banned instead to paste non-nim code
14:01:19PMunchThat way we could let new users know of the playground easily
14:01:31PMunchmratsim :(
14:01:37FromDiscord<mratsim> your fault 😛
14:01:52FromDiscord<mratsim> I thought you had proper Nim code that the bot translated to giberrish
14:02:30*abm joined #nim
14:03:16disruptekdoes this trigger you?
14:03:55disruptekhttps://github.com/nim-lang/Nim/issues/12594
14:03:57disbot^ Compiler reports type as varargs[untyped] when it should be a string
14:03:59disbot^ snippet at https://play.nim-lang.org/#ix=20PW 😏
14:05:21FromDiscord<mratsim> I'm not triggered, I just translated @dom96 frustration
14:05:32FromDiscord<mratsim> and then realized than it was pMunch snippets that was not Nim code
14:05:38FromDiscord<mratsim> personally I don't care
14:06:04dom96Just to be clear, I was kidding. Personally I don't mind those links.
14:06:12disruptekyeah, but if it bothers people, i don't think it needs to exist.
14:06:37FromDiscord<mratsim> so actually no one is bothered and we made a mountain out of a anthill
14:06:48FromDiscord<mratsim> you're in the clear 😉
14:07:01disruptekwell, i should add !play and a bayes filter.
14:07:09dom96ooh, yay, github issue titles. I really like that.
14:07:21dom96Can we get links to GitHub when writing #123 as well?
14:07:29disruptekwe /could/
14:07:36dom96I can see that getting annoying but it's always such a pain to look up the issue number
14:07:47disrupteki was thinking PRs could indicate CI status.
14:08:03*abm quit (Ping timeout: 240 seconds)
14:08:28disruptekbut you need to have the issue number to type /#12345/
14:10:16krux02ok
14:10:28krux02sorry, wrong channel
14:10:37disruptekmaybe you can just ask it to query for issues, or your last issue, or to search your issues.
14:13:25*abm joined #nim
14:13:52shashlickAsking is too much work
14:14:00disruptektell me about #12639 because it sucks
14:14:03disbot^ `mapIt` can't be chained when used to generated func-s
14:14:03disbot^ snippet at https://play.nim-lang.org/#ix=21Bt 😏
14:15:35disruptekdisbot: from now on, i want you to just /read shashlick's mind/ instead.
14:15:36disboton it. 👍
14:15:51disruptekyou can do that?
14:15:59disruptekdisbot: are you reading my mind right now?
14:16:00disbotyep. 😊
14:16:02shashlickAI FTW
14:16:04disruptekholy shit.
14:17:41shashlickMine all the past chat history and come up with random suggestions when people have issues - that will be fun
14:18:50disruptekit'd be cool to have to pluck runnableExamples: out of the codebase on demand.
14:19:03disruptekie provide them as playground links.
14:19:33disruptek!runnable tables.take
14:19:48shashlickJust a link to docs itself is a good start
14:20:56shashlickHow do I change dir - !doc setCurrentDir
14:21:26disruptekthat produces a link? or the ## comment?
14:21:42shashlickLink would be good
14:21:55shashlickToo much on irc for doc comments
14:22:05krux02disruptek: the mapIt failing is probably related to all the `compiles` statements in there
14:22:16*njoseph quit (Ping timeout: 264 seconds)
14:22:24disruptekkrux02: it was just a test of the bot. 😉
14:22:55shashlickLink to github would have been better
14:23:11disruptekactually, i think it's failing because it's a top-level loop with a var inside it, most likely. but i'm guessing.
14:23:31disruptekthere's a different bug report for that.
14:24:02disruptekshashlick: you're right, i'll fix that.
14:24:18*njoseph joined #nim
14:27:58*solitudesf joined #nim
14:30:35*nsf joined #nim
14:31:24*krux02 quit (Remote host closed the connection)
14:32:51*krux02 joined #nim
14:34:33PMunchHmm, removing everything from optionsutils made it get further along
14:34:38dom96disruptek train it on our IRC logs and make it answer questions :D
14:35:48disruptekwhere do you think i came from?
14:35:57disruptekmy middle name is Markhov.
14:37:48disruptekkrux02: this one: #10938
14:37:51disbothttps://github.com/nim-lang/Nim/issues/10938
14:37:53disbot^ [Nimvm] Set/string/seq inside loop not initialized properly
14:37:55disbot^ snippet at https://play.nim-lang.org/#ix=21BB 😏
14:41:09FromDiscord<kodkuce> hmm how you guys store conf files, this kinda sux like too much writing
14:41:10FromDiscord<kodkuce> http://ix.io/21BC
14:41:51FromDiscord<kodkuce> like now i have pg connection string that will be like 5 newlines
14:42:43*krux02 quit (Remote host closed the connection)
14:42:46FromDiscord<kodkuce> hmm meybe i should not split in arrays or hmm duno
14:47:05PMunchHmm, interesting. I compiled my program with --genscript and made sure that the call to "setupForeignThreadGC" gets called before the colonenv_ = (tyObject_Env_optionsutilsdotnim___UpiYziCAz9b9bakYPnH5SO2A*) newObj((&NTI__o9alMI9a4uD9aSMcjteftxpsg_), sizeof(tyObject_Env_optionsutilsdotnim___UpiYziCAz9b9bakYPnH5SO2A));┃ (*colonenv_).Sup.m_type = (&NTI__UpiYziCAz9b9bakYPnH5SO2A_);
14:47:32PMunchThat gives me the same as removing the usage of optionsutils in my code
14:47:44PMunchSo what is it in optionsutils that creates a colonenv?
14:48:02PMunchIs it a closure thing?
14:48:50PMunchBy the way --genscript isn't perfect
14:49:21PMunchIt uses a different name than what it would normally be compiled to. And my --passC:"-I../.." obviously doesn't work from the cache directory
14:51:47PMunchAha, so it appears you can't use closures with "setupForeignThreadGC" because it will run newObj before it
15:03:16*a_b_m joined #nim
15:06:26*abm quit (Ping timeout: 240 seconds)
15:09:06*floppydh quit (Quit: WeeChat 2.6)
15:13:03PMunchhttps://github.com/nim-lang/Nim/issues/12659
15:16:19FromGitter<deech> Am I correct that strong spaces are no longer a thing in Nim?
15:19:13dom96zedeus someone posted your project on HN (maybe it's you?) in any case, if it doesn't make it to the front page you might want to post it as a Shown HN (https://news.ycombinator.com/item?id=21535453).
15:19:20dom96deech: you're correct
15:19:30zedeusoh dear
15:19:43dom96deech: FWIW they were never enabled by default
15:21:14*PMunch quit (Quit: Leaving)
15:22:04zedeusI've been holding off sharing it in places like hn till I add the account system (following etc), first impressions matter
15:22:36FromDiscord<kodkuce> Repository mirroring has been paused due to too many failed attempts, and can be resumed by a project maintainer.
15:22:36FromDiscord<kodkuce> Last successful update 1 year ago - GITLAB if anyone gives a crap
15:22:53rockcaveraI need to delete equal entries. Without checking when adding entries to a sequence the program runs at 0.5s. Using "notin seq" check before adding, runs at 29s. Using the sets package, runs in 62s. Any ideas for improving performance?
15:23:18*Vladar quit (Quit: Leaving)
15:23:18rockcaveraI'm adding integers
15:35:14*tklohna quit (Ping timeout: 240 seconds)
15:38:10*a_b_m quit (Quit: Leaving)
15:40:10disruptekuse a table.
15:40:57*gangstacat quit (Ping timeout: 250 seconds)
15:42:30*narimiran joined #nim
15:42:35rockcaveradisruptek tables?
15:42:40disrupteksure.
15:43:55rockcaveraI'll try it out, but I believe it won't be faster, since it looks like sets.
15:44:47disruptekdon't add your entries, []= them.
15:46:44rockcaverayes
15:47:17rockcaveraif it has the same perl hash performance I am saved.
15:47:32*gangstacat joined #nim
15:54:20rockcaveradisruptek, did not work. runs at 148s
15:54:52disruptekshare your code?
15:54:53rockcaveraI used table[ENTRY] = 1
15:55:21disruptekwhat's the distribution of dupes? is the order important?
15:55:35disruptekcan you, eg. sort the list and weed dupes out later?
15:55:48rockcaveraorder not important
15:58:41FromGitter<nixfreakz_twitter> Are there any tutorials on how to create a blog using nim / jester ?
15:59:36FromDiscord<mratsim> AFAIK someone wrote a static compiler, you just had to feed markdown files
15:59:42FromDiscord<mratsim> static page compiler*
15:59:45*tklohna joined #nim
15:59:50FromDiscord<mratsim> nimble.directory might help to find the repo
16:00:27*seni quit (Quit: Leaving)
16:00:31FromDiscord<mratsim> 3 repos: https://nimble.directory/search?query=blog
16:03:04FromGitter<nixfreakz_twitter> oh I was thinking from scratch but this is cool too , thanks
16:07:34*tklohna quit (Ping timeout: 268 seconds)
16:07:57*tklohna joined #nim
16:13:58*clyybber joined #nim
16:17:14*brainproxy joined #nim
16:21:17*sagax quit (Remote host closed the connection)
16:30:52FromDiscord<itmuckel> Hey guys! Can I overload the assignment operator? I have a type `Rotation` that in fact is just a typedef for float and I want assignments to it automatically be limited to the [0, 360) range. So `val rotation: Rotation = 500` should assign 140 to `rotation`.
16:30:52FromDiscord<itmuckel> I already looked for the source code of `Natural`, but couldn't find it. Any tips? 🙂
16:32:17disruptekitmuckel: use a range type for Rotation.
16:34:44FromGitter<mratsim> you can overload with proc `=`(dst: var Rotation, src: Rotation)
16:35:21FromGitter<mratsim> but test well because overloading = is not well tested.
16:44:43FromDiscord<itmuckel> Ah thx, range type is exactly what I needed. Theoretically it's wrong to have 0.0 and 360.0 assignable, but hey, better than nothing.
16:45:42FromDiscord<itmuckel> Oh, and I don't want an error to happen when a higher value is assigned. I just want it to be clamped.
16:45:55disruptekwell, use the overload, then.
16:45:59FromDiscord<itmuckel> Oh, and I don't want an error to happen when a bigger value is assigned. I just want it to be clamped.
16:47:48disruptekor a template, i guess.
16:47:48FromDiscord<itmuckel> Hmmmm
16:47:48FromDiscord<itmuckel> proc `=`(dst: var Rotation, src: Rotation) =
16:47:48FromDiscord<itmuckel> dst = src mod 360.0
16:47:49FromDiscord<itmuckel>
16:47:49FromDiscord<itmuckel> Gives me
16:47:49FromDiscord<itmuckel> Error: signature for '=' must be
16:47:49FromDiscord<itmuckel> proc[T: object](x: var T; y: T)
16:48:23*FromGitter quit (Remote host closed the connection)
16:48:41*FromGitter joined #nim
16:48:58*brainproxy quit (Quit: WeeChat 2.6)
16:49:37Zevvwhat is your Rotation, an object?
16:50:02disruptekabout 420°.
16:50:08Zevvgo away disruptek
16:50:09FromDiscord<itmuckel> Just a type definition:
16:50:09FromDiscord<itmuckel> type Rotation* = float
16:50:20disrupteklol
16:50:30Zevvitmuckel: [T: object]
16:51:01Zevvhttps://nim-lang.github.io/Nim/manual.html#generics-type-classes
16:51:22ZevvThe generic `=` is matched against a type class which restricts it to objects
16:52:23Zevvdoes that make sense?
16:54:21FromDiscord<mratsim> you need type Rotation = object and on a second line data: float
16:54:27*tklohna quit (Ping timeout: 246 seconds)
16:54:43FromDiscord<mratsim> otherwise you will override the assignment for floats too and all hell breaks lose
16:54:55FromDiscord<mratsim> I'm very annoyed by Python lack of relative imports
16:56:14FromDiscord<mratsim> I can't believe people cry about Nim imports when you can't do relative import in python without going through the package blessing ceremony
17:00:21*uu91 quit (Read error: Connection reset by peer)
17:00:37*uu91 joined #nim
17:09:49FromDiscord<itmuckel> Hm, making the Rotation an object and giving it a field is exactly what I didn't want. A one field object feels overengineered. @Zevv So to use the generic = operator I need an object first? 🤔
17:10:13disruptekit's the only way to overload the assignment.
17:10:38disruptekwhy can't you use the range type with a template that just clamps the value?
17:11:59clyybberIMO using floats is a bad idea most of the time.
17:13:46clyybberEspecially in this case, since you don't want your rotation to be less precise when the player is looking at this or that direction
17:14:44disruptekif there's one thing i hate, it's sub-degree precision jumps in my rotation due to float rounding.
17:16:33Zevvyeah, but it was not about the float, was it.
17:17:52*clyybber1 joined #nim
17:18:19clyybber1it is great that the battery light turns red 5 seconds before power goes out..
17:18:52disruptekyou mean the impending corruption lamp? the ICL?
17:19:14*clyybber quit (Ping timeout: 240 seconds)
17:20:55*lqdev joined #nim
17:22:40ZevvThe 'oh my battery is almost empty, let me switch on a 10mA LED for 100% of the time, that would probably help"
17:23:03Zevvin the age where CPU's are more then abundant, is it *too* much to ask to at least let it flash at a 1% puls width
17:25:54*ng0 joined #nim
17:26:41*sentreen_ quit (Ping timeout: 250 seconds)
17:28:14*nsf quit (Quit: WeeChat 2.6)
17:28:50*Kaivo quit (Quit: WeeChat 2.6)
17:35:22*solitudesf quit (Ping timeout: 252 seconds)
17:39:55*sentreen_ joined #nim
17:40:42lqdevPMunch: I'm having a bit of a problem with nimlsp, I'm importing a local file `euwren/private/wren.nim` through `import euwren/private/wren`, but nimlsp screams at me saying that the file doesn't exist
17:41:17FromDiscord<kodkuce> hmm does vscode show changes even if i added that file to .gitignore
17:41:41FromDiscord<kodkuce> git status shows too modified: conf.json
17:42:05FromDiscord<kodkuce> hmm do i need to refresh git or something
17:43:35lqdev@kodkuce you need to delete the file from the repository, commit, and then it will not track it
17:43:48lqdevs/commit/commit that change/
17:45:08FromDiscord<kodkuce> hmm but what if i want it in repo i just want to ignore pushing changes to it
17:46:33lqdevthen it should work
17:46:48lqdevhmm, http://ix.io/21Cp this is the output of nimlsp
17:46:51FromDiscord<kodkuce> git rm -r --cached .
17:47:08FromDiscord<kodkuce> deleted: conf.json
17:47:08FromDiscord<kodkuce> deleted: reg-auth_server/TestREST.http
17:47:17FromDiscord<kodkuce> hope this is just localy 🙂
17:50:02FromDiscord<kodkuce> ok i think its working
17:51:11FromDiscord<kodkuce> or not i deleted it form online repo too 😦
17:51:50clyybber1kodkuce: Well, having it .gitignore means that you don't want it in the online repo usually
17:52:48*solitudesf joined #nim
17:54:50FromDiscord<kodkuce> i pushed a tamplate for config, but now i want to put my password and stuff in it so i can test localy
17:55:42FromDiscord<kodkuce> but i dont want to have to evry time manualy add evry file cuz i cant do git add . cuz it will push my passwords online
17:56:04FromDiscord<kodkuce> i tryed to make gitignore ignores intself but that dident work xD
17:59:05FromDiscord<mratsim> Nim objects are very lightweight though @itmuckel, there is no ceremony to use them unlike getters and setters in other languages
17:59:22FromDiscord<mratsim> also I don't think you want to break your normal floats
17:59:49FromDiscord<mratsim> type Rotation = float will just give an aliased name to the float type
18:02:45FromDiscord<itmuckel> Okay... 😦
18:02:47FromGitter<nixfreakz_twitter> I really like how you can switch nim versions on the fly with choosenim
18:03:28FromDiscord<itmuckel> Regarding ints for degree values: Is that enough precision?
18:03:47disruptekWHO'S ASKIN'?
18:04:15FromDiscord<itmuckel> For example if I want to rotate a huge object, wouldn't it stutter when I use ints?
18:04:32clyybber1Floats are not magically continuous
18:04:35clyybber1They are discrete too
18:04:38FromDiscord<mratsim> int32 have a range of -2 billions to 2 billions
18:04:45clyybber1You can just multiply your int in your mind,
18:04:50FromDiscord<mratsim> int64 have a range of a lot
18:04:53FromDiscord<itmuckel> Aaaaaaaah yeah!
18:04:56clyybber1So you use 36000 to mean 360degrees
18:05:02clyybber1or even bigger
18:05:20disrupteki'm losing my sanity over here. so many numbers...
18:05:27FromDiscord<itmuckel> Yeah of course, didn't thought about that 🤦‍♂️
18:05:40FromDiscord<mratsim> I'm working with 2^256 numbers in crypto ....
18:05:46disruptekNOOOOO
18:05:55disruptek🤯
18:06:00FromDiscord<mratsim> "more than the number of atoms of the universe" TM
18:07:19FromDiscord<itmuckel> proc `=`(dst: var Rotation, src: int) =
18:07:19FromDiscord<itmuckel> dst.value = src mod 36000
18:07:19FromDiscord<itmuckel>
18:07:19FromDiscord<itmuckel> Wait, this isn't possible? I thought I could overload =?
18:07:22clyybber1perfect for wowing people: comparing possible states with an amount of objects
18:07:34FromDiscord<itmuckel> I need to go now, will check the answers later 😦
18:07:53clyybber1itmuckel: `=`(dst: var Rotation, src: Rotation) =
18:07:59clyybber1...
18:08:00FromDiscord<mratsim> yep, it works very well to sell go (the board game) or Magic (the card game)
18:08:05clyybber1But you probably want a converter
18:08:38FromDiscord<itmuckel> I want to assign an int to a Rotation and have it converted automatically, yes.
18:08:48FromDiscord<itmuckel> 🙂
18:09:02FromDiscord<mratsim> you need to write the = overload and a converter
18:09:09clyybber1converter toRotation(v: int) = Rotation(value: v)
18:09:38clyybber1You don't need the `=` actually.
18:09:42FromDiscord<mratsim> but if you want a converter, you might as well forego the = overload and put the modulo in the converter
18:10:08clyybber1and the converter should probably do `Rotation(value: v mod 360)` instead
18:11:09clyybber1BUT, if you want sub degree precision you should do something like `Rotation(value: v mod (360 * precision))` instead
18:11:40FromDiscord<mratsim> I suggest you add a warning in the form of when not defined(release): static: echo "Implicitly converting here, that might help if you have a Heisenbug".
18:12:05FromDiscord<mratsim> In my experience, converter bugs were the worst to investigate
18:12:17clyybber1converter bugs dont exist.
18:12:19FromDiscord<mratsim> I have diligently removed them from my codebases
18:12:22clyybber1at least I don't see them
18:12:23clyybber1bdummmts
18:13:04FromDiscord<mratsim> converter bugs are bugs when you think a proc is supposed to do something but actually your type was convrted and another overload was called
18:13:29FromDiscord<mratsim> Happened to me with "$" which is meh
18:13:48disruptekyeah, i'm 👎 on lazy uses of converters. you really gotta be careful with them.
18:14:44FromDiscord<mratsim> I prefer to restrict them to literals with proc foo(x: int{lit}): Bar
18:14:51*sentreen_ quit (Ping timeout: 240 seconds)
18:14:59FromDiscord<mratsim> and have a separate "lenientFoo" module
18:19:43*PMunch joined #nim
18:20:20clyybber1mratsim: Regarding operator precedence..
18:20:51clyybber1Wydt about making operators that start with `.` a higher precedence?
18:21:01*MrAxilus quit (Read error: Connection reset by peer)
18:21:04*Demos[m] quit (Read error: Connection reset by peer)
18:21:04*Manny8888 quit (Read error: Connection reset by peer)
18:21:04*Connor[m] quit (Read error: Connection reset by peer)
18:21:05*leorize[m] quit (Read error: Connection reset by peer)
18:21:05*LEdoian[m] quit (Read error: Connection reset by peer)
18:21:09*lqdev[m] quit (Remote host closed the connection)
18:21:10*salotz[m] quit (Read error: Connection reset by peer)
18:21:10*meff[m] quit (Write error: Connection reset by peer)
18:21:10*Asbrn[m] quit (Remote host closed the connection)
18:21:14*yglukhov[m] quit (Write error: Connection reset by peer)
18:21:15*planetis[m] quit (Remote host closed the connection)
18:21:17*lasso[m] quit (Remote host closed the connection)
18:21:18*k0mpjut0r quit (Read error: Connection reset by peer)
18:21:21*TheManiac[m] quit (Read error: Connection reset by peer)
18:21:21*zielmicha[m]1 quit (Read error: Connection reset by peer)
18:21:22*skrylar[m] quit (Read error: Connection reset by peer)
18:21:22*spymasterd[m] quit (Read error: Connection reset by peer)
18:21:24*narimiran[m] quit (Read error: Connection reset by peer)
18:21:27*M948e5[m] quit (Write error: Connection reset by peer)
18:21:27*d-nice2[m] quit (Write error: Connection reset by peer)
18:21:28*GitterIntegratio quit (Write error: Connection reset by peer)
18:21:29*Balu[m] quit (Remote host closed the connection)
18:21:29*nc-x[m] quit (Remote host closed the connection)
18:21:29*joachimschmidt55 quit (Write error: Connection reset by peer)
18:21:32*macsek1911[m] quit (Read error: Connection reset by peer)
18:21:32*pigmej quit (Write error: Connection reset by peer)
18:21:32*Miguelngel[m] quit (Remote host closed the connection)
18:21:32*nergal[m] quit (Write error: Connection reset by peer)
18:21:33*shashlick[m] quit (Remote host closed the connection)
18:21:33*isaac[m]1 quit (Write error: Connection reset by peer)
18:21:33*xomachine[m] quit (Read error: Connection reset by peer)
18:21:38*BitPuffin quit (Remote host closed the connection)
18:21:53clyybber1And having operators that start with `..` or start and end with `.` have the same precedence as they do now
18:24:15clyybber1s/or.*$//
18:24:33FromDiscord<mratsim> that would break too much code
18:24:43clyybber1do you really think?
18:25:05FromDiscord<mratsim> well, we would have to ask everyone "does that break your code"
18:25:14FromDiscord<mratsim> including companies that are using Nim in secret
18:25:42clyybber1Or we provide a backwards compatibility switch :)
18:26:12FromDiscord<treeform> so choosenim downloads and compiles nim, is there a "choosenim" that just downloads binary package so it's faster?
18:26:56FromDiscord<treeform> maybe apt-get package with a special repo?
18:27:05FromDiscord<treeform> for ubuntu
18:27:21FromDiscord<mratsim> I'll let you fight with dom96 on that, I'm all for evolving the standard libraries as long as we manage people expectation but changing precedence rules of the core language can't be motivated by just Arraymancer
18:28:22FromDiscord<treeform> oh there is https://launchpad.net/ubuntu/+source/nim/1.0.2-1 I different site did not have it.
18:28:28clyybber1mratsim: I'm motivated by making .? for option method chaining possible
18:28:48clyybber1mratsim: And similarily some .< thing for outplace method chaining
18:28:49*sentreen_ joined #nim
18:29:12disruptekinteresting.
18:29:16FromDiscord<mratsim> that sounds reasonable then
18:29:29FromDiscord<mratsim> but we might need something like a 2 years deprecation period
18:29:42FromDiscord<mratsim> actually I don't know how to do the transition
18:30:13clyybber1well, do it for the next version and provide a switch?
18:30:19FromDiscord<mratsim> for method chaining I was annoyed by the precedence of "->"
18:30:27FromDiscord<mratsim> I had to do "^->"
18:30:42FromDiscord<mratsim> I think you need a RFC
18:31:02FromDiscord<mratsim> cost/benefits, leave it for a reasonable time
18:31:11FromDiscord<mratsim> start with a opt-in switch
18:31:14FromDiscord<mratsim> then opt-out
18:31:25clyybber1Its not hard to fix breakage caused by it really
18:31:29*rockcavera quit (Remote host closed the connection)
18:31:38FromDiscord<mratsim> yes but it's about expectations
18:32:17FromDiscord<mratsim> "isDigit" removal broke my workflow, "queues" removal broke NimYAML as well. and then I need to context switch, even if it's easy
18:32:24clyybber1s/([[:alnum:]])(.[[:punct:]])/\1.\2/g
18:32:44clyybber1mratsim: I think we need something like a breakage preprocessor
18:33:15clyybber1that gets applied conditionally to every file before its read by the compiler.
18:33:24FromDiscord<mratsim> anyway, this should start with a RFC
18:33:34clyybber1I start with the implementation, fite me
18:34:09dom96clyybber1: mratsim: context on what I'm being fought on? Is it `.` precedence for operators?
18:34:17madpropshow can i continue a specific block? continue name doesn't work
18:34:21FromDiscord<mratsim> not, backward compat
18:34:24FromDiscord<mratsim> no*
18:34:36dom96treeform: shashlick did some awesome work for that, not sure what the status is with roll out for that, we might only have Windows binaries for now IIRC
18:34:58FromDiscord<mratsim> changing the precedence rule of the single dot so that it has the same precedence as the operator that follows
18:35:02clyybber1We still aren't clear about if we can break 1.x or not
18:35:11disrupteki heard you can break 1.x.
18:35:28clyybber1dom96 would like to interject for a moment :)
18:36:43clyybber1but if we don't break 1.x we should really make devel 2.0
18:36:57FromDiscord<mratsim> My stance is: we can deprecate, then remove stuff in the standard library for v1.x and we keep compat for v1.0.x
18:36:57FromDiscord<mratsim> Core language: only experimental stuff can break in v1.x
18:36:58clyybber1and introduce 1.x branches
18:37:31dom96pretty sure precedence rules aren't a stdlib issue, no?
18:37:39FromDiscord<mratsim> yes
18:37:47FromDiscord<mratsim> precedence rules are core language
18:38:04FromDiscord<mratsim> hence why I don't want to change them on a whim
18:38:11dom96stdlib is covered under the backwards compatibility guarantees
18:38:15FromDiscord<treeform> dom96, thanks ill look into it.
18:38:25dom96we can deprecate stuff, but not remove
18:38:41FromDiscord<mratsim> that's new
18:38:58clyybber1Also stdlib is kind of backwards compatible now.
18:39:05clyybber1With {.since.}
18:39:31FromDiscord<mratsim> otherwise we might need something like the Rust multiversioning
18:40:59FromDiscord<mratsim> anyway, I'll try finishing my multithreading runtime now. I keep on discovering stuff that needs to be revamped and I didn't even finish :/
18:41:18clyybber1mratsim: The original C implementation has been rewritten by now, right?
18:41:38FromDiscord<mratsim> almost
18:41:54FromDiscord<mratsim> but now I have the following items on my TODO:
18:43:15clyybber1So you are finished? :p
18:43:21dom96mratsim: what's new? being able to deprecated stuff?
18:43:42dom96*deprecate
18:43:57*nsf joined #nim
18:44:15clyybber1dom96: I'd still like to hear your opinion on how one would go about changing the precedence of operators starting with `.` (but not operators starting with `..`)
18:44:27FromDiscord<mratsim> - refactoring the bitsets to support more than 32 CPUs, while having efficient random number generation support or efficient uncompression into a stack array
18:44:27FromDiscord<mratsim> - Removing globals because it's very bad for unit-testing
18:44:27FromDiscord<mratsim> - Implementing a thread-safe object pool
18:44:28FromDiscord<mratsim> - Replacing the scheduler by a finite state machine to clarify the transitions and improve on formal verifiability
18:44:28FromDiscord<mratsim> - Bonus: hardened mode to make sure we wipe task memory when used with sensitive data.
18:44:30clyybber1Should it be done in 1.x or 2.x?
18:44:50FromDiscord<mratsim> v2 for me
18:44:54*PMunch quit (Remote host closed the connection)
18:44:57FromDiscord<mratsim> and RFC
18:45:04clyybber1mratsim: Oh, I was referring to the precedence thing
18:45:27*NimBot joined #nim
18:45:41dom96clyybber1: likely v2, unless you can prove that it doesn't break much code
18:45:49clyybber1mratsim: Do you need something from the compiler for capturing environments in tasks?
18:45:55FromDiscord<mratsim> yes
18:46:04clyybber1dom96: Ok, thank you for chiming in :)
18:46:07FromDiscord<mratsim> I didn't have time to look into liftLocal
18:46:56FromDiscord<mratsim> but a way to serialize closures would be nice or just returning the non-local symbols captured in the environment
18:47:24FromDiscord<mratsim> this way I can first ensure that they are thread-safe/supportsCopyMem, and then package them
18:48:07FromDiscord<mratsim> I could also reimplement the OpenMP `||` magic in my runtime this way
18:48:17FromDiscord<mratsim> well something equivalent
18:48:19clyybber1that would indeed be nice
18:51:24shashlick@dom96 @treeform latest release installs windows binaries, latest head installs Linux binaries too
18:53:07*cgfuh joined #nim
18:53:18shashlickIn theory, if we tag it, Travis should build and post binaries
18:53:33*krux02 joined #nim
18:58:04FromDiscord<treeform> shashlick, do you have a command for that? I want this for the "github actions" which run on `ubuntu-16.04`
18:58:50FromDiscord<treeform> shashlick, the compile + install takes like 6 minutes it be nice it was faster by just download the pre build bins.
18:59:09FromDiscord<treeform> shashlick, ubunut has a nim 1.0.2 but its for a newer version
19:01:24clyybber1uwunut
19:04:42shashlickWe haven't released a new version of choosenim yet
19:05:01shashlickI can send you a test binary if you want
19:05:54shashlickThere isn't a special command, standard command will do that
19:08:22FromDiscord<treeform> shashlick, thanks i'll just wait I guess. I am already using choose nim to install so it should just work after you do.
19:09:09dom96I'll see about tagging it tonight
19:09:10dom96about to leave for home
19:13:15*abm joined #nim
19:18:45*GordonBGood joined #nim
19:22:29*hexeratops joined #nim
19:23:53*nif quit (Quit: ...)
19:24:03*nif joined #nim
19:25:47*hexeratops left #nim (#nim)
19:26:08*uu91 quit (Ping timeout: 245 seconds)
19:26:09*hexeratops joined #nim
19:27:14*uu91 joined #nim
19:29:40*nsf quit (Quit: WeeChat 2.6)
19:39:25FromDiscord<kodkuce> is there some lib to process terminal args i think you all mention it before
19:39:32disruptekcligen.
19:41:21FromDiscord<kodkuce> ty will check
19:43:35clyybber1`type char = char`
19:43:43clyybber1Illegal recursion in type char
19:43:45clyybber1This is nice
19:44:30disruptekpretty rad.
19:44:35disruptekit works with other types, too.
19:45:36FromGitter<nixfreakz_twitter> props to the guys who created nimwc (:
19:46:27*Trustable joined #nim
19:47:00madpropsbeen having syntax coloring problems in vscode http://i.imgur.com/nctpNhH.png
19:52:36*GordonBGood quit (Ping timeout: 246 seconds)
19:56:18*GordonBGood joined #nim
19:58:02madpropsis it a known issue?
20:10:03*GordonBGood quit (Quit: There's nothing dirtier than a giant ball of oil)
20:11:36*u9898287 joined #nim
20:14:24FromDiscord<mratsim> why is your second quote strange?
20:14:31FromDiscord<mratsim> after all the echo
20:14:52*leorize quit (Ping timeout: 260 seconds)
20:16:33*u9898287 quit (Ping timeout: 250 seconds)
20:17:12*uu91 quit (Read error: Connection reset by peer)
20:17:27*uu91 joined #nim
20:17:54madpropsif i add an extra \
20:17:57madpropsit works
20:18:04madpropsbut then it's incorrect
20:18:33madprops"~/\"
20:18:39madpropsit should just print ~/
20:19:03madpropsnvm im just gonna make a temp variable for that
20:19:18*Trustable quit (Remote host closed the connection)
20:20:43narimiranmadprops: https://play.nim-lang.org/#ix=21CZ -- how about using triple quotes?
20:21:02madpropsoh i didn't know about those
20:21:20madpropswould be cool if backticks were available for that though
20:21:59madpropsbtw i find it a bit hard to type & a lot of the times. so doing
20:22:09madprops&"..." can take some time
20:22:11narimiran`&"{\"a\" & \"b\"}"` works on playground
20:22:39madpropsthink i prefer javascript's way of enabling formatting with ` `
20:22:51*leorize joined #nim
20:22:52madpropsor python just uses f".."
20:22:57madprops& is just hard to reach
20:23:00narimiranyou can use `fmt"..."`
20:23:26madpropswhy not enable formatting by default though? expensive?
20:23:45madpropsi format stuff very often
20:23:49narimiranyou can ask the same question about strutils, sequtils, tables, sets, etc
20:23:49solitudesfno need if it can be made as a library
20:24:02*rockcavera joined #nim
20:24:05narimiranyou do. i don't.
20:24:11narimirani do something else. you don't.
20:25:07narimiranare you saying, not only `&` is hard to type, but also `import strformat` is too much of typing? :D :D
20:28:21FromDiscord<exelotl> & is pretty hard to reach as far as string concatenation operators go
20:33:01madpropsi have a problem with the symbols row
20:33:08madpropsoften i need multiple tries to get the correct one
20:33:21madpropsfmt".." is better now that i know about it
20:34:23FromDiscord<demotomohiro> if you add `--import:strformat` to your nim.cfg, you can use it without writing `import strformat`.
20:34:51madpropsoh that's cool
20:34:57narimiranyay, make things even harder to guess where they're coming from :P
20:35:21madpropswell yeah that could be a problem
20:35:34madpropsi just think string formatting should be a built-in feature
20:36:08narimiraneverybody has their own idea should be enabled/disabled/included/removed/etc.
20:36:18narimiran*what should...
20:36:44narimiranand you gave no valid reason for that
20:36:53narimiran"i use it frequently" is not a valid reason
20:37:43madpropsok there's a problem
20:37:46madprops& and fmt are not the same thing
20:38:01madprops\n is not considered with fmt
20:38:07narimiranyep
20:38:19solitudesfyes, with fmt its treated as a raw string literal
20:38:23solitudesfits all in the manual
20:41:05madpropsi mean i can't be the only one using string formatting often
20:41:33narimiranand i'm not the only one who uses tables/sequtils/sets/strutils often
20:42:12FromDiscord<mratsim> In embedded development, string formatting is verboten due to memory allocations
20:42:25FromDiscord<mratsim> at least until we have destructors by default
20:42:46narimiranmadprops: why is it so hard for you to import something? i'm sure strformat is not (or: it won't be) the only module you'll ever import
20:42:51solitudesfmadprops, if it can be made as a macro, it will be. no reason to overburden the compiler with something that brittle.
20:42:58madpropsit's not importing that is the problem
20:43:03madpropsit doing &"
20:43:19disrupteki agree; it's pretty tough.
20:43:41narimiranoh, so in your proposal i should escape `{` and `}` when i would want to print them?
20:43:43FromDiscord<mratsim> you can rename & to "f" and you have Python f-strings
20:44:22madpropsi would suggest having `..`
20:44:24narimiranor you can type & once (since is so hard), and then copy-paste it when needed :D
20:44:40madpropsbackticks in javascript were super easy to use
20:44:46FromDiscord<mratsim> .."{myvariable}"?
20:44:48solitudesfjust fork the compiler, bro
20:45:08FromDiscord<mratsim> backtick are a pain on non-english keyboards
20:45:21solitudesfand backticks are already used in nim
20:45:40FromDiscord<mratsim> for ".." you can have your own proc that maps to &
20:45:54narimiranand `{` and `}` are also pain in non-english layouts, `[` and `]` too. even `@` is not straight-forward.
20:46:04narimiranall those examples require AltGr+something
20:46:57FromDiscord<mratsim> the worse is probably the pipe |, when you sysadmin, it's always, welll, what is the keymapping
20:53:11*lritter joined #nim
20:54:33madpropsok here's my real proposal
20:54:40madpropschange &".." to f".."
20:54:49madpropsit would be inline with python. and MUCH easier to type
20:55:09narimiran"<solitudesf> just fork the compiler, bro"
20:55:21madpropsi don't believe in forking
20:55:34madpropswhy & though?
20:55:38madpropsseems arbitrary
20:55:47solitudesfbecause & is concatenation?
20:56:01madpropsbut when i think of that i think of (f)ormatting
20:56:01solitudesfand format strings are just sugar for concatenations?
20:56:11solitudesfthats why you have fmt
20:56:21madpropswe could have f too
20:56:25solitudesfyou can have it
20:56:34solitudesftemplate f(s: string): string = fmt s
20:56:36solitudesfbadabing
20:56:45madpropsfmt and & do the same thing regarding formatting
20:56:52FromDiscord<mratsim> template f(str: string): untyped = &(str)
20:56:57FromDiscord<mratsim> and done
20:57:26FromDiscord<mratsim> Otherwise for me ² is much easier to type, it's just under the escape key
20:57:41FromDiscord<mratsim> no fancy shift or altgr, good idea no?
20:57:42narimiranb-b-but i'll have to copy-paste that everywhere, why can't it be default, yadda yadda
20:57:43madpropswell anybody can type f"" very easily
20:58:21FromDiscord<mratsim> many languages uses & for concatenation of strings
20:58:25narimirananybody can type & also easily, except you :D
20:58:33solitudesfyes, but now you are reserving identifier f, which is better used for some variables
20:58:38FromDiscord<mratsim> Nim gives you the possibility to change the operator or function name
20:58:52madpropssolitudesf: you could say the same about fmt
20:59:04madpropsfmt is actually more prone to be used than f
20:59:11narimiranok, i think we should give up
20:59:19solitudesfyes, for sure fmt is much widely used than f, yep
20:59:28solitudesf*more
20:59:31FromDiscord<mratsim> my files are called f
20:59:53FromDiscord<mratsim> anyway it won't conflict with a variable name
20:59:56narimirannext proposal: name it `i` (for interpolation), that one nobody uses :D :D
21:00:38madpropsi just checked. fmt is not reserved
21:00:39narimiran@mratsim: you should rename your files to `fmt`, or.... `&`
21:00:40FromDiscord<mratsim> my recommendation: make a formatting library, convince Nim users that it's better than the standard lib in terms of API and functionality
21:00:42madpropsmeaning f can be not reserved too
21:00:56solitudesf???
21:01:03FromDiscord<mratsim> then we can deprecate strformat and progressively replace it by yours
21:01:05narimiransolitudesf: ¿¿¿
21:01:23narimiran¡¡¡
21:01:39FromDiscord<mratsim> (don't spam)
21:01:50madpropsthis is possible http://i.imgur.com/jkd2K6J.png
21:01:57FromDiscord<IanIAnIAN> spam is tasty though
21:01:57madpropsso the whole variable reservation argument is invalid
21:02:31narimiranyeah, one side is constantly making invalid arguments :D
21:02:57FromDiscord<mratsim> anyway, if it's the only grip you have with the language I guess that's good news
21:03:03solitudesfyeah, i guess that works, because fmt is a macro
21:04:17narimiranso, to change a subject a bit: https://wiki.freepascal.org/FPC_New_Features_3.2
21:12:14*fasfnim joined #nim
21:14:05fasfnimheya I just discovered nim and absolutely love it
21:14:21narimiranwoohoo :)
21:14:25disruptekit's pretty cool, right?
21:14:39fasfnimI'm wondering what companies currently use it? and whether there are job boards/postings for nim anywhere?
21:14:59*ltriant joined #nim
21:15:33FromDiscord<IanIAnIAN> I wondered that too, and found nothing from a quick search, but then I thought, heh i already have a job and nim still looks fun
21:17:03fasfnimhttps://github.com/nim-lang/Nim/wiki/Companies-using-Nim this answers part of my question
21:17:23*filcuc joined #nim
21:17:31FromDiscord<IanIAnIAN> Is there a way to search github to see who uses a particular package
21:19:37disruptekdo you work at the nsa?
21:20:22*GordonBGood joined #nim
21:21:15rayman22201lol. would be a fun thing to write with Nim :-P
21:21:24solitudesfsomething like this https://github.com/search?q=cligen+language%3ANim+extension%3Animble&type=Code
21:22:03disruptekadded two more aws apis to atoz 🎉
21:24:02*narimiran quit (Ping timeout: 240 seconds)
21:24:06FromDiscord<IanIAnIAN> 🐰 awesome
21:25:10lqdevanyone able to help me with my nimlsp issue? I get a ton of undefined reference errors: http://ix.io/21Cp even though the procs are here and the file compiles ok
21:26:15disrupteki have the same behavior from nimsuggest against ffi stuff.
21:26:32*fasfnim quit (Remote host closed the connection)
21:26:45disrupteki mean, i dunno if we should expect it to work.
21:27:41lqdevit's weird though, since the vscode plugin works.
21:27:48lqdevthey both use nimsuggest
21:28:21disruptekdoes the plugin work, or does it simply not complain about missing symbols?
21:30:10FromDiscord<kodkuce> duno for me vscode trolls complains that i have unsued stuff and even calls proc dosent exist even clearly it does
21:34:36madpropsinteresting. nim returns default objects if none is returned?
21:34:44madpropsseems it returning an empy object
21:34:56madpropswhich is good in my case
21:35:10disruptekit returns `result` in any event.
21:37:43lqdevdisruptek: the vscode plugin actually works, suggesting me things and reporting errors (if there are any, and I know there aren't)
21:39:14madpropsit does work. but sometimes i need to run the program for it to update
21:43:17*prometheus joined #nim
21:44:46FromDiscord<mratsim> @fasfnim My company is probably the biggest Nim employer out there, unless there is a hidden one with a lot of employees as well (maybe in CHina, seems like there is quite a community there)
21:48:43FromGitter<deech> Are fast compile times a priority for Nim in the future? They're pretty good now ...
21:49:47FromGitter<alehander92> i dont think so
21:50:18FromGitter<alehander92> i mean, they're pretty good, sorry
21:50:43FromGitter<alehander92> but there is totally room for improvement, but i think the incremental compilation would be really a good solution
21:51:54FromGitter<alehander92> but thats because i hope for sub 1s for small changes even in stuff like the compiler :P
21:52:21FromGitter<deech> Right, ok great. So I infer that fast compiles are important going forward.
21:52:51FromGitter<deech> Chez Scheme had this as a hard requirement IIRC, any feature that slowed that down was cut ...
21:53:03FromGitter<alehander92> yeah i didnt really say it right
21:53:06FromDiscord<IanIAnIAN> another day, another attempt to use stb_image fails. I'm going to xatch Ulysses 31 instead
21:53:10FromGitter<alehander92> i think the compiler currently is fast enough
21:53:22FromDiscord<mratsim> Incremental Compilation is important, Araq keeps getting distracted with reference counting, araqsgc, destructors, closures 😛
21:53:23FromGitter<alehander92> but it can be utilized in a better architecture
21:53:32FromGitter<alehander92> so one could cache a lot more
21:53:39FromGitter<alehander92> for development mode
21:53:54FromGitter<alehander92> so yeah thats what Araq's IC is
21:54:04FromDiscord<mratsim> @IanIAnIAN it took me about 2 days to understand how to wrap it properly without having to move the .h in my nimcache
21:54:06Araqyeah and in fact other improvements like removing the forward declarations are not done until IC works
21:54:17FromGitter<alehander92> and i hoped that one day we can even get some kind of parallelized incremental compilation
21:54:22FromGitter<alehander92> but thats probably too far
21:55:05FromDiscord<mratsim> but for dead code elimination, Nim must see all modules
21:55:26FromGitter<alehander92> well dce is not so important for development
21:55:35FromDiscord<mratsim> this is how I use stbimage @IanIAnIAN https://github.com/mratsim/Arraymancer/blob/master/src/io/io_image.nim
21:55:43FromGitter<alehander92> and even if it is, this is not a dealbreaker for parallel compilation
21:56:14FromGitter<alehander92> actually zah explained me how one can parallelize a "pass with all modules => next pass with all modules"
21:56:40FromGitter<alehander92> i thought its only easy for "pass moduleA => next pass moduleA / pass moduleB => next pass moduleB"
21:56:49FromDiscord<mratsim> before parallelizing the compiler we need a parallel library 😛
21:56:50FromGitter<alehander92> but i am not sure i remember.
21:56:54FromGitter<alehander92> thats what usually happens
21:57:04FromGitter<alehander92> yeah yeah this is not really important today
21:57:11FromGitter<alehander92> i was just interested in how would people do it
21:58:00FromDiscord<IanIAnIAN> Ah have I played you @mratsim ?
21:59:27lqdevI'm actually wondering why nimlsp at least starts, while NimLime does absolutely nothing apart from the syntax theme
22:00:16lqdevI verified that my Nim path is correct, that check.on_save is enabled, but no luck getting it to work
22:01:53FromDiscord<IanIAnIAN> Ah have I played you @mratsim ? ...guess not was thinking of Razafindrabe
22:06:33rockcaveradisruptek sorry for the delay to reply. I used the sort and did the deletion by itself. For some reason when the numbers are high (in my code), there is an inexplicable delay with sets (hashset) that I couldn't reproduce out of code.
22:07:06disruptekwhat's the speed of that approach?
22:07:48rockcavera0.3s
22:07:53rockcavera0.34s
22:07:58disruptekcool.
22:08:14disruptekdo you have a repro for the hashset issue?
22:08:47rockcaveraJust changing the .txt with lower bit numbers increases the speed with hashset, but with higher bits it slows down.
22:09:02disruptekhow bit are we talkin'?
22:09:05disrupteks/bit/big/
22:09:19rockcaveraI still can't figure out why
22:09:31disruptekis this with nim devel?
22:09:43rockcavera0.9s to 50s
22:09:44rockcavera:S
22:09:56disruptekthere were some hash changes but i think they were pre-1.0.
22:10:04rockcaverayes
22:10:05rockcaveranim devel
22:10:33disruptekthis is definitely worth tracking. can you make an issue?
22:10:42*krux02 quit (Remote host closed the connection)
22:10:46rockcaveraversion 11/11/2019
22:11:39disrupteki meant, how many bits in the ints?
22:11:42rockcaveraI was all told trying to figure out what it was. I even looked at the C source code and couldn't figure it out.
22:12:53rockcaveraIt is a multiline .txt file where each line represents the bits must be set to 1 within a uint64
22:13:14rockcaveraThe problem is not split() nor readLine()
22:13:48rockcaveraBecause I just changed from hashset to seq to add and the speed is a thousand times faster
22:14:20disruptekright, but we really need a small repro that we can use for testing and to prevent regression.
22:14:21rockcaveraI will assemble two code and two example .txt
22:15:18disrupteksweet, thanks.
22:15:40*lqdev quit (Quit: Leaving)
22:20:19*tane quit (Quit: Leaving)
22:27:50*jjido joined #nim
22:29:57*solitudesf quit (Ping timeout: 240 seconds)
22:41:19rockcaveradisruptek https://github.com/rockcavera/nim-problem
22:41:50disruptekawesome.
22:42:31rockcaveranow if you can figure out why this...
22:43:27*xet7 quit (Remote host closed the connection)
22:44:39*xet7 joined #nim
22:50:48rockcaveraStrange that if the highbits.txt and lowbits.txt files are represented by one number per line, other than this representation that needs to assemble the number with setBit (), there is no such disparity between speeds.
22:51:31rockcaveraI tried several codes
22:53:33rockcaveraI also tried several compilers: gcc, clang, vcc. Everything is the same.
22:56:09rockcaveraStrangely enough, larger numbers take longer than smaller numbers in implementation and hashset.
22:56:54disruptekhmm.
22:59:55clyybber1Araq: Hey, with the improvements merged... does async work now?
23:00:13clyybber1(regardless of wether it leaks)
23:01:02disruptekrockcavera: what's weird is that the the types are the same. HOW DO IT KNOW?!
23:02:12disruptekthis is really interesting.
23:03:30rockcaveraI broke my head already with this today
23:04:12*u9898287 joined #nim
23:04:51disruptekall i can think is that you're getting a different hash impl.
23:06:02rockcaveraI have no idea. If I turn those bit lines into numbers and play in a .txt, the problem does not occur.
23:06:04disrupteki would test this on 0.19.6 or even earlier; maybe the behavior will differ.
23:06:30rockcaveraI have 0.19.0 here, I'll see.
23:06:38disruptekbut you've already controlled for the setbit operation.
23:14:20FromDiscord<yewpad> https://play.nim-lang.org/#ix=21DL
23:14:28FromDiscord<yewpad> This prints "Hi" three times
23:14:31FromDiscord<yewpad> why's that?
23:15:44*filcuc quit (Quit: Konversation terminated!)
23:18:54dom96yewpad: wow, very weird. Bug?
23:19:02FromDiscord<yewpad> idk
23:19:12FromDiscord<yewpad> ran it in wsl 2 on an ubuntu install
23:19:25FromDiscord<yewpad> sometimes it would print "Hi" only once
23:19:29FromDiscord<yewpad> sometimes two times
23:19:33FromDiscord<yewpad> and sometimes three times
23:20:16rockcaveradisruptek in nim 0.19.0 even worse was the codesets execution time
23:20:33disruptekokay, that's good.
23:22:00disruptekyewpad: add a sync() and it's fine.
23:22:13disruptekrockcavera: how much worse is it in 19?
23:22:42*u9898287 quit (Quit: u9898287)
23:22:50rockcavera18s lowbits.txt and 150s highbits.txt
23:23:31disruptekso you convert lowbits to uints and highbits to uints and the performance is identical when merely parseUInt'ing them from a file?
23:23:59rockcaveraIn codeseq I did not test, because I was giving an error in the sort that I could not get around.
23:25:12rockcaveradisruptek I did not understand
23:25:43disruptekdoes the behavior change when you substitute parseUInt for setBit?
23:26:32disrupteki think you're already controlling for this but i'm wondering if it's essentially down to hardware.
23:26:43rockcaverayes, it changes. When uints are already ready in a .txt you don't have this speed problem.
23:27:45disruptekbut you don't have it in the seq impl in any event.
23:28:03rockcaveraI will assemble the code.
23:28:07disrupteksomething about setting the high bits is kicking you outta the cache.
23:28:39disruptekor actually, hashing against them, i guess.
23:32:37madpropsis it possible to send myproc(value:234, name:"asdf") ?
23:32:49madpropsi mean giving a name to the arguments when using the proc
23:32:53madpropsnot when defining it
23:33:02*hexeratops quit (Quit: Leaving)
23:33:07disrupteksure.
23:33:07*prometheus quit (Remote host closed the connection)
23:33:13madpropsok i just needed = instead of :
23:33:25*prometheus joined #nim
23:33:28disruptekyou can dispatch on argument names, too, but don't tell anyone.
23:35:03*uu91 quit (Read error: Connection reset by peer)
23:35:44*uu91 joined #nim
23:47:50*sagax joined #nim
23:50:51rockcaveraI turned the bit lines into numbers, but continued the larger numbers taking longer. But I remember I tested before and it was not long. I think I'm already going crazy.
23:50:52rockcavera:S
23:51:16dom96shashlick, released choosenim v0.5.0
23:51:27dom96(well, I tagged it, hoping binaries get built)
23:51:39*vsantana quit (Remote host closed the connection)
23:52:35rockcaveraor i tested with uint32
23:52:40*vsantana joined #nim
23:54:12rockcaveradisruptek I believe the problem with sets (hashset) is with numbers over 32 bits
23:54:23disruptekyeah, it seems that way.
23:54:29disruptekat least it's not a regression.
23:54:34disruptekwill you make an issue?
23:55:18rockcaveradisruptek I'll try to do.
23:55:45rockcaveraI will do more testing