<< 25-06-2020 >>

00:00:08FromDiscord<ikrima> meta comment: gotta say, i am loving this experience with nim. in less than a day, pain point fixed 🙂
00:02:36FromDiscord<ikrima> follow-up ask: what's the norm in terms of being on language versions:? e.g. only language devs use devel vs. generally safe for everyone to be on devel for non production code?
00:02:52Yardanicowell second is true I would say
00:02:56leorizeit's safe enough for non-production code
00:03:03Yardanicodevel works usually
00:03:07Yardanicobut there might be new regressions and stuff
00:03:21Yardanicobut also new fixes and new additions :)
00:03:33leorizewell this is non production code that we are talking about :P
00:04:17FromDiscord<ikrima> gotcha; trying to set level set my expectations between "bleeding-edge nightly" vs. "dev" vs. "LTS release"
00:05:02Yardanicowell devel really just works in most cases
00:05:08Yardanicoit's really rarely broken as in you can't run it
00:05:16Yardanicobecause we have a nice CI setup nowadays :)
00:05:34Yardanicowhich tests the whole test suite and also some third-party packages
00:06:15FromDiscord<ikrima> 👍
00:22:17Yardanicowhat do you guys think about https://github.com/nim-lang/RFCs/issues/240 ? maybe i'm missing some obvious case where it can lead to bugs?
00:22:19disbotMake "unreachable statement" error a warning ; snippet at 12https://play.nim-lang.org/#ix=2q6i
00:31:39*dmi00 joined #nim
00:32:48*polypus74 quit (Quit: WeeChat 2.8)
00:33:57*dmi0 quit (Ping timeout: 258 seconds)
00:59:03*Tongir quit (Ping timeout: 265 seconds)
01:10:14*oddp quit (Ping timeout: 240 seconds)
01:24:58*Tongir joined #nim
01:25:43*Tongir quit (Remote host closed the connection)
01:34:32*Tlongir joined #nim
01:50:40*oculuxe quit (Ping timeout: 256 seconds)
01:52:27*chemist69 quit (Ping timeout: 240 seconds)
01:54:38*chemist69 joined #nim
01:58:13FromDiscord<speckledlemon> Could someone clarify this comment (https://github.com/nim-lang/Nim/issues/2361#issuecomment-82210180) regarding `openArray`? I don't understand how you could violate memory safety when the length is known and you're just reading.
01:58:15disbotIllegal capture on async proc (except when the argument is `seq`) ; snippet at 12https://play.nim-lang.org/#ix=2q6q
02:00:14leorizeit's due to async
02:00:30leorizewhat async does is that it creates a closure iterator, capturing all elements
02:01:07leorizesince the closure iterator is not dependant on the stack, it's not possible to guarantee that a value originated from the parameter list will still be there the next time the iterator is resumed
02:01:12leorizethis is why it's dangerous
02:01:35leorize(ok I lied a bit, it's possible, but our tracking tech is not that good yet)
02:02:04FromDiscord<speckledlemon> hmmm maybe that's a bad example. I'm encountering a similar error but async is nowhere in my code. Not sure how to isolate a MWE yet...
02:02:22leorizewell the same applies to closure
02:11:12*rockcavera joined #nim
02:13:03*oculux joined #nim
02:18:34FromDiscord<speckledlemon> ugh, I knew this was a bug. there is no closure inside the code that takes an openArray, and none of the tests trigger it. It happens when I call the code from another package, and specifically it's because of the `high`: `func bisectRight*[T](a: openArray[T], x: T, lo: Natural = 0, hi: int = high(a)): int = ...`. If I replace it with 5 (just an example), it compiles
02:19:29leorizehmm that sounds weird
02:19:49leorizecan you isolate a small sample out?
02:20:05FromDiscord<speckledlemon> I'm going to try now that I know the origin. I already reported https://github.com/nim-lang/Nim/issues/14587
02:20:06disbotCan't use `Natural` with result of `int` function call in default argument
02:21:29*endragor joined #nim
02:43:47*muffindrake quit (Ping timeout: 240 seconds)
02:46:23*muffindrake joined #nim
03:22:11FromDiscord<Jasper> When a param references another param, the referenced param gets lifted into a temp. This currently happens after it has been converted to an openarray, which can't be assigned (captured) into a local. You must be within a function to reproduce. I believe there is already a bug report. https://play.nim-lang.org/#ix=2q6z
03:29:37FromDiscord<Bawbby> is there something in nim to allow for things like interfaces?
03:30:00FromDiscord<Bawbby> interfaces like in java*
03:30:44FromDiscord<Yardanico> Not really, we have concepts but they're compile time
03:31:13leorize!repo interface
03:31:15disbothttps://github.com/andreaferretti/interfaced -- 9interfaced: 11 15 23⭐ 4🍴 & 29 more...
03:31:56leorizeyou can also write your own simple method tables, like how the streams module work
03:32:55FromDiscord<Bawbby> sorry to ask but what do you mean by method tables?
03:34:24FromDiscord<Bawbby> i'll take a look at that library though, thanks.
03:34:24leorizehttps://nim-lang.org/docs/streams.html#StreamObj
03:34:54FromDiscord<Bawbby> oh I see what you mean, thanks for that as well.
03:35:06leorizenp
03:35:43leorizethe interface pattern is rarely used here, so no one has really established a standard on how they should be done
03:53:49*waleee-cl quit (Quit: Connection closed for inactivity)
04:06:01*supakeen quit (Quit: WeeChat 2.8)
04:06:38*supakeen joined #nim
04:18:35*dddddd quit (Ping timeout: 258 seconds)
04:20:57FromDiscord<Yardanico> So out of boredom I'm searching for "Nim" in vlang's discord and read the results
04:21:00FromDiscord<Yardanico> Found this gem
04:21:22FromDiscord<Yardanico> "I think v may be one of the factors that made 4raq (Nim's creator) to finally bump the version number of nim to 1.0 ." (A replaced with 4)
04:28:46*FromDiscord quit (Remote host closed the connection)
04:29:01*FromDiscord joined #nim
04:31:20FromDiscord<Elegant Beef> lol
04:32:17*nsf joined #nim
04:32:36FromDiscord<Elegant Beef> Cause it's worthwhile to get buggy software out as 1.0
04:33:52*rockcavera quit (Remote host closed the connection)
04:35:48FromDiscord<Elegant Beef> I searched for nim in a gamedev discord and before me talking about it a lot it was just people trying out nim and not really liking it
04:44:01leorizedefinitely not because everyone has been bugging him about it lol
04:46:37FromDiscord<impbox> Is anyone here doing windows -> linux cross compiling with nim, if so what compiler setup do you use?
04:47:42FromDiscord<Yardanico> Well if you use W10 I think WSL would be the best choice, although I don't use Windows for quite a long time now
04:49:20FromDiscord<impbox> @Yardanico that runs a linux VM right?
04:49:30FromDiscord<impbox> (i'm not really familiar with how WSL works)
04:49:36FromDiscord<Elegant Beef> 1.0 ran like wine
04:49:50FromDiscord<Elegant Beef> 2.0 runs more like a VM yes
04:49:57FromDiscord<Elegant Beef> Atleast that's my understanding
04:50:13FromDiscord<impbox> mmm I see, trying to avoid using a VM
04:51:23FromDiscord<impbox> but might be the easiest way
04:51:33FromDiscord<impbox> or just switch back to linux, cross compiling to windows was easy
04:51:39FromDiscord<Elegant Beef> -d:mingw 😄
04:51:51FromDiscord<Elegant Beef> that's wrong isnt it?
04:52:02FromDiscord<impbox> i've never tried that, i'm using mingw though
04:52:04FromDiscord<Elegant Beef> Eh i dont do windows cross compilation since the only application i wanted to usues nimarchive
04:52:18FromDiscord<Elegant Beef> and i cant compile nimarchive on linux for windows
04:52:39shashlickHopefully we can solve that some day
04:52:49FromDiscord<impbox> i had a linux -> osx cross compile setup, but it was super convoluted to set up
04:53:29shashlickMingw is Linux or osx to windows, not the other way
04:53:40FromDiscord<Elegant Beef> That's what i was referencing
04:54:15shashlickOk
04:55:12shashlickMaybe zig could pull it off, never tried though
04:55:42FromDiscord<impbox> pull off every zip
04:55:44FromDiscord<impbox> (edit) 'zip' => 'zig'
04:57:09FromDiscord<impbox> i should try zig
04:59:25shashlickCheck this out https://win.musl.cc/
04:59:42shashlickTook a while to find it again
04:59:52FromDiscord<impbox> nice
04:59:53FromDiscord<impbox> thanks
05:04:24FromDiscord<slymilano> hey gang, i'm using threadpool on a pretty simple project i feel and my memory usage keeps increasing. as far as I can tell I'm closing my httpclient's. https://github.com/sergiotapia/torrentinim/blob/master/src/torrentinim.nim#L18↵↵maybe I'm running the crawlers too fast and the gc isn't running fast enough to let go of the claimed memory?
05:13:52FromDiscord<Yardanico> The problem might be that you call your crawlers recursively
05:15:16FromDiscord<Yardanico> Also you don't really need spawn since you can use use threads
05:16:04FromDiscord<Yardanico> So you might want to create a proc which will spawn threads with all crawlers, wait for their completion, sleep 30 seconds and do that again
05:16:10FromDiscord<Yardanico> Not sure if that'll solve the issue but it might
05:20:55*narimiran joined #nim
05:22:16FromDiscord<slymilano> i thought spawn, spawns threads. do you have a link handy for some light nim thread reading?
05:23:07Yardaniconot really, but here's some code explaining what I meant https://play.nim-lang.org/#ix=2q6T
05:24:46FromDiscord<slymilano> thanks, i'll read a bit more on what spawn does in depth
05:24:57Yardanicoalso you should probably add locks when you're calling insert_torrent
05:25:24Yardanicoah no nvm
05:25:30Yardanicoyou're opening the DB each time, so you won't need that
05:31:13YardanicoI'll try running torrentinim locally with my changes
05:42:43FromDiscord<slymilano> thanks i appreciate your help
05:45:11Yardanicowell I'm getting a different error probably related to SSL, anyway try doing this:
05:46:23Yardanicohttps://gist.github.com/Yardanico/b0da44ff5eeab56173ed42d69150df84
05:50:59Yardanicobut really you should probably rewrite your crawlers to be async :P
05:54:08*letto quit (Quit: Konversation terminated!)
05:55:46*letto joined #nim
05:57:07*solitudesf- joined #nim
06:03:33*opDispatch quit (Quit: Konversation terminated!)
06:19:40*PMunch joined #nim
06:33:04*marnix joined #nim
06:38:30*fredrikhr joined #nim
06:41:59FromGitter<alehander92> how do you
06:42:00*zedeus quit (Read error: Connection reset by peer)
06:42:01FromGitter<alehander92> gen doc ?
06:42:01*zedeus_ joined #nim
06:42:09Yardanico,
06:42:11Yardanico?
06:42:12FromGitter<alehander92> i try to use the same flags (except stuff like codegen)
06:42:15FromGitter<alehander92> but it fails
06:42:18FromGitter<alehander92> with strange errors
06:42:21Yardanicowhat errors?
06:42:38FromGitter<alehander92> like just very random mismatch and others
06:42:41FromGitter<alehander92> which dont make sense to me
06:43:36FromGitter<alehander92> but ok, i mean
06:43:41FromGitter<alehander92> do i need to nim doc finalfile.nim
06:43:52FromGitter<alehander92> and does it recursively nim doc my imports
06:44:37FromGitter<alehander92> the problem is : if i do nim c flags
06:44:44FromGitter<alehander92> it seems to work, if i do with nim doc i get errors?
06:45:56FromDiscord<lqdev> if you want it to recursively doc you need to pass --project to nim doc
06:46:02FromDiscord<lqdev> also what are the errors?
06:46:45*opal quit (Remote host closed the connection)
06:47:05FromDiscord<impbox> mmm i got errors with mine too doing nim doc
06:47:12FromDiscord<impbox> will have to investigate further later
06:47:18FromDiscord<impbox> with the nico codebase
06:47:59*opal joined #nim
06:48:44FromGitter<alehander92> e.g. stuff like attempting to call routine: 'startIPC' ⏎ found 'startIPC' of kind 'unknown'
06:49:09FromGitter<alehander92> and startIPC is just a normal function async
06:53:03FromGitter<alehander92> and many other even stdlib errors
06:53:14*oddp joined #nim
06:53:34FromGitter<alehander92> but thanks for the index / project option: it works, i just dont get all functions
07:02:30*sepplesWoona joined #nim
07:10:02*dzamo[m] quit (*.net *.split)
07:10:03*codic quit (*.net *.split)
07:10:03*BitPuffin quit (*.net *.split)
07:10:03*watzon quit (*.net *.split)
07:10:04*sepples quit (*.net *.split)
07:13:24PMunchMan, inim is pretty neat
07:13:29PMunchJust used it to debug some X11 stuff
07:14:50*drdee joined #nim
07:17:04*dzamo[m] joined #nim
07:17:07*codic joined #nim
07:18:00*watzon joined #nim
07:18:16*BitPuffin joined #nim
07:20:19FromGitter<YusufCakan> Hi, whenever i try to rename a variable in vscode, i find that it doesnt find all the references. Does anyone else have this problem
07:21:43FromDiscord<impbox> YusufCakan I don't use vscode, but maybe it's because in nim the variable could be spelt differently in different places?
07:21:53FromDiscord<impbox> is there anything unusual about the ones it doesn't find?
07:25:14Yardanico@YusufCakan it should work just fine
07:25:27Yardanicobut yeah, it doesn't care for nim's partial case insensitivity I guess
07:25:36Yardanicoah wait actually it does
07:25:39Yardanicoat least the vscode-nim extension
07:25:44FromGitter<YusufCakan> It mainly just replaces the names in the current open file and nowhere else in the project
07:25:49Yardanicooh you mean that
07:26:11FromDiscord<impbox> maybe use nimgrep
07:26:13FromGitter<YusufCakan> I want to rename a variable across all files.
07:26:28FromDiscord<impbox> `nimgrep -! -r foo bar` i think
07:26:36FromDiscord<impbox> (edit) 'bar`' => 'bar .`'
07:27:16Yardaniconimgrep --replace --recursive toReplace newName .
07:27:24Yardanicosame as impbox but for explanation with full args :P
07:27:30Yardanicoso yeah, use nimgrep
07:28:10Yardanico*tfw I really never use nimgrep, but I really should sometimes*
07:28:23FromDiscord<Yardanico> its a good tool
07:28:40FromDiscord<Firefell> Somebody has try QtCreator with the Nim plugin ?
07:28:44FromDiscord<Yardanico> yeah I did
07:28:47FromDiscord<Yardanico> it works fine
07:28:54FromDiscord<Firefell> cool
07:29:06FromDiscord<Firefell> and the debug ? good ?
07:29:13Yardanicoidk, I didn't try
07:29:15FromGitter<YusufCakan> thanks. what does -! do in the above example
07:29:33Yardanico@YusufCakan check my nimgrep command
07:29:39Yardanicoit's the same as impbox sent, but with full names
07:29:41Yardanico-! is --replace
07:29:44Yardanico-r is --recursive
07:29:54Yardanico@Firefell it would be the same as in vscode
07:29:57FromGitter<YusufCakan> ok many thanks
07:30:04FromDiscord<impbox> confused me for a while because i was using -r for replace
07:30:07Yardanicoi wouldn't expect it to be better since the debug info is still the same
07:33:56FromGitter<jquiterio> hi guys, ⏎ I’m getting a errors trying to convert from json to a type. ⏎ var req = to(jsonRequest, SomeType)
07:34:12Yardanicowhat error? compile-time? runtime?
07:34:18Yardanicoshow the code (json and the type definition)
07:34:25FromGitter<jquiterio> (JsonNode, typeof(nil))
07:34:34Yardanico?
07:34:47FromGitter<jquiterio> I mean… this is not working now after I upgraded nim to 1.2.2
07:35:03Yardanicowhy do you need typeof(nil) ?
07:35:25FromGitter<jquiterio> i don’t need it :D
07:35:55Yardanicowell, as I said show the code, because I can't really help without it :D
07:36:54FromDiscord<Rika> I don't understand why you're converting json into a nil
07:37:04FromGitter<jquiterio> Error: ambiguous call; both json.==(a: JsonNode, b: JsonNode) [declared in /usr/local/Cellar/nim/1.2.2/nim/lib/pure/json.nim(397, 6)] and rethinkdb.==(a: JsonNode, b: JsonNode) [declared in /Users/me/dev/urlstrap/src/rethinkdb.nim(226, 10)] match for: (JsonNode, typeof(nil))
07:37:21FromGitter<jquiterio> this is not my idea
07:37:38FromGitter<jquiterio> I’m trying to convert json to a nim type
07:38:15FromDiscord<Yardanico> well, the error is really clear
07:38:23FromDiscord<Rika> Go to your rethinkdb import and add an except `==` to it
07:38:34FromDiscord<Yardanico> both of these procs have the same definition
07:38:38FromDiscord<Yardanico> so the compiler doesn't know which one to call
07:38:50FromDiscord<Rika> Why do you have another == anyway
07:39:07FromGitter<jquiterio> ok, ok
07:39:24FromGitter<jquiterio> I have this on rethink db: template `==`*(a, b: JsonNode): JsonNode = binOp(Command.EQ, a, b)
07:39:42Yardanicoyeah I found it
07:39:42Yardanicohttps://github.com/jquiterio/urlstrap/blob/master/src/rethinkdb.nim#L226
07:40:12FromGitter<jquiterio> Ya
07:40:14Yardanicoyou might want to create a type like "type RethinkDbNode = distinct JsonNode"
07:40:23Yardanicoso that you can define procs/templates for this type instead
07:40:25Yardanicoand they won't conflict
07:40:42Yardanicobut you'll have to explicitly convert from RethinkDbNode to JsonNode and back (but that'll be zero-cost anyway)
07:41:27FromGitter<jquiterio> this make sense… ⏎ I’m just wondereing now, why it worked before 1.2.2 :(
07:42:08Yardanicoreally not sure
07:42:39YardanicoAlso did you try https://github.com/OpenSystemsLab/rethinkdb.nim ?
07:46:10*zedeus_ quit (Ping timeout: 246 seconds)
07:48:15*zedeus_ joined #nim
07:58:21*NimBot joined #nim
08:01:31*vikfret quit (Quit: Leaving)
08:16:49FromGitter<jquiterio> hi, sorry for delay
08:17:09FromGitter<codenoid> hi folks, it's 25-06-2020 how you doing, hope everything getting better
08:17:41FromGitter<jquiterio> Yes, I tried this rethinkdb version from OpenSystemsLab, but seems complicated to "handle"
08:22:22Araqthe new github UI is worse :-/
08:22:42FromDiscord<Rika> i dont know anyone who disagrees with you
08:22:52PrestigeYep
08:23:30PrestigeChange for the sake of change
08:25:22*mklooste joined #nim
08:25:27*letto quit (Quit: Konversation terminated!)
08:26:09*livcd joined #nim
08:26:11FromDiscord<Rika> so just like the master name change?
08:26:12FromDiscord<Rika> xd
08:26:22Yardanicowell master name change is probably only for new repos
08:26:44PrestigeThat's even worse
08:27:14*marnix quit (Ping timeout: 240 seconds)
08:28:01livcdwe need to get rid of american tech
08:29:08FromGitter<jquiterio> @Yardanico it worked fine by changing just two things according to your recommendations: ⏎ type RethinkdbJson = distinct JsonNode ⏎ template `==`*(a, b: RethinkdbJson): JsonNode = binOp(Command.EQ, a, b)
08:29:23FromGitter<jquiterio> but… this smells me a "work arround" :D
08:29:28Yardanico well yeah, but it would be better if you change the whole module to RethinkDbJson
08:29:31FromGitter<jquiterio> I’ll have to work on this code a bit more
08:29:31Yardanicoand no, not really a workaround
08:29:50Yardanicoif you want to use same JsonNode and still export the procedures on it, you should rename your == procs then
08:29:57Yardanicoor as I suggested, make a distinct type
08:30:03FromGitter<jquiterio> the whole code will be a permanent change
08:31:30FromGitter<jquiterio> rename your == procs then is an option as well
08:32:22FromGitter<jquiterio> creating another type distinting from JsonNode seems more stable and a better idea
08:37:45FromGitter<alehander92> wow
08:37:48FromGitter<alehander92> whats the master change
08:39:22Yardanicoit's better to discuss it in offtopic because it's quite a bit political, but - https://www.bbc.com/news/technology-53050955
08:42:06Araqfirst they ban words and then they burn books
08:43:32FromGitter<alehander92> newspeak stuff
08:43:54Yardanicoalso btw, I wonder which colors would be good for gource? right now I have these (ignore the title, it's from when I was doing it on september 2019) - https://i.imgur.com/LHZ3ad4.png
08:44:10Yardanicothere are too much users because I set 0.01s per day for testing
08:45:34*letto joined #nim
08:45:47FromDiscord<Shucks> Shouldn't that work to redirect any output to a file? ```discard stdout.reopen("C:\\Foo.txt")↵echo "Test"```
08:46:16FromDiscord<Shucks> Fails with `Error: unhandled exception: index -1 not in 0 .. 4 [IndexError]`
08:46:27Yardanicoworks on linux
08:46:45Araqwe need to remove io.nim from system
08:46:55Araqso that we can develop it well
08:47:33Araqwe can do that minor code breakage if we had better support for auto imports
08:48:20FromDiscord<Shucks> I was pretty sure it worked on 1.2.0 aswell
08:48:44FromDiscord<gokr> I have battled my way through the ORX wrapper and I aaaaalmost build sample project and then I stumbled on `Error: internal error: getTypeDescAux(tyBuiltInTypeClass)`
08:49:18FromDiscord<gokr> It's related to a call into ORX that's supposed to take three callback procs as arguments.
08:49:38Yardanicomaybe it's one of these :)
08:49:39Yardanicohttps://github.com/nim-lang/Nim/issues?q=is%3Aissue+is%3Aopen+getTypeDescAux
08:49:55Yardanicobut yeah, show the definition for that call
08:50:13FromDiscord<gokr> Holy moh. 🙂 I only found one of those when I searched for the error earlier.
08:50:21FromDiscord<gokr> One sec...
08:51:05FromDiscord<gokr> Let me push so I can point to github
08:51:34Yardanicoguess I shouldn't go fast with this gravatar and make a proper nim program to download all github avatars
08:51:50Araqso ... I think the C codegen is past its lifetime
08:52:10Araqwho is gonna replace it with something that actually was designed?
08:52:51FromDiscord<Rika> 😰
08:53:04FromDiscord<Rika> time for a rust codegen?
08:53:12YardanicoZig*
08:53:13Araqlol no
08:53:15YardanicoXD
08:53:36FromDiscord<gokr> Call is here: <https://github.com/gokr/norx/blob/master/src/norx.nim#L54> (the Init one is the error)
08:53:41AraqI'm talking about patching Rope to become a real tree
08:53:57FromDiscord<gokr> You find Init on line 14.
08:54:22FromGitter<alehander92> why not just using strings
08:54:23FromDiscord<gokr> The locks thing I just threw in, don't know what I am doing there 😉
08:54:45Araqproc Update(pstClockInfo: ptr orxCLOCK_INFO, pContext: ptr object) is a generic
08:55:10Araqso cast[orxCLOCK_FUNCTION](Update) cannot work
08:55:15FromGitter<alehander92> and pooling/caching them more efficient;
08:55:53Yardanicoit's not about speed at this point
08:56:02Araqinstead of 'ptr object' use something like 'type Context = object; ptr Context'
08:56:27FromDiscord<gokr> And here are the ... types for the callbacks <https://github.com/gokr/orx/blob/master/code/include/base/orxModule.nim#L75>
08:56:50Araqgokr: I replied to you
08:56:56FromDiscord<gokr> @Araq Ok! Yes, I saw
08:58:19Araqso ... x86 will finally be replaced by ARM, at least Apple does that
08:59:24vegaitook a sweet time
08:59:30Yardanicowell, nim is ready :P
08:59:46vegaiI remember reading an article about Acorn Archimedes in the 90s
09:01:25FromDiscord<gokr> Yeah, I got myself a little Beelink GT King, it has an Amlogic ARM SoC in it. It costs $100 and is basically a fully complete computer, normal people don't need much more and in fact, there are similar a bit slower boxes for $50. It kinda ... made it obvious that ARM is taking over.
09:04:19YardanicoI have an android TV box I installed Arch Linux ARM on, I got it for like $40 and it has an 8-core Amlogic S912 (aarch64, but cores are pretty slow), 3gb DDR3
09:04:55FromDiscord<gokr> Similar, yeah.
09:06:42FromDiscord<Shucks> That works.
09:06:42FromDiscord<Shucks> sent a code paste, see http://ix.io/2q7t
09:08:36*Tlongir quit (Quit: Leaving)
09:09:04FromGitter<alehander92> is arm nicer
09:09:06FromGitter<alehander92> for something
09:09:12Yardanicousually much more energy efficient
09:09:30Yardanicoalso less legacy :)
09:10:17FromDiscord<lqdev> but also less powerful (no SIMD)
09:10:25YardanicoARM has NEON though
09:10:37FromDiscord<lqdev> is that some SIMD alternative?
09:10:37Yardanicowhich is SIMD
09:10:39Yardanicoyes
09:10:43Yardanico"Arm Neon technology is an advanced Single Instruction Multiple Data (SIMD) architecture extension for the Arm Cortex-A and Cortex-R series processors."
09:10:48FromDiscord<lqdev> cool
09:10:50Yardanicoit's available on most modern ARM CPUs nowadays
09:11:34ZevvIt's the ARM equivalent of MMX / SSE
09:11:38FromDiscord<lqdev> it'd be interesting to see the world move over to ARM but even if Apple does that with their macbooks I doubt the rest of the world will care
09:11:46FromDiscord<lqdev> ARM has pretty poor software support as of now
09:11:59FromDiscord<gokr> @Araq It built! Thanks man. Now... of course, it doesn't run yet, but... that's something else.
09:12:10ZevvWell, 98% of the debian packages runs fine on ARM.
09:12:18Yardanicoexactly
09:12:33FromDiscord<lqdev> yes, but practically no commercial software does.
09:12:54FromDiscord<lqdev> unless you use emulation software, of course, which makes the programs run much slower.
09:12:55FromDiscord<gokr> (I used "pointer" because... that argument was one of those "void *" for "stuff I will send you when I make the callback")
09:12:55Zevvthat's not something I care about. I run literally 0% commercial software.
09:12:59FromDiscord<Elegant Beef> wel amd64 emulation on arm seems promising with rpi and mac both having solutions
09:13:26FromDiscord<Elegant Beef> I say rpi since it's the most mainstream arm device with tinkerers
09:13:45FromDiscord<gokr> "ARM pretty poor software support"... eh... 100% of embedded and 100% of smartphones is ARM.
09:14:04Yardanicowell, not 100% embedded but a lot, yeah :)
09:14:13FromDiscord<gokr> (sure, not 100, but hey...)
09:14:38FromDiscord<Elegant Beef> i believe when talking about software people mean serious applications
09:14:52*Senny quit (Ping timeout: 256 seconds)
09:14:56FromDiscord<Rika> i just got an rpi 😄
09:14:57FromDiscord<gokr> IIRC the newest fastest super computer in Japan is also ARM. Announced the other day.
09:15:04FromDiscord<Elegant Beef> Adobe suite, 3D modelling programs, video editors, and the like
09:15:15FromDiscord<Elegant Beef> Yea but that's a super computer
09:15:37FromDiscord<Elegant Beef> Take a single top of the line amd64 and put it against arm
09:15:45FromDiscord<Elegant Beef> Hell i dont even know what the top of the line arm is
09:16:23FromDiscord<gokr> @Elegant Beef Thing is, mobile is eating the world. You sound like IBM talking about Power or Sun talking about Sparq. It's the way of the Dodo to ignore where the MASS production is.
09:16:33Yardanico@Elegant server-grade models
09:16:34FromDiscord<Elegant Beef> What
09:16:35FromDiscord<gokr> Just my 2 c of course.
09:17:08FromDiscord<Rika> are there any issues with adopting arm?
09:17:21Yardanicoalso Amazon is pushing towards ARM with their own ARM-based CPUs too
09:17:24FromDiscord<lqdev> nobody mentioned games?
09:17:30FromDiscord<Elegant Beef> Everyone is pushing for arm
09:17:33FromDiscord<gokr> Chromebooks are ARM too. Both my daughters got those at school. Made by Lenovo.
09:17:35FromDiscord<Elegant Beef> Google, MS, Apple
09:17:39FromDiscord<Elegant Beef> Well that's not true
09:17:41Yardanicowhich is not bad
09:17:44FromDiscord<Elegant Beef> Chromebooks are both arm and amd64
09:17:56FromDiscord<gokr> Ah, ok.
09:18:02FromDiscord<Rika> i still dont know the issue with arm being adopted
09:18:26FromDiscord<gokr> There is no "issue" - just a small off topic discussion on it 😉
09:18:30FromDiscord<Elegant Beef> Well my issue isnt with it being adopted, more just it seems it's not nearly as capble atm vs their counterparts
09:18:39FromDiscord<Elegant Beef> Cause a majority of the chips are low spec
09:18:58FromDiscord<Rika> but thats not because of arm itself
09:19:02FromDiscord<Elegant Beef> Yea i know
09:19:04FromDiscord<Rika> just that higher end chips arent made
09:19:23Yardanicobtw we have #nim-offtopic :P
09:19:30Yardaniconot that we have any discussions here rn
09:20:19FromGitter<alehander92> zevv commercial software is ok
09:20:34FromGitter<alehander92> i keep wondering how else would we fund software
09:20:43FromGitter<alehander92> except for ads/donations
09:22:58FromDiscord<Rika> sent a code paste, see https://discordapp.com/channels/371759389889003530/371759389889003532/725642178625273928
09:23:27FromDiscord<Yardanico> same name different types?
09:23:40FromDiscord<Rika> oh yeah fuckin
09:23:43FromDiscord<Rika> remember why now
09:23:52FromDiscord<Rika> jester uses re and im using regex
09:23:53FromDiscord<Rika> aaaa
09:24:02Yardanicolol
09:24:03FromDiscord<Rika> thanks
09:24:07Zevvalehander92_: sure, I'm not saying it is not. But I just don't happen to do the kind of work and have the kind of hobbies that require me to use it.
09:24:17ZevvI *write* commercial software, so how could I be opposed.
09:24:44ZevvOh, I lied, I bought BitWig
09:25:26FromGitter<alehander92> ah okk
09:25:29FromGitter<alehander92> yeah makes sense
09:27:26*arecaceae quit (Remote host closed the connection)
09:27:55*arecaceae joined #nim
09:47:16*mklooste is now known as marnix
10:10:22Yardanicoseems like I'm getting gource avatars and names in a better shape
10:13:12FromDiscord<Shucks> So since noone was able to answer my debug question for libraries on windows (yet) on the forum, I'm redirecting stderr to a file. A simple `assert(1==0)` is raised. That works on binaries but not on a loaded library. Do I need some extra compile flags?
10:15:09FromDiscord<mratsim> --assertions:on?
10:18:49*CcxWrk quit (Read error: Connection reset by peer)
10:18:51FromGitter<thomastay> I'm wondering how I could take a ptr to the middle of a string without creating a copy? For context, here is what I'm trying to do: ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ expects_c_ptr is a C FFI function that takes as input a char*. I want this char* to point to somewhere in the middle of the original string. However, as I'm aware, slicing a string creates a new copy. Any way I can get around that?
10:18:51FromGitter... [https://gitter.im/nim-lang/Nim?at=5ef47a0bc4bdd8347504dfe9]
10:19:13*CcxWrk joined #nim
10:19:51Yardanicoaddr mystr[5]
10:20:03Yardanicowill give you an address of the 5th element and you can pass it to C FFI
10:20:41FromGitter<thomastay> great, thought something like that might be possible but was not sure. Cheers
10:24:08Yardanicowith avatars its already much nicer https://i.imgur.com/tHCLM4z.png
10:24:26Yardanico(dont worry for too much text, I'm just testing at 0.01s per day)
10:32:37Yardanicoevery time I watch it it's cool https://i.imgur.com/4V7pgr5.png :P
10:47:10*abm joined #nim
10:51:24Yardanicodamn with the current speed at the end of the whole run 4raq and timo still have some work to do (so even when gource stopped at today's date, they are still doing actions in their queue :P)
10:51:35Yardanicogonna make users faster
11:02:07*xet7 quit (Ping timeout: 260 seconds)
11:19:57*D_ quit (Ping timeout: 260 seconds)
11:22:10FromDiscord<KrispPurg> Is there a way to make oldFoo have the foobaz field have the value of "moment"?↵https://play.nim-lang.org/#ix=2q7V↵I want it to be a ref object.
11:22:23*lritter joined #nim
11:23:07*D_ joined #nim
11:33:51*Vladar joined #nim
11:36:59Araqhmm the proc is called "elifIsEasy" and yet my compiler cannot handle it
11:40:25FromDiscord<Yardanico> @KrispPurg deepCopy is one way
11:40:39FromDiscord<Yardanico> (I mean one of the ways)
11:40:41FromDiscord<Yardanico> ```↵let oldFoo = deepCopy(bar["foobar"])↵```
11:40:55FromDiscord<KrispPurg> I just found a solution lol
11:41:01narimiran@KrispPurg just as a warning, don't use `add` with tables. you'll shoot yourself in foot, sooner or later
11:41:09FromDiscord<KrispPurg> it was deepCopy
11:41:18FromDiscord<KrispPurg> wdym? narim
11:42:45Araqdon't use deepCopy
11:42:52Araqarc doesn't have it :P
11:42:53narimirantell me what does this print WITHOUT running the code: https://play.nim-lang.org/#ix=2q7X
11:43:59FromDiscord<KrispPurg> Araq, what are the alternatives of deepCopy then?
11:44:48Araquse more "object" and fewer "ref object"
11:45:58FromDiscord<KrispPurg> I mean in my library I use ref object when to assign fields like for example guild names
11:46:33narimiran@KrispPurg surprised by the actual printed stuff or not?
11:46:48YardanicoXDD
11:46:52narimirancompare it to: https://play.nim-lang.org/#ix=2q82
11:46:53FromDiscord<Vindaar> @KrispPurg well, there's https://github.com/nim-lang/Nim/issues/13997 for a reason I guess
11:46:54disbotARC: deepCopy in new runtime feature missing, do we have alternatives?
11:46:58FromDiscord<KrispPurg> oh I see
11:47:06FromDiscord<KrispPurg> I'm aware of that narim
11:50:58Araqnarimiran: so deprecate 'add' finally
11:51:19AraqIMO it's totally intuitive, that's why it exists
11:51:28Araqbut I noticed nobody agrees with me :P
11:51:32narimirani would, but there's that one guy, Araq or something, who doesn't want to get rid of it ;)
11:52:38PMunchI mean it makes sense if you know about it
11:52:42PMunchIt's just a gotcha
11:52:50YardanicoAraq: is it too early to share code samples which don't compile with https://github.com/nim-lang/Nim/pull/14790 or not yet? :D
11:52:50disbotscoped memory management
11:52:57narimiranyeah, IFF :)
11:53:15narimiran(to throw in another famous complaint :))
11:54:37*drdee quit (Ping timeout: 260 seconds)
11:56:24*tane joined #nim
11:56:40FromDiscord<Shucks> Is there a way to redirect tracebacks to a file? Just like stderr.reopen and stdout.reopen
11:57:04Araq>2&
11:57:47Araqin fact, I can never remember the shell syntax
11:58:34Araqit's one of the rare cases where I always get it wrong, no matter how often I use it. of course the real solution is to never use stderr for anything, ever.
11:59:41FromDiscord<lqdev> uh, isn't it just `./program 2> file`?
12:00:29PMunchThat's not a solution, that's running away from a problem..
12:01:40supakeenAraq: 2>&1 '2 to reference 1' or something is how I remember to redirect stderr to stdout.
12:02:46AraqPMunch: running away can be a solution
12:06:01*supakeen quit (Quit: WeeChat 2.8)
12:06:39*supakeen joined #nim
12:16:19FromGitter<alehander92> yeah its very hard to remember the 2&
12:16:31FromGitter<alehander92> but stderr is a good idea in principle
12:19:43FromDiscord<Shucks> So its frustrating. Im finally able to log exceptions from my library but not tracebacks. Funny thing is that this works for binaries. https://play.nim-lang.org/#ix=2q8m
12:24:34FromDiscord<Shucks> I mean there is actually no way to debug your nim library in any form. Atleast on windows.
12:25:03FromDiscord<Yardanico> Why you can't log tracebacks?
12:25:20FromDiscord<Shucks> The log file is just empty. Raised exceptions get logged
12:25:50FromDiscord<Yardanico> Well you should probably have a top try except in your lib
12:25:52*vsantana joined #nim
12:25:54FromDiscord<Yardanico> To catch everything
12:26:00Araqalehander92: I think "in principle" the idea is ad-hoc and bad
12:26:25Araqwhy not 2 standard input streams too then? one for programs, one for humans
12:26:49Araqwhy not 3 output streams for when you need to produce warnings in addition to errors?
12:27:00Araqit's stupid
12:27:02FromGitter<alehander92> yeah well
12:27:05FromGitter<alehander92> its kinda minimal
12:27:11FromGitter<alehander92> but it probably made sense in the past
12:27:19FromGitter<alehander92> like, one visible to end user and one not
12:27:27FromGitter<alehander92> by default
12:27:42FromGitter<alehander92> i mean, its too easy to over-generalize an abstraction
12:32:38FromDiscord<Shucks> @Yardanico Still. The tool which loads that library just crashes. The traceback doesn't gets catched https://play.nim-lang.org/#ix=2q8s
12:34:08AraqShucks: attaching GDB to a DLL can work
12:35:07Araqalehander92: the minimal solution is input/output though and it works much better as it doesn't force you to review every 'echo' call for "oh, should this have been stderr instead?"
12:36:30FromDiscord<Shucks> Well I'm not sure how. I've tried to attach to the process which loads the dll. Already asked it here: https://forum.nim-lang.org/t/6466
12:36:30Araqstdout/stderr is neither minimal nor a nice generalization, it's just more cruft you have to deal with every day. but it's software, cannot change software. you can only move entire ecosystems over to ARM
12:37:21FromDiscord<Yardanico> @Shucks well there can be something weird going on if you inject the DLL or something
12:38:26FromDiscord<Shucks> At the moment I'm using a c++ program which has 3 lines. ``` std::cout << "Tool Running!\n";↵ LoadLibrary(L"mydll.dll");↵ while (true) {};```
12:39:44*tinga joined #nim
12:42:09FromDiscord<Rika> is there a reason asynchttpclient doesnt use timeout
12:46:52*zedeus_ quit (Ping timeout: 256 seconds)
12:47:14*rockcavera joined #nim
12:47:36*filcuc joined #nim
12:48:49*zedeus_ joined #nim
12:55:50leorize[m]@Rika asyncdispatch.withTimeout is your friend
12:55:52*nikita` joined #nim
12:56:36leorize[m]though the real reason is that we don't have proper cancellation support
12:56:56*zedeus_ is now known as zedeus
12:57:09FromDiscord<Rika> nice
12:57:45FromDiscord<Rika> is there any issues to using withTimeout? because of that next message you sent im kinda scared now
12:58:55leorize[m]if you really want to cancel on timeout, you have to close the httpclient once the timeout happened and open a new one
12:59:42leorize[m]you can kinda see why that can be an issue
13:10:23leorize[m]@Shucks isn't -s the flag to... strip the resulting binary?
13:10:41leorize[m]wouldn't that just remove the debug info?
13:11:32leorize[m]also you can perfectly write DllMain in Nim :p
13:28:50PMunchWhat would a good operator to convert a hex string to a colour be?
13:28:54PMunchI obviously can't use #
13:30:34FromDiscord<mratsim> `<^>`
13:30:39leorize[m]you can just use hex numbers :p
13:30:43FromDiscord<mratsim> (why? no idea)
13:30:48leorize[m].color
13:31:18FromDiscord<mratsim> asRGB
13:31:45PMunchleorize[m], good point..
13:31:56PMunchBut I need them to at least be a distinct type
13:32:02PMunch.color would work I guess..
13:32:05leorize[m].Color
13:32:13leorize[m]yep
13:32:17PMunchBut it would be a bit annoying in a config where most of them are colours..
13:32:38FromDiscord<impbox> hmm is it possible to update github's nim syntax highlighting? https://github.com/ftsf/nico/blob/master/examples/webrtc/src/main.nim seems to fail on `1.0'f` float32 constants
13:32:40FromDiscord<mratsim> don't put operators in config file
13:32:47PMunchI guess I could have an auto-converter from int to Colour
13:32:49leorize[m]you can make a small `c` template to convert it
13:32:50FromDiscord<mratsim> people will get confused
13:33:01PMunch@mratsim, why?
13:33:16FromDiscord<mratsim> alos they won't be able to search "what does <^> means in PMunch config files"
13:33:37PMunchI'm making a general purpose configuration DSL thingy
13:33:46PMunchAnd I want it to look as clean as possible
13:33:51leorize[m]@impbox yes, it's in github/linguist
13:33:56FromDiscord<mratsim> c(0x123456)
13:34:00leorize[m]the current syntax file is from nimlime
13:34:15FromDiscord<impbox> http://impbox.net/niconet/ test of nico webrtc/peerjs networking if anyone wants to test
13:34:54FromDiscord<lqdev> PMunch: `hex"FF00FF"`
13:35:01FromDiscord<lqdev> or `hex"#FF00FF"`
13:35:03FromDiscord<lqdev> is what I use
13:35:11*zedeus quit (Ping timeout: 260 seconds)
13:35:22FromDiscord<impbox> 8565
13:37:03*zedeus joined #nim
13:38:27PMunch@lqdev, oh that's nice
13:38:34FromDiscord<impbox> leorize thanks, i'll file an issue
13:39:02PMunchI guess rgb"FF00FF" would work as well, that way I could allow people to define colours as other things as well
13:39:34FromDiscord<lqdev> I just do separate `rgb(uint8, uint8, uint8)` and `hex"RRGGBB"`
13:39:58PMunchBut what if you want to do hex"HHSSLL"?
13:40:16PMunchHaving rgb with uint8 and str overloads seems cleaner
13:40:26PMunchOr at least more flexible
13:40:31FromDiscord<lqdev> `hsl(float, float, float)`
13:40:43FromDiscord<lqdev> I've never seen HSL in hex form
13:43:17PMunchBecause people like you don't think to implement it :)
13:43:55FromDiscord<lqdev> doesn't seem very useful though
13:43:57leorize[m]hex form of color is restricted to rgb most of the time, probably to avoid confusion
13:44:07*rockcavera quit (Remote host closed the connection)
13:44:13leorize[m]and it's not like you can't convert rgb to hsl...
13:45:50*endragor quit (Remote host closed the connection)
13:46:50*endragor joined #nim
13:47:56*waleee-cl joined #nim
13:48:15PMunchI'm having way too much fun just passing images of colour spectrums through my script :P
13:48:57zedeusshare the results!
13:49:16PMunchJust run it yourself :P
13:49:28PMunchSince I included the data file the plotpng script is really fast
13:51:16PMunchhttps://uploads.peterme.net/disk.png
13:51:29PMunchhttps://uploads.peterme.net/cube.png
13:52:46FromDiscord<Rika> nice visualizations
13:53:19*endragor quit (Ping timeout: 246 seconds)
13:53:51PMunchhttps://uploads.peterme.net/all16million.png
13:54:04PMunchBased on this image: https://en.wikipedia.org/wiki/Color_depth#/media/File:16777216colors.png
13:54:58Zevvthat's a pretty smart but totally useless representation of color space :)
13:55:08PMunchHaha
13:55:10FromDiscord<Rika> thats a beautiful looking image from afar
13:55:38*drdee joined #nim
13:55:53zedeusneat
13:56:14FromDiscord<lqdev> PMunch: give me the raw data, I'll load it into my aglet volume cloud
13:56:50FromDiscord<lqdev> preferably in a texture with each Z layer stacked vertically
13:56:50PMunchhttps://github.com/PMunch/colourfinder
13:57:14PMunchAll the valid colours are in goodcolours.png
13:57:26FromDiscord<lqdev> that's a thicc file damn
13:57:34FromDiscord<lqdev> those are hexcodes?
13:57:37PMunchHaha, what did you expect :P
13:57:38PMunchYup
13:57:55*dddddd joined #nim
13:58:25PMunchThose are all the colours out of the 16 million 24-bit RGB codes that are far enough from every language in Linguist to be used for other languages
13:59:09FromDiscord<lqdev> generating this texture will take a while I guess
13:59:14PMunchMy favourite representation is still my original one
13:59:31PMunchSo cool to see visually the different languages
14:00:31PMunchOooh, what would be cool is to create one transparent PNG per language, which blacks out the colours taken by that language
14:01:50FromDiscord<lqdev> https://media.discordapp.net/attachments/371759389889003532/725712359745650728/unknown.png
14:01:58FromDiscord<lqdev> I like how firefox has a stroke downloading this file
14:02:12PMunchHaha :P
14:03:37*endragor joined #nim
14:08:38*endragor quit (Ping timeout: 260 seconds)
14:12:33FromDiscord<lqdev> my big brain decided that it'd be a *brilliant* idea to import and process the entire file at compile time…
14:18:26FromDiscord<mratsim> compile-time gone wrong
14:21:26FromGitter<ynfle> Can someone help me with this code? https://play.nim-lang.org/#ix=2q94 I am getting weird behaviour when I cast `int` to `set[<enum type>]` and there are more bit in the `int` the elements of the enum type
14:22:40FromGitter<ynfle> https://play.nim-lang.org/#ix=2q97 Here is with the output inlined
14:23:18leorizewhat are you trying to do?
14:23:28FromDiscord<Rika> whats the intended output
14:24:03leorizealso casts to set[T] are pretty much undefined
14:24:15FromGitter<ynfle> When the int has more bits, then the set wraps around and includes the first element when converted to a seq
14:25:11leorizethere's nothing much that can be done tbh
14:26:18FromGitter<ynfle> Wdym?
14:26:43leorizecast[set[T]]() are undefined
14:26:51leorizeyou're in danger zone there :P
14:27:00FromGitter<ynfle> Ok
14:27:07leorizethere's exactly one case where it's defined actually
14:27:29leorize~bitfield
14:27:29disbotno footnotes for `bitfield`. 🙁
14:27:39leorizehttps://nim-lang.org/docs/manual.html#set-type-bit-fields
14:28:08FromDiscord<mratsim> If you interface with Pascal, I thin Nim sets have the same format as Pascal sets
14:29:07FromGitter<ynfle> @leorize, I am doing exactly that
14:29:15leorizeI think we should make our bitsets a bit deterministic so we can safely interfacing with them via C
14:29:42FromGitter<ynfle> I'm casting an int so a set of enum typs
14:29:43FromDiscord<mratsim> but C doesn't have bitsets? or you mean C flags?
14:30:12leorizeyep, anything really
14:30:34leorizejust so it's easier to just write the Nim version of an interface instead of having to "translate" it to C :P
14:30:42FromDiscord<mratsim> we just need a "Flag" module: https://github.com/numforge/laser/blob/master/laser/photon_jit/photon_osalloc.nim#L50-L61
14:31:01FromDiscord<mratsim> feel free to add this 20 lines module to fusion and open the door to leftpad 😉
14:31:39FromGitter<ynfle> @leorize, I'm using a bit set
14:31:58FromGitter<ynfle> Do I have explicitly decalre the size for this to work?
14:32:14leorizeI need to see your code, actually
14:32:28leorizethough I wouldn't count on this working really well for C interfacing
14:32:28FromGitter<ynfle> https://play.nim-lang.org/#ix=2q97
14:32:37leorizesomething like @mratsim module will work better
14:32:41FromGitter<ynfle> I'm not interfacing with C
14:32:49FromDiscord<mratsim> what you are doing is not a C bitfield
14:32:58leorizethen why do you want to cast?
14:33:08leorizestorage?
14:34:05FromGitter<ynfle> I'm doing a coding exercise, but the idea is to encode enum options in binary and be able to convert back and forth
14:34:47FromGitter<ynfle> I'm accepting an int as input
14:34:56*PMunch quit (Quit: Leaving)
14:37:12leorizeI don't think you can reliably do it like this
14:37:24leorizethe set format is pretty sensitive to any changes in bits
14:37:27disruptektype MyOpt {.size: sizeof(cint).} = enum ... cast[cint](set[MyOpt])
14:37:37disruptekrtfm
14:38:06leorizeif you have more bits than the set it's still gonna cause issues
14:38:22leorizethis is just how those things work, really
14:38:28FromGitter<ynfle> The set isn't affected
14:39:04leorizeit just doesn't appear to
14:39:05FromGitter<ynfle> It's just like that when I convert to seq
14:39:11FromGitter<ynfle> Aha
14:39:54leorizethe iterator that run through the set got caught by those extra bits
14:40:10FromGitter<ynfle> Ok
14:40:27leorizeand I'm not even sure how this would affect normal set operations
14:41:14leorizebtw welcome back disruptek, someone was looking for you yesterday
14:43:03*krux02 joined #nim
14:43:09FromDiscord<Clyybber> o/ disruptek
14:43:35FromDiscord<Clyybber> are we talkimg about set or seq now?
14:43:51*pietroppeter quit (Quit: Connection closed for inactivity)
14:44:23FromDiscord<Clyybber> because bitsets *are* used for interfacing with C. Its stable and we would notice really hard if it were broken
14:45:17*leorize quit (Quit: WeeChat 2.8)
14:45:23*endragor joined #nim
14:46:26FromDiscord<Shucks> in nim ther doesn't exists something like the arrow operator to access pointer objects huh? Its just `.` for nim right? https://www.tutorialspoint.com/cplusplus/cpp_member_operators.htm
14:46:35FromDiscord<Shucks> (edit) 'ther' => 'there'
14:47:00FromGitter<matrixbot> `konez2k` hey, is there any way in nim to benchmark a function by returning ops/s?
14:47:15FromDiscord<exelotl> @Shucks indeed, in nim there's only `.`
14:49:39FromDiscord<Clyybber> konez2k, I think I saw something like that in @mratsim s repos
14:49:51FromDiscord<Clyybber> or maybe it was zevv
14:57:22FromGitter<ynfle> @Clyybber set and seq
14:58:22*D_ quit (Ping timeout: 260 seconds)
14:59:34FromDiscord<Clyybber> oh, looking at your code, yeah, you are getting some overlap
14:59:42FromDiscord<Clyybber> but the code doesn't make sense :D
14:59:46FromGitter<ynfle> If there are more bits in the `int` that is cast to `set[<enum type>]`, then when converting to a `seq` it wraps the enum
14:59:51FromGitter<ynfle> Why?
15:00:32*D_ joined #nim
15:02:07FromDiscord<Clyybber> I think its because the cast doesn't do much
15:02:22FromDiscord<Clyybber> because the set has a size thats multiple of 8s probably
15:02:39FromDiscord<Clyybber> so the set retains at least some of those bits
15:02:45FromGitter<ynfle> > but the code doesn't make sense :D ⏎ why?
15:02:51FromDiscord<Clyybber> and the items iterator for a set can access them
15:03:17FromGitter<ynfle> > but the code doesn't make sense :D ⏎ ⏎ why?
15:03:52FromDiscord<Clyybber> because you add integers, and then cast them to a set :P
15:04:05FromDiscord<Clyybber> and they have no correlation to the set enum
15:04:34*endragor quit (Ping timeout: 240 seconds)
15:08:45*endragor joined #nim
15:10:35FromDiscord<Clyybber> hmm, there is something weird going on though, because I can't reproduce it in a manual items(someSet)
15:11:51FromDiscord<Clyybber> @ynfile I'm curious though, why are you encountering this issue?
15:12:16FromDiscord<Clyybber> There must be something wrong with the data you are deserializing if you get this kind of behaviour
15:13:57FromGitter<ynfle> Wdym?
15:14:05FromGitter<ynfle> https://play.nim-lang.org/#ix=2q97
15:14:08*endragor quit (Ping timeout: 256 seconds)
15:14:11FromGitter<ynfle> This is everything
15:16:22FromDiscord<Clyybber> I mean that converting that integer (15+16+32) to a set[Code] is wrong
15:18:43FromGitter<ynfle> Why?
15:19:34FromDiscord<l1pz> When I use the proc moveDir, i get access is denied exceptions and i can't figure out why...
15:19:36FromDiscord<l1pz> I can easily move the files manually. I am on Windows. Any ideas why?
15:20:55FromDiscord<Clyybber> @ynfle: Ah found the issue! toSeq creates a new seq with len x.len
15:21:10FromDiscord<Clyybber> And that initializes the last element to a
15:21:17FromDiscord<Clyybber> So thats the whole magic cause
15:21:51FromDiscord<Clyybber> @ynfle: If you go over it manually like so `for code in x: echo code` you'll get what you expect to
15:23:48FromDiscord<Clyybber> so its x.len thats 6 because of the trailing bits
15:24:03*opal quit (Ping timeout: 240 seconds)
15:25:49leorize[m]this just shows how `set[T]` can't just be converted between ordinal types safely
15:25:56leorize[m](well it's gated behind `cast` for a reason after all)
15:26:55*opal joined #nim
15:26:57leorize[m]to "safely" convert, use a set that has all elements set as a mask
15:27:11FromDiscord<Clyybber> Yep, thats the best solution
15:27:24leorize[m]apply the mask on an `int` value and it should trim off any excess bits
15:27:25FromDiscord<Clyybber> @l1pz Hmm, thats weird
15:27:29FromDiscord<Clyybber> No idea sorry
15:27:33FromDiscord<l1pz> Also copyDir seems to copy the contents of a directory. Is that the expected behaviour?
15:27:36FromDiscord<l1pz> (edit) 'behaviour?' => 'behavior?'
15:27:57FromDiscord<l1pz> Copying works, it's just moving that doesn't
15:28:52*endragor joined #nim
15:30:23FromDiscord<Clyybber> Ah, you probably don't have permissions for the source dir
15:30:31FromDiscord<Clyybber> or the source dir is on a different drive?
15:31:08FromDiscord<l1pz> No. They are all on the same drive. They both the source and the destination is a subdirectory inside my project.
15:31:12FromDiscord<l1pz> Next to the source files
15:31:18FromDiscord<Clyybber> does a mv work?
15:31:35FromDiscord<l1pz> My structure is something like this. out -> folder1 -> folder2 -> file.txt
15:31:51FromDiscord<l1pz> I'd like to move the folder2 to out and delete folder1
15:32:50FromDiscord<l1pz> copyDir("out/folder1", "out") does what I want, but I think it shouldn't.
15:33:24FromDiscord<l1pz> It should be copyDir("out/folder1/folder2", "out"), but then it moves file.txt to out, not the folder itself
15:34:50FromDiscord<l1pz> And when I change copyDir to moveDir I get Exception: Access is denied
15:35:15FromDiscord<l1pz> I think I check the source so I can see what's up
15:35:40leorize[m]@ynfle https://play.nim-lang.org/#ix=2q9u
15:35:54FromDiscord<Clyybber> moveFileExA is failing, so its windows related, not sure whats going on there
15:37:20FromDiscord<Clyybber> can you try running it as admin?
15:37:55*endragor quit (Ping timeout: 260 seconds)
15:38:02leorize[m]unicode in file name I guess?
15:38:54FromDiscord<Clyybber> oh, right, @l1pz can you try compiling with -d:winUseUnicode?
15:39:06FromDiscord<Clyybber> (edit) '-d:winUseUnicode?' => '-d:useWinUnicode?'
15:39:09FromDiscord<l1pz> I'll check
15:39:50FromGitter<ynfle> @leorize[m] thx!
15:40:01FromDiscord<l1pz> I still fails.
15:40:15FromDiscord<Clyybber> Are you sure? I changed the message because I made a typo
15:41:15FromDiscord<l1pz> Yeah.
15:41:34FromDiscord<l1pz> Additional info: "(\"D:\\\\Projects\\\\Nim\\\\mudl\\\\out\\\\gmtyyzsswkge\", \"D:\\\\Projects\\\\Nim\\\\mudl\\\\out\")" [OSError]
15:41:39leorize[m]useWinUnicode is defined by default
15:41:46FromDiscord<l1pz> There are the directories
15:42:15FromDiscord<Clyybber> leorize: Oh
15:42:17FromGitter<ynfle> @Clyybber makes sense
15:43:59FromGitter<ynfle> It initializes it to `Code(low(code))`
15:44:15FromDiscord<Clyybber> yep
15:44:26FromDiscord<Clyybber> and since len is just a bitCount it also counts the erraneous bits
15:45:05Zevvzone2k: yeah I kind of hacked together a rudimentary VM profiler
15:45:39Zevvyou just get the top #N inclusive compile time procs, so nothing like ops/s
15:53:35*endragor joined #nim
15:55:48FromGitter<ynfle> @Clyybber Should `.len` be different for set? For this situation?
15:56:01FromDiscord<Clyybber> I don't think so
15:56:13FromDiscord<l1pz> I got the folder moving working.
15:56:21FromGitter<ynfle> Why?
15:56:25FromDiscord<Clyybber> ynfile Its correct as long as your set is correct
15:57:10FromDiscord<l1pz> It was trying to overwrite files, because I didn't add a folder name to the destination.
15:57:18FromDiscord<Clyybber> ah!
15:57:26FromDiscord<l1pz> Just a folder, where I wanted the src directory to placed into.
16:00:04leorize[m]@ynfle reminder that set[T] is a high speed bitset and we can't really afford any inefficiencies, such as doing type reflection to ensure that sets can only have a max amount of values
16:00:18leorize[m]also that `cast` is unsafe by definition
16:01:26*endragor quit (Ping timeout: 265 seconds)
16:02:55FromGitter<ynfle> Ok
16:03:52*endragor joined #nim
16:06:46*vsantana quit (Quit: leaving)
16:08:34*endragor quit (Ping timeout: 240 seconds)
16:15:57FromDiscord<Shucks> I might be wrong but I think im running into gc issues. Im reading with a library the internal process data. Thats what im using: ```proc read*[T](address: ByteAddress, t: typedesc[T]): T =↵ result = cast[ptr t](address)[]```
16:16:15FromDiscord<Shucks> I know its fancy stuff. But how unsafe is that? And if yes what could work better?
16:17:11FromDiscord<mratsim> it's perfect
16:17:12leorize[m]unless I have all the typedefs, I can't say for sure
16:17:34*marnix quit (Ping timeout: 240 seconds)
16:18:11FromDiscord<Shucks> Weird. https://prnt.sc/t6einx↵https://prnt.sc/t6eiu3
16:18:34FromDiscord<Shucks> And shouldn't segfaults be able to catch with `import segfaults`?
16:19:04FromDiscord<Rika> not a great idea to catch segfaults
16:19:19leorize[m]never a great idea
16:19:54leorize[m]I think the only thing segfaults give you is the ability to see the stacktrace (in release mode)
16:20:08*Vladar quit (Quit: Leaving)
16:20:33FromDiscord<Shucks> Im not able to catch it anyways, thats why im asking
16:20:55*filcuc quit (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
16:21:17FromDiscord<mratsim> ah, the nice bugs in rawAlloc
16:21:32FromDiscord<Clyybber> @Shucks How do try to catch it?
16:21:54FromDiscord<mratsim> In my case it often happens when I have a buffer overflow and I overwrite the refcount of the object
16:22:23FromDiscord<Clyybber> @mratsim What bugs does rawAlloc have?
16:22:44FromDiscord<mratsim> it's easy to oerwrite the refcount in case of a stack/buffer overflow
16:22:48FromDiscord<mratsim> not sure if a bug :p
16:23:22FromDiscord<mratsim> it did have bugs also in the past but AFAIK I didn't had new ones since the past 4 months or so
16:23:39FromDiscord<Shucks> just a simple try except with imported segfaults. The library still causes a crash. Also tried to change the gc with no success yet
16:24:20FromDiscord<Rika> no success getting it to work with another gc or no success changing the gc?
16:24:38FromDiscord<Shucks> getting it to work with another gc
16:25:49FromDiscord<Clyybber> @mratsim Are those older bugs reported/fixed?
16:25:59FromDiscord<mratsim> yes
16:26:21FromDiscord<Clyybber> all fixed?
16:26:37FromDiscord<mratsim> https://github.com/nim-lang/Nim/issues?q=is%3Aissue+is%3Aopen+rawAlloc
16:27:30FromDiscord<mratsim> the one I was referring to was: https://github.com/nim-lang/Nim/issues/13598
16:27:32disbotGC refcounting bug ; snippet at 12https://play.nim-lang.org/#ix=2q9T
16:28:24FromDiscord<mratsim> in particular a cast hidden in a proc that threw off refcounting
16:28:39FromDiscord<Clyybber> ah I see
16:30:46FromDiscord<Shucks> --gc:none works lol
16:31:09FromDiscord<Rika> memory go 📈
16:31:19FromDiscord<Shucks> Yay ;p
16:31:20FromDiscord<Rika> stonks 📈
16:32:11FromDiscord<Shucks> just gonna try every gc now.. >.<
16:32:30FromDiscord<mratsim> Boehm and mark-and-sweep are likely to work
16:32:57FromDiscord<mratsim> but I think you have a bug somewhere just like I had with my cast
16:33:32FromDiscord<Shucks> Well the standard one just randomly failed on any string definition with rawAlloc
16:34:00FromDiscord<mratsim> the bug I had makes it that the stacktrace showed the next allocation, not where the bug happens
16:34:45FromDiscord<mratsim> i.e. memory corruption bugs might show already corrupted stacktrace, not where the actual corruption happened
16:37:43*rockcavera joined #nim
16:47:41FromDiscord<willyboar> https://www.infoq.com/news/2020/06/facebook-ai-transpiler/
16:49:20FromDiscord<Clyybber> I hope they don't actually use it
16:49:35FromDiscord<Clyybber> otherwise a new era of buggy software will be upon us
17:02:06*bung_ quit (Quit: Lost terminal)
17:03:00FromDiscord<mratsim> Facebook won't use it, but I bet web shop will transform JS code to C 😛
17:12:22*endragor joined #nim
17:14:13ZevvShucks: do you have something small that reproduces?
17:16:58*Senny joined #nim
17:17:06*endragor quit (Ping timeout: 256 seconds)
17:19:52*fredrikhr quit (Read error: Connection reset by peer)
17:20:22*fredrikhr joined #nim
17:23:43FromDiscord<mratsim> omg, those github notifications, I have 50 notifications per 10 minutes :/
17:26:14*endragor joined #nim
17:31:26FromDiscord<Rika> is there a reason string's `[]` doesnt use substr?
17:32:33FromDiscord<mratsim> what is substr?
17:32:52FromDiscord<mratsim> oh TIL
17:33:13*endragor quit (Ping timeout: 264 seconds)
17:34:20FromDiscord<Rika> yeah same
17:34:31FromDiscord<Rika> learned it because of parseutils
17:39:52*endragor joined #nim
17:45:43*endragor quit (Ping timeout: 246 seconds)
17:50:08*sacredfrog quit (Quit: ZNC 1.8.1 - https://znc.in)
17:51:43*sacredfrog joined #nim
17:52:33*a_b_m joined #nim
17:54:40*Trustable joined #nim
17:54:54*abm quit (Ping timeout: 240 seconds)
18:00:07ZevvCan I force openarrays to be of the same dimensions using generics?
18:00:57FromGitter<timotheecour> openarray len is a runtime value, i don’t see how that could work
18:01:45Zevvno, I just realized that after hitting enter :)
18:13:46*leorize joined #nim
18:14:50*fredrikhr quit (Ping timeout: 265 seconds)
18:16:28FromDiscord<mratsim> you can use your custom ptr + len type with static length
18:20:09Zevvhmm that makes sense
18:28:49*haxscramper joined #nim
18:31:09haxscramperThere is no way to simpliy 'return' value from a macro (in general)? The closest thing is to generate code that would construct original object at runtime. Something like `macro makeStr(...): untyped = newLit("result")`.
18:33:34haxscramperBy 'return' I mean: replace macro invocation with something that could be considered 'equal' (for example `==`) to original object.
18:33:53leorizeuse `newLit`?
18:34:50leorizenewLit can create a NimNode from an object
18:35:22haxscramperIt does not work for things like tables, sequences and case objects. I want more general solution. `newLit` works only for simple types (string, integer etc.)
18:37:11leorizeit does work for complicated things, but you must have full access to the type
18:37:43leorizeI guess at best you can construct a genSym-ed `const` and use it
18:41:19*endragor joined #nim
18:43:40PrestigeFinished!
18:43:49Prestigewrong chat lol
18:47:59*endragor quit (Ping timeout: 258 seconds)
19:01:20*polypus74 joined #nim
19:02:10*polypus74 quit (Client Quit)
19:02:29*polypus74 joined #nim
19:04:52*polypus74 quit (Client Quit)
19:05:10*polypus74 joined #nim
19:06:52FromDiscord<KrispPurg> Is there a way to check if the user has put `--gc:arc` when they are running the script?
19:07:05FromDiscord<KrispPurg> I've tried when defined
19:08:00FromDiscord<lqdev> when compileOption("gc", "arc")
19:08:03FromDiscord<mratsim> in the gc.nim there must be the appropriate when defined
19:08:42leorizeuse `defined(gcDestructors)`
19:08:54*a_b_m quit (Read error: Connection reset by peer)
19:11:20FromDiscord<KrispPurg> thank you
19:12:01leorizewhy do you need to detect arc though?
19:12:22FromDiscord<KrispPurg> because deepCopy does not work in arc
19:12:37leorizecan't you just use `not declared(system.deepCopy)`?
19:14:18FromDiscord<KrispPurg> does deepCopy not work when it's ORC?
19:14:34leorizeyes
19:14:51FromDiscord<KrispPurg> I see.
19:14:52leorizedeepCopy is not available for anything based of --gc:destructors
19:15:00leorize(which includes arc, orc)
19:15:47leorizethe flag is gone now but the define is still there to support already written code, so you don't have to worry about it not being defined
19:19:00*haxscramper quit (Remote host closed the connection)
19:23:47*drdee quit (Ping timeout: 260 seconds)
19:25:00FromDiscord<Firefell> Hello how I can get IP adresse with a AsyncSocket ?
19:29:10FromDiscord<Yardanico> getPeerAddr if you mean the client address
19:31:14FromDiscord<Firefell> yes
19:31:44FromDiscord<Firefell> Thanks
19:35:17*vsantana joined #nim
19:43:23*nsf quit (Quit: WeeChat 2.8)
19:54:55*vsantana_ joined #nim
19:55:16*vsantana_ quit (Client Quit)
19:55:45*endragor joined #nim
19:58:22*vsantana quit (Ping timeout: 246 seconds)
20:00:22*endragor quit (Ping timeout: 256 seconds)
20:06:13*endragor joined #nim
20:10:47*endragor quit (Ping timeout: 258 seconds)
20:28:48FromDiscord<lqdev> can .since be used to annotate procs in my own library? like, I have a proc and I'd like to annotate it with `{.since: (0, 2).}`, would that work, or is it Nim version exclusive?
20:29:04leorizeit wouldn't work
20:29:14leorizealso, the since pragma is not exported anywhere outside of the stdlib
20:29:26FromDiscord<lqdev> ah
20:29:58leorizewith that said, nothing really stop us from making a superior `{.since.}` though :P
20:30:04leorizeit's just a template afterall
20:30:15FromDiscord<lqdev> what does it do?
20:31:00leorizewhen (NimMajor, NimMinor) > (x, y): body
20:31:21FromDiscord<lqdev> ah, so it's for version emulation
20:31:44FromDiscord<lqdev> looking at the name I thought it only affected doc gen
20:31:56leorizeit never touched docgen lol
20:32:27leorizewe can make a macro that's superior by actually adding a footer like: "Available since: 1.2.0"
20:32:27FromDiscord<lqdev> ohhhh
20:32:57FromDiscord<lqdev> I'll probably add a macro for aglet which switches GL versions
20:33:24FromDiscord<lqdev> so you can do `-d:aglOpenGl=3.3` to limit yourself to GL 3.3 features only
20:33:32FromDiscord<lqdev> (edit) '3.3' => '<=3.3'
20:33:41leorizenice
20:34:09FromDiscord<lqdev> but right now it isn't really needed because I didn't implement anything beyond 3.3 anyways :P
20:35:09FromGitter<ynfle> Is there a way to define my own compilation options eg. `--file:path/to/my/file`?
20:35:46FromDiscord<lqdev> nope
20:35:48leorizenope
20:35:57Yardanico@lqdev you can use it, yes
20:36:03Yardanicobut I don't think it would be useful
20:36:09Yardanico@ynfle you can use defines
20:36:19Yardanicolike -d:myFile=path/to/my/file
20:36:38FromDiscord<lqdev> @ynfle the only way is through using `defined`, there's also `.strdefine` and `.intdefine` pragmas which allow you to pass arguments to defines
20:36:50FromDiscord<lqdev> eg. `const myFile {.strdefine.} = "some/default/value"`
20:36:55Yardanicoyeah, it's a nice feature
20:37:14*narimiran quit (Quit: leaving)
20:37:19FromGitter<ynfle> Thx @lqdc
20:37:24FromGitter<ynfle> Looks cool
20:38:06Yardanico@lqdev see https://github.com/nim-lang/Nim/blob/fbc97e712a67f30076f7633880383c8c4ae7866f/tests/stdlib/tsince.nim
20:38:30*endragor joined #nim
20:47:14*endragor quit (Ping timeout: 240 seconds)
20:48:26FromDiscord<Zachary Carter> what's the equivalent of the `#` expand token C preprocessor functionality for a template?
20:50:33FromDiscord<lqdev> `astToStr`?
20:50:37FromDiscord<lqdev> idk what the operator does
20:50:43FromDiscord<lqdev> does it stringify tokens?
20:50:50FromDiscord<Zachary Carter> yes
20:50:59FromDiscord<Zachary Carter> ```Another potentially useful macro option is to turn a token into a string containing the literal text of the token. This might be useful for printing out the token. The syntax is simple--simply prefix the token with a pound sign (#).```
20:51:10FromDiscord<lqdev> `astToStr(x)` should work
20:51:16FromDiscord<Zachary Carter> thanks!
20:53:34FromDiscord<Rika> i-is it normal for -d:release to be much faster than -d:danger?
20:53:41Yardanicono
20:53:44Yardanicobut maybe your nim is old?
20:53:48FromDiscord<Rika> im on devel
20:53:59Yardanicoare you perhaps specifying -d:danger in a file?
20:54:03FromDiscord<Rika> no
20:54:06Yardanicothen idk
20:54:18Yardanico-d:danger on devel will also define -d:release
20:54:19FromDiscord<Rika> i've threads on, maybe that? dunno
20:55:00FromDiscord<Rika> d:release gives me a few microseconds per request, d:danger does a millisecond per request, dunno why
20:55:06FromDiscord<Rika> request as in http request
20:55:15FromDiscord<Rika> im running web server
20:55:20FromDiscord<Rika> a* web server
20:56:47leorize[m]just use d:release, you will want those assertions to avoid someone breaking the server
20:57:12Yardanicoyeah, people sometimes forget that -d:danger is not magic
20:57:23Yardanicoit just disables all checks, you can disable the ones you don't need manually
20:57:44FromDiscord<Rika> yeah i also got an out of memory on d:danger lmao i dont wanna find that bug in my code rn so ill just *sweeps under rug*
20:58:36FromDiscord<Rika> now i need to figure out tls...
20:58:39*disruptek quit (Quit: bye)
20:58:39*disbot quit (Quit: oops)
21:15:07*disruptek joined #nim
21:16:06*disbot joined #nim
21:23:00*NimBot joined #nim
21:25:06FromDiscord<willyboar> @Rika still benchmarking?
21:25:26FromDiscord<Rika> no, something else
21:27:08FromDiscord<willyboar> I will ping awesome-nim creator to pass me the repo. I will take care the web section but I want some volunteers for other sections
21:27:20Yardanicofirst thing you will want to do for awesome-nim
21:27:37Yardanicois incorporate https://github.com/nim-lang/Nim/wiki/Curated-Packages and https://github.com/happycodrz/nim-world
21:27:41Yardanicointo it
21:28:05FromDiscord<willyboar> Yes I am aware of curated packages
21:28:28FromDiscord<willyboar> But it's not a common source for new people
21:28:38Yardanicowell yes, but you still should take all packages from it :)
21:30:13FromDiscord<willyboar> The problem is not to take current packages. Problem is to stay updated
21:30:42FromDiscord<willyboar> I think the best is to have 2 people per section
21:30:47Yardanico??
21:30:58Yardanicothere was a reason awesome-nim stopped updating btw
21:31:11Yardanicobecause of curated packages i think :)
21:31:17FromDiscord<willyboar> Nope
21:31:21Yardanicothen why?
21:31:35FromDiscord<willyboar> Because owner don't have time
21:31:49Yardanicowell i hope you have the time then :P
21:31:50*solitudesf- quit (Ping timeout: 246 seconds)
21:31:57Yardanicoalso awesome lists are of course opinionated
21:32:00Yardanicowhat to include in them?
21:32:07Yardanicoall nim packages or good ones? how to determine if a package is good?
21:32:26FromDiscord<willyboar> Awesome are mostly updated with prs
21:32:38Yardanicoyes, but it's also harder than editing the wiki
21:32:49YardanicoI mean updating the wiki is faster and easier than creating a PR
21:33:09Yardanicoyou can just make a github ci action thing to mirror the wiki page to some repo :P
21:33:26FromDiscord<willyboar> Yes but everyone can add to the wiki I think
21:33:31Yardanicoby default - yes
21:33:35Yardanicoand I don't see a problem with that really
21:33:40Yardanicoit's true for wikipedia for most articles too
21:34:17FromDiscord<willyboar> Also wiki is not common
21:34:27*endragor joined #nim
21:34:48FromDiscord<willyboar> When I was discovered Nim one of the first repos I checked was awesome-nim
21:35:05Yardanicoas Isaid
21:35:11Yardanicowe can just make a mirror of the wiki page to some repo then
21:35:12FromDiscord<willyboar> It tends to be something standard
21:35:36Yardanicoawesome lists are just some libs/apps written in a programming language
21:35:39Yardanicowith a short description
21:36:16Yardanicobut yeah, do it if you have time :P
21:36:25*nikita` quit (Quit: leaving)
21:37:57FromDiscord<willyboar> Well it's easy to just merge prs but I can't check all the packages alone.
21:39:41FromDiscord<willyboar> That's why I have proposed to move it into nim-lang and add some collaborators
21:39:52Yardanicohm
21:40:30FromDiscord<willyboar> I volunteer for the web related section
21:40:40FromDiscord<willyboar> 😋
21:41:18*endragor quit (Ping timeout: 260 seconds)
21:41:25Yardanicomake an RFC
21:41:31Yardanicohttps://github.com/nim-lang/RFCs
21:41:43Yardanicojust open an issue explaining what, why and how :)
21:46:25FromDiscord<willyboar> I will think about it. Maybe I will open a forum thread first to see what other people think
21:46:36Yardanicowell RFCs are for that exact reason too :)
21:46:41Yardanicoyou can open an RFC and make a forum thread for it
21:46:47YardanicoRFC stands for "Request for comments"
21:47:30FromDiscord<willyboar> I want my first RFC to be successful
21:47:33Yardanicolol
21:47:34FromDiscord<willyboar> 🤣
21:47:48Yardanicomy first and only RFC is https://github.com/nim-lang/RFCs/issues/240
21:47:49disbotMake "unreachable statement" error a warning ; snippet at 12https://play.nim-lang.org/#ix=2q6i
21:48:06*endragor joined #nim
21:48:12FromGitter<ynfle> If someone comments isn't that successful?
21:48:39Yardanico"succesful" RFC is the one which was accepted :P
21:48:49FromDiscord<willyboar> Exactly
21:49:20FromGitter<ynfle> I wasn't a serious comment
21:49:25Yardanicoyeah I know :P
21:49:34FromDiscord<willyboar> Exactly
21:50:12FromGitter<alehander92> willyboard just chill
21:51:23FromDiscord<lqdev> ~~systemd-willyboard~~
21:51:31Yardanicono systemd in my backyard
21:51:37FromDiscord<lqdev> same here
21:52:26FromDiscord<lqdev> ~~it's just that whenever I see some word with an extra d attached to it this it the first thing that comes to my mind~~
21:53:00YardanicoGNU/systemd
21:53:03Yardanicoit's the future you chose
21:53:13Yardanicohttps://pics.me.me/gnu-systemd-dont-call-it-a-grave-its-the-future-19490809.png
21:53:31Yardanicoalso offtopic too, but https://ghnou.su/systemd
21:54:03*endragor quit (Ping timeout: 260 seconds)
21:54:21FromDiscord<lqdev> XDDD
21:55:39FromDiscord<willyboar> Alehander92 I am one of the most chilled person you are ever meet
21:55:56FromDiscord<willyboar> 😋
21:56:17leorizedamn, someone predicted systemd-oomd before it's even out
21:58:03FromGitter<alehander92> welel i hope
21:58:08FromGitter<alehander92> you are not ice cream
22:02:57FromDiscord<willyboar> Just think that I live together with 5 women 🤣 🤣
22:03:11Yardaniconice anime harem protagonist
22:04:55FromDiscord<willyboar> 4 of them are my daughters so nah
22:06:19FromDiscord<Shucks> you gonna continue till you get a son? ;D
22:06:41FromDiscord<Shucks> while not son: continue
22:06:52FromDiscord<willyboar> No. I want one more daughter
22:06:57Yardanicoi feel too young now
22:07:07FromDiscord<willyboar> You are
22:08:09FromDiscord<Clyybber> Yardanico: When you put the unreachable statement in a block it works :p
22:08:14Yardanicolol
22:08:18Yardanicowell yeah I know
22:08:20Yardanicosame as Timo said
22:08:29Yardanicoif you put "if true" it works too
22:08:56FromDiscord<Clyybber> oh, but I don't mean the return
22:09:06FromDiscord<Clyybber> I mean the unreachable statement itself
22:09:21Yardanicooh
22:09:26Yardanicolol
22:10:00*Trustable quit (Remote host closed the connection)
22:10:00FromDiscord<Clyybber> discovered by looking at the implementation :D
22:11:25FromDiscord<Clyybber> Yardanico: Btw, what do you think of renaming it to "unreachable code" ?
22:11:44FromDiscord<Clyybber> since it might not only be one statement thats unreachable
22:11:56FromDiscord<Clyybber> maybe "unreachable statements" ?
22:12:38Yardanicowell I don't have a strong opinion on the naming
22:12:44Yardanicoso yeah, I guess it would be fine
22:17:06*tane quit (Quit: Leaving)
22:27:47YardanicoHmm, @Clyybber I found this https://github.com/nim-lang/Nim/issues/11984#issuecomment-523407422
22:27:49disbotunreachable statement after 'return' statement ; snippet at 12https://play.nim-lang.org/#ix=2qbR
22:27:52Yardanicothe whole thread
22:28:03Yardanicoah nvm no, it's not a problem
22:31:45FromDiscord<Clyybber> yeah, I already read that issue
22:32:03FromDiscord<Clyybber> PR is up btw
22:34:40Yardanicoi'm about to update ircord, hope we don't have regressions, expect a bit of downtime :)
22:35:18*FromDiscord quit (Remote host closed the connection)
22:35:51*FromDiscord joined #nim
22:35:54YardanicoKappa 123
22:36:03Yardanicook at least it started, let's see how stable it is
22:36:50Yardanico@KrispPurg ^ :P
22:37:04FromDiscord<KrispPurg> aaaa
22:41:23disruptekyou really shouldn't use return at all, imo.
22:41:40FromDiscord<willyboar> Disruptekkkkkkkk
22:41:51disruptekwhat is up mister boar?
22:41:55FromDiscord<Recruit_main707> return can be useful
22:42:04disruptekreturn is for wussies.
22:42:28FromDiscord<willyboar> Wrong channel by the way
22:42:42disruptekas far as i'm concerned, any channel i'm in is the Right one.
22:42:59disrupteki'm about as Left as they come, and you guys are in serious danger right now.
22:44:45FromDiscord<willyboar> -d: danger ?
22:45:48disruptekyes, d as in danger.
22:45:57disruptekd rhymes with t.
22:46:01disruptekt rhymes with p.
22:46:07disruptekp stands for POOL.
22:46:19FromDiscord<Recruit_main707> *the pool is danger*
22:46:55disruptekpool to the left of me, jokers to the right;
22:46:57disruptekhere i stand,
22:47:02disruptekstuck in the middle with hugh.
22:49:02FromDiscord<willyboar> Disruptek I don't forget you but I have some troubles with my mac
22:49:11disruptekaiiieeee!
22:49:44FromDiscord<willyboar> I setup my old laptop and I will try it these days
22:50:23FromDiscord<willyboar> I installed manjaro to try it
23:16:49*endragor joined #nim
23:21:38*endragor quit (Ping timeout: 260 seconds)
23:25:40*endragor joined #nim
23:32:37*endragor quit (Ping timeout: 264 seconds)
23:33:28*endragor joined #nim
23:41:34*endragor quit (Ping timeout: 240 seconds)
23:42:44*krux02_ joined #nim
23:45:07*krux02 quit (Ping timeout: 240 seconds)
23:50:02*endragor joined #nim
23:52:00*fredrikhr joined #nim
23:58:51*fredrikhr quit (Read error: Connection reset by peer)
23:59:16*fredrikhr joined #nim