<< 18-09-2020 >>

00:02:23Prestigeoh it does, hmm
00:13:29FromDiscord<Elegant Beef> So did we clean it up any?
00:14:12FromDiscord<Elegant Beef> This sorta works but crashes, so yea i know what im doing :D↵https://play.nim-lang.org/#ix=2xVL
00:15:26PrestigeMaybe if I call waitForExit startProcess(...) inside an async function?
00:15:38*gmaggior quit (Quit: Leaving)
00:15:56PrestigeWell I'd need the process in a variable but you get the idea
00:15:57FromDiscord<Elegant Beef> No clue if that'll block the main thread
00:16:03PrestigeI wonder the same
00:16:15FromDiscord<Elegant Beef> I think it will, but eh
00:17:11FromDiscord<Elegant Beef> Yea `sleep(1)` in an async does the same as that would
00:17:18FromDiscord<Elegant Beef> Which makes it blocking
00:17:42PrestigeYeah so, maybe just need to have an event loop check the processes periodically.. bleh
00:18:06PrestigeI wonder why there's isn't a way to autoclose them
00:20:19FromDiscord<Elegant Beef> Weirdly using runforever crashes after async's are done
00:59:08*krux02 quit (Remote host closed the connection)
01:11:35*femtotones|notaw quit (Read error: Connection reset by peer)
01:12:22*femtotones|notaw joined #nim
01:16:36*lbart_ joined #nim
01:18:01*Araq_ joined #nim
01:19:14*lbart quit (Read error: Connection reset by peer)
01:19:14*Araq quit (Ping timeout: 240 seconds)
01:19:15*supakeen quit (Ping timeout: 240 seconds)
01:19:50*supakeen joined #nim
01:25:10*Tanger joined #nim
01:34:23*apahl quit (Ping timeout: 244 seconds)
01:36:33*apahl joined #nim
01:42:49TangerHappy Friday y'all
01:45:34*kenran joined #nim
01:49:34*antranigv quit (Ping timeout: 260 seconds)
01:49:55*antranigv joined #nim
01:50:25*kenran quit (Ping timeout: 240 seconds)
02:01:09*rocx joined #nim
02:23:06FromGitter<gogolxdong> What's the mascot of Nim?
02:23:21Prestigedisruptek I believe
02:24:06FromDiscord<Rika> lol
02:30:52FromDiscord<Elegant Beef> It was a hellish honey badger
02:31:05FromDiscord<Elegant Beef> Which yard uses as his pfp on github
02:31:40FromDiscord<Rika> the most aggressive fucker ive seen as a programming mascor
02:31:41FromDiscord<Rika> (edit) 'mascor' => 'mascot'
02:31:47FromDiscord<Rika> ngl i wish we took the cute one instead
02:32:09FromDiscord<Rika> i mean have you seen go and rust? no ones complaining about how cute their mascots are
02:35:16FromDiscord<Elegant Beef> I swear our mascot has a fridge full of the failed mascot concepts of other languages
02:36:04FromGitter<gogolxdong> Is there some candidate?
02:36:42FromDiscord<Elegant Beef> I dont think nim currently has one, but there was a rpc a while ago for one
02:37:00FromDiscord<Rika> the cute one works really well
02:37:59*femtotones|notaw quit (Quit: Default Quit Message)
02:42:19*muffindrake quit (Ping timeout: 272 seconds)
02:44:06*muffindrake joined #nim
02:57:50FromDiscord<iWonderAboutTuatara> https://github.com/nim-lang/RFCs/issues/104
02:57:51disbotNim's mascot proposal
03:13:53*waleee-cl quit (Quit: Connection closed for inactivity)
03:20:43*mipri joined #nim
03:21:14OMGOMGhow about an anthropomorphized aircraft carrier?
03:23:28OMGOMGhttps://www.youtube.com/watch?v=dYP8cqkwT8I
03:33:30*lritter quit (Quit: Leaving)
03:41:20*arecacea1 quit (Remote host closed the connection)
03:41:50*arecacea1 joined #nim
03:46:29*kenran joined #nim
03:51:05*kenran quit (Ping timeout: 240 seconds)
04:02:13*vicfred joined #nim
04:06:01*supakeen quit (Quit: WeeChat 2.9)
04:06:34*supakeen joined #nim
04:10:18FromDiscord<PizzaFox> has anyone implemented quadsort in nim or should i try https://github.com/scandum/quadsort
04:14:14FromDiscord<shashlick> Just wrap no?
04:14:26FromDiscord<shashlick> Unless it's for fun
04:16:42*lbart_ is now known as lbart
04:17:01FromDiscord<Rika> Wrap if you just want to use it
04:17:10FromDiscord<Rika> Remake if you want to understand more
04:18:35*bung quit (Ping timeout: 256 seconds)
04:19:51*thomasross quit (Ping timeout: 272 seconds)
04:20:17*lbart quit (Changing host)
04:20:17*lbart joined #nim
04:22:19*kinkinkijkin quit (Remote host closed the connection)
04:23:01*kinkinkijkin joined #nim
04:26:02*rockcavera quit (Remote host closed the connection)
04:30:36FromDiscord<Avatarfighter> Prestige: I'm almost certain you'll need a custom loop
04:30:46Prestigeunfortunate
04:31:09FromDiscord<Avatarfighter> naw
04:31:12FromDiscord<Avatarfighter> easy
04:31:26Prestigejust wish I didn't have to handle it manually
04:31:33FromDiscord<Avatarfighter> Yeah of course
04:31:58FromDiscord<Avatarfighter> I think i spent a day debugging why my futures weren't executing the callback only to ask here and be told to poll manually lol
04:33:44FromDiscord<Rika> Wait what issues are you having
04:35:39*Tanger quit (Ping timeout: 260 seconds)
04:43:34FromDiscord<PizzaFox> if i perfectly rewrote the C code from above in nim would it emit anything different than just wrapping it
04:54:19*bung joined #nim
04:54:42*arecacea1 quit (Remote host closed the connection)
04:55:17*arecacea1 joined #nim
04:56:29*rocx left #nim ("👏 developers 👏 developers 👏 developers 👏 developers 👏 developers")
04:58:07Prestigeit would look different, don't think there'd be much of a difference
04:59:14*bung quit (Ping timeout: 272 seconds)
05:00:47*narimiran joined #nim
05:13:03PrestigeSomeone just submitted a PR to fix the issue @Avatarfighter @Rika https://github.com/avahe-kellenberger/nimdow/pull/99
05:13:04disbotcount forked processes in threads and wait for there end, so no zombi…
05:13:17FromDiscord<Avatarfighter> yooo
05:14:14FromDiscord<Rika> congrats
05:14:22PrestigeI think this just starts a thread per process, not sure of the implications
05:14:26FromDiscord<Rika> they used threads
05:14:43FromDiscord<Avatarfighter> o
05:15:23PrestigeThis could result in a ton of threads
05:15:51PrestigeI think the solution I was contemplating earlier would be better
05:16:15PrestigeThoughts?
05:21:50FromDiscord<Rika> using a "polling thread" but async?
05:22:20PrestigeThat's another way to do it
05:22:55FromDiscord<Rika> which is
05:23:05PrestigeI already have one event loop for x events, I was going to reuse it to check for finished processes
05:23:16FromDiscord<Rika> should be fine
05:24:02PrestigeThis PR create a thread per process, could end up with 100 threads each waiting for a process to die
05:25:12FromDiscord<Rika> yeah
05:25:19FromDiscord<Rika> not ideal
05:25:35FromDiscord<Rika> 64 threads already murdering my poor server's 2 core
05:26:31FromDiscord<Rika> well i guess it wont murder your system if you `sleep` often
05:29:37*narimiran quit (Ping timeout: 264 seconds)
05:33:24*narimiran joined #nim
05:35:28*bung joined #nim
05:40:24*bung quit (Ping timeout: 272 seconds)
05:41:39*kenran joined #nim
05:50:39*solitudesf joined #nim
05:58:52PrestigeGot a simple fix added, seems fine
05:59:05Prestigehttps://github.com/avahe-kellenberger/nimdow/pull/100/files if curious. Gn all
05:59:05disbotFixed #54 - requires testing.
06:00:16FromDiscord<Rika> sleep well
06:02:11FromDiscord<NickSeagull> sent a code paste, see https://play.nim-lang.org/#ix=2xX1
06:02:41FromDiscord<NickSeagull> Doesn't have to be on the same file
06:02:55FromDiscord<Elegant Beef> there is `when defined`
06:03:26FromDiscord<Elegant Beef> It's how you handle crossplatform/crossbackend
06:04:49FromDiscord<Elegant Beef> https://nim-lang.org/docs/manual.html#statements-and-expressions-when-statement manual for when
06:08:06FromDiscord<NickSeagull> Yeah, but my usage for this is not cross platform but rather deployment on AWS Lambda or similar.↵↵Generally on compiled languages, deploying to these things require you to have one "project" per controller/handler/function so I was wondering if with Nim one could have only one project and make the compiler pack only the necessary stuff by generating multiple executables @Elegant Beef
06:10:52FromDiscord<Elegant Beef> You can use define statements to only compile parts you want for X thing, as such https://play.nim-lang.org/#ix=2xX2
06:12:35*Tanger joined #nim
06:16:07FromDiscord<Elegant Beef> In that case you just `-d:heh` at compile time and it magically works
06:16:49FromDiscord<Elegant Beef> So generally what you do is make the basic api then have those api specific code
06:17:32FromDiscord<Elegant Beef> (edit) 'So generally what you do is make the basic api then have those api specific code ... ' => 'So generally what you do is make the basic api then have those api specific codecalled from a function that hides those api's away 😄'
06:18:40*PMunch joined #nim
06:27:17*kungtotte quit (Read error: Connection reset by peer)
06:27:33FromDiscord<Elegant Beef> @NickSeagull ^ and nim does have dead code elimination, so it does pack only the needed stuff 😄
06:28:10*kungtotte joined #nim
06:30:14FromDiscord<NickSeagull> Oooooh, that's awesome 😄 thanks!
06:31:31FromDiscord<Elegant Beef> Also i guess you'd want to generate a task in a nimble file, or make a nimscript file to do all your building for each backend
06:32:14FromDiscord<Elegant Beef> That way you can do `nimble aws` or `nimble all` and have it just build all your binaries
06:32:33FromDiscord<Elegant Beef> (edit) 'That way you can do `nimble aws` ... or' => 'That way you can do `nimble aws`to build for your AWS'
06:41:03*vicfred quit (Quit: Leaving)
06:50:23*letto quit (Quit: Konversation terminated!)
06:53:07*npgm_ quit (Ping timeout: 240 seconds)
06:53:10*sirn quit (Ping timeout: 244 seconds)
06:53:10*jholland__ quit (Ping timeout: 244 seconds)
06:53:10*stever quit (Ping timeout: 244 seconds)
06:53:18*r4vi quit (Ping timeout: 260 seconds)
06:53:22*stever joined #nim
06:53:24*letto joined #nim
06:53:53*ormiret quit (Ping timeout: 260 seconds)
06:53:53*alehander92 quit (Ping timeout: 260 seconds)
06:55:03*sirn joined #nim
06:55:24*jholland__ joined #nim
06:55:56*alehander92 joined #nim
06:56:02*ormiret joined #nim
06:57:00*r4vi joined #nim
06:57:27*npgm_ joined #nim
07:00:40*Vladar joined #nim
07:16:18FromDiscord<PizzaFox> if something bad happens in an aync proc do i need to report it with `asyncfutures.fail`? or can i use regular raise statement
07:17:18PMunchI think a regular raise should work
07:17:54PMunch`nim-1.2.6/lib/system/dollars.nim(91, 12) Error: request to generate code for .compileTime proc: Lit` no idea why, but I'm really struggling with this error..
07:18:51PMunchI have a macro that parses a DSL and creates a couple of things from it. But this error keeps pestering me
07:21:24alehander92it gets called on runtime
07:21:32alehander92like, it gets generated*
07:21:44alehander92somehow? maybe
07:22:02alehander92is it possible that you $ something recursively
07:22:06alehander92on runtime
07:25:11PMunchHmm
07:25:19*Vladar quit (Quit: Leaving)
07:25:34PMunchWhat I try to $ here was the last element of a sequence of objects with variants
07:27:59alehander92hmm, is it possible
07:28:06alehander92you somehow invoke the name of a proc
07:28:09alehander92instead of local
07:28:14alehander92probably not this error tho
07:29:21PMunchHmm, what do you mean?
07:30:03alehander92e.g. sometimes you can do `Lit` instead of `lit`
07:30:21alehander92and get an unexpected error because it's still valid but a random symbol from a module
07:30:27alehander92but it's usually a type error
07:34:22PMunchHmm, well this is what the macro is generating: https://play.nim-lang.org/#ix=2xXn
07:34:30PMunchLine 13 is what throws the error
07:36:37*bung joined #nim
07:36:54PMunchAnd the `calc` object is defined (slightly simplified) as such: https://play.nim-lang.org/#ix=2xXo
07:39:50alehander92what happens if you just echo
07:39:57alehander92an Element object
07:39:59alehander92in that place
07:40:17Araq_found the bug!
07:41:17Araq_was a terrible one...
07:41:19alehander92what is the bug
07:41:22*bung quit (Ping timeout: 256 seconds)
07:41:35alehander92PMunch no idea man
07:41:38Araq_it really was the wild re-use of j.traceStack
07:41:48alehander92it seems usually if you have some kind of NimNode inside this can happen
07:42:14*Araq_ is now known as Araq
07:44:53*bung joined #nim
07:48:05FromDiscord<minierolls> I get a type mismatch error <seq[string], string> when I try to call .add(myString) on a sequence of strings
07:48:15FromDiscord<minierolls> does anyone know why that might be happening?
07:48:42FromDiscord<Rika> can we have more of the error message
07:48:45Araqmake your seq parameter mutable via 'var T'
07:49:24FromDiscord<Rika> araq being 200 iq as usual, lol
07:50:00FromDiscord<minierolls> oo, are sequences not mutable by default?
07:50:19FromDiscord<minierolls> I'm trying to call this directly on a `.getOrDefault` on a table, and I'm not sure how I'd mark that mutable
07:51:02FromDiscord<Rika> nothing is mutable by default
07:51:13FromDiscord<Rika> make the table mutable
07:51:17FromDiscord<minierolls> it is
07:51:39FromDiscord<minierolls> i mean i'm not sure how i'd provide the .getOrDefault function with a mutable empty sequence as default
07:51:46FromDiscord<Rika> use something out of place, add is inplace
07:51:47FromDiscord<minierolls> I tried `var @[]` to no avail
07:51:49solitudesfyou cant add to return value of getOrDefault
07:51:50FromDiscord<minierolls> oh
07:51:55FromDiscord<Rika> import sugar and use `sugar.dup`
07:52:06FromDiscord<minierolls> oop had no idea add was inplace
07:52:11FromDiscord<minierolls> that explains why & works
07:52:13FromDiscord<minierolls> thank you!
07:53:00AraqRika: well I was wrong ;-)
07:54:29FromDiscord<Rika> well you couldnt have known without the additional information 😛
08:03:34PMunchBy the way, why aren't literals mutable by default? So annoying that you have to store your values in a variables before passing it to a procedure that happens to take a var if you don't care about what it changes it into..
08:04:53Araqbecause it catches many bugs
08:05:13Araqwe discussed this before, a template 'varof' is very simple to write
08:05:21Araqmaybe it should be added to sugar.nim
08:06:36PMunchOh yeah, I wouldn't mind having to specify it explicitly
08:06:41Araq"I found a valid interpretation of 'X' so that your code compiles" is the C style of language design.
08:06:48PMunchBut having to put it on two lines is a bit annoying
08:08:27Araqtemplate varof(x): untyped = (var y = x; y)
08:08:35alehander92ohh
08:08:48alehander92btw a friend had a question yesterday
08:09:27alehander92something similar to does proc dup(a: T): T = a ensure a copy
08:09:39alehander92i guess no because nrvo
08:09:40alehander92?
08:10:51Araqno, your 'dup' would just work
08:12:11alehander92so it's not possible to somehow get it inlined in some mode
08:12:15alehander92ok
08:12:41Araqwell optimizations shouldn't affect correctness
08:12:58FromDiscord<Clyybber> Araq: What bug is it this time?
08:13:03alehander92so nrvo
08:13:05PMunchalehander92, figured it out, I was missing a $ for my `Element` type
08:13:08alehander92is about constructing in place
08:13:13PMunchNot quite sure why that trigger this strange error though..
08:13:17Araqclyybber: yet another terrible ORC bug
08:13:29Araqmemory leak
08:13:32alehander92and here you just construct a copy , so it doesn't really have anything to do with it
08:13:34alehander92ok
08:13:50alehander92PMunch i think objects have automatic $
08:13:55FromDiscord<Clyybber> Araq: Nice!
08:14:18alehander92but is it possible that you had a field
08:14:18FromDiscord<Clyybber> Are you going to reintroduce purple color? It should be faster right?
08:14:22alehander92with compile time stuff
08:14:43Araqclyybber: no, maybe later
08:15:01AraqI also found a way to do without 'dispose'
08:15:14Araqso we can document the =trace hook with a straight face
08:16:00FromDiscord<Clyybber> Oh?
08:16:43Araq=trace needs to enumerate the address of the ref, we can nil it out before calling =destroy
08:17:09Araqwe would get rid of the =dispose hook entirely
08:19:01Araqah and the real leak remains, yay
08:19:11FromDiscord<Clyybber> Damn
08:19:25FromDiscord<Clyybber> Do you have a snippet that shows the leak?
08:21:42Araqthe basic asynchttpserver hello world example
08:22:03Araqbut I had plenty, maybe I can find one that is easier to run
08:22:22*hnOsmium0001 quit (Quit: Connection closed for inactivity)
08:29:06*Trustable joined #nim
08:43:53PMunchalehander92, yeah they do, but somehow it messes up and uses the wrong $ in this case it seems
08:45:33*krux02 joined #nim
08:47:48Araqclyybber: https://gist.github.com/Araq/3510824cb0207eb3ac4d197962ecef2d this also leaks
08:50:19FromDiscord<Clyybber> Ah, I see
08:52:48*unclechu quit (Quit: killed)
08:52:48*BitPuffin quit (Quit: killed)
08:52:48*k0mpjut0r quit (Quit: killed)
08:52:48*GitterIntegratio quit (Quit: killed)
08:52:48*reversem3 quit (Quit: killed)
08:52:49*leorize[m] quit (Quit: killed)
08:52:54*lnxw37d4 quit (Quit: killed)
08:52:56*hnOsmium0001[m] quit (Quit: killed)
08:52:56*planetis[m] quit (Quit: killed)
08:52:56*stisa[m] quit (Quit: killed)
08:52:59*guelosk[m] quit (Quit: killed)
08:52:59*silvernode[m] quit (Quit: killed)
08:53:05*rakgew[m] quit (Quit: killed)
08:53:08*brainbomb[m] quit (Quit: killed)
08:53:08*jaens[m] quit (Quit: killed)
08:53:09*einichi quit (Quit: killed)
08:53:10*MTRNord[m] quit (Quit: killed)
08:53:11*agentofuser[m] quit (Quit: killed)
09:18:22*stisa[m] joined #nim
09:19:19*stisa[m] quit (Remote host closed the connection)
09:21:05*PMunch quit (Remote host closed the connection)
09:23:57*PMunch joined #nim
09:25:22FromDiscord<jseb> sent a code paste, see https://play.nim-lang.org/#ix=2xXX
09:26:31*planetis[m] joined #nim
09:26:44FromDiscord<jseb> (edit) 'https://play.nim-lang.org/#ix=2xXX' => 'https://play.nim-lang.org/#ix=2xXY'
09:28:09Araqyou can use a template and pass the *field name* as a parameter
09:28:16FromDiscord<haxscramper> You can make a template that will transform code like `{"CameraLeft" : (vMove.fY += vScrollSpeed.fY)}` into corresponding if statements, but I don't think it is worth the trouble unless you have a lot of checks
09:29:40*Tanger quit (Ping timeout: 272 seconds)
09:30:24FromDiscord<jseb> ah a template, so it's metaprogramming, is that ?
09:31:26FromDiscord<jseb> no, i have not so much test, it was for improving my Nim. Thank you for the answer
09:31:33*konkrrrrrr joined #nim
09:32:05FromDiscord<haxscramper> https://play.nim-lang.org/#ix=2xXZ
09:32:33FromDiscord<haxscramper> Simplified version but should be close enough
09:33:51*kinkinkijkin quit (Ping timeout: 244 seconds)
09:34:12FromDiscord<jseb> thank you
09:35:09FromDiscord<jseb> i have found template section in _Nim in action_, going to read it
09:47:01FromDiscord<himu> [SELF-PROMOTION] Hi everyone. If you guys are ever making some CLI utility app, do consider using https://github.com/Himujjal/asciitextNim which is my first library with Nim. It prints ascii letters with a huge size.↵↵Thanks to @juan_carlos for the awesome pull request and for introducing me to Nim!
09:50:11FromDiscord<himu> Only hoping for https://github.com/nim-lang/Nim/issues/6638 to be resolved someday! Nim is awesome.
09:50:13disbotThinking about default "not nil" ; snippet at 12https://play.nim-lang.org/#ix=2xY1
09:53:25FromDiscord<Clyybber> Araq: Ok to merge https://github.com/nim-lang/Nim/pull/15345 ?
09:53:26disbotadded decodeQuery() to uri.nim
09:53:31Araqhimu: alehander92 is working on this :-)
09:54:44FromDiscord<himu> @Araq[IRC]#0000 I had a conversation with him the other day. It will be something that will I guess attract more and more developers to Nim.
09:55:17Araqclyybber, nah, it needs a .since entry and the implementation needs to be more efficient
09:57:13*GitterIntegratio joined #nim
09:57:13*leorize[m] joined #nim
09:57:13*unclechu joined #nim
09:57:13*codic joined #nim
09:57:13*reversem3 joined #nim
09:57:13*einichi joined #nim
09:57:14*k0mpjut0r joined #nim
09:57:14*MTRNord[m] joined #nim
09:57:14*BitPuffin joined #nim
09:57:14*lnxw37d4 joined #nim
09:57:14*jaens[m] joined #nim
09:57:14*hnOsmium0001[m] joined #nim
09:57:14*brainbomb[m] joined #nim
09:57:19*silvernode[m] joined #nim
09:57:19*guelosk[m] joined #nim
09:57:20*agentofuser[m] joined #nim
09:57:20*rakgew[m] joined #nim
09:57:21*stisa[m] joined #nim
10:01:34*abm joined #nim
10:10:47narimiran@Clyybber i think you're missing "import std/private/since"
10:12:36narimiran@Clyybber and also see your telegram about needed 1.4 reverts ;)
10:13:03FromDiscord<Clyybber> Oh, thanks
10:24:27FromDiscord<Clyybber> Heh, the branch the PR was made from is so old that it doesn't have std/private/since
10:28:29*femtotones|notaw joined #nim
10:29:23*codic quit (Quit: Idle for 30+ days)
10:41:38FromDiscord<Recruit_main707> can you use a macro to parse a file?
10:41:45FromDiscord<Clyybber> Yes
10:42:09FromDiscord<Clyybber> Theres staticRead which can be used in a macro
10:44:16FromDiscord<Recruit_main707> but can i get the AST that nim would parse for the contents of that file?
10:45:46*Zectbumo quit (Remote host closed the connection)
10:46:16FromDiscord<Clyybber> sure, take a look at macros.parseStmt/parseExpr
10:47:43FromDiscord<Recruit_main707> thanks, thats what i was looking for
11:03:27FromDiscord<Recruit_main707> @Clyybber do those methods work for non nim code though?
11:17:46*idf left #nim ("ERC (IRC client for Emacs 27.1)")
11:18:09FromDiscord<Yardanico> @Recruit_main707 no one stops you from reading some text at compile time and using you own parsers and stuff :) but parseStmt/Expr is only for Nim code obviously
11:18:27*idf joined #nim
11:18:47FromDiscord<Yardanico> But it might be easier to call another program at compile time to parse your text
11:19:14FromDiscord<Recruit_main707> i heard that a tool parsed python code as nim code or some weird shit
11:19:39FromDiscord<Recruit_main707> does that mean that python code is technically compatible with nim syntax? but that it may not?
11:19:57FromDiscord<Recruit_main707> and thats why i cant parse this code?
11:21:57FromDiscord<Clyybber> no its not
11:22:10FromDiscord<Clyybber> theres py2nim afair
11:23:12alehander92noo
11:23:28FromDiscord<Yardanico> @Recruit_main707 most Python syntax is also valid Nim syntax
11:23:32alehander92you can parse your code
11:23:35FromDiscord<Yardanico> But that's as far as you can go
11:23:37alehander92and then convert it to nim code
11:23:47alehander92but please dont really assume anything more
11:23:50FromDiscord<Yardanico> You'll have to write a parser yourself
11:23:52alehander92Python syntax != Nim syntax
11:23:55*pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
11:24:03alehander92they are similar
11:24:05alehander92that's all
11:24:19*pbb joined #nim
11:24:19FromDiscord<Yardanico> well, as i said, almost all of the Python code is valid Nim syntax
11:24:30FromDiscord<Yardanico> Not code, but syntax
11:24:40FromDiscord<Yardanico> Of course it won't be as easy as you think
11:25:01FromDiscord<Yardanico> You can check nimpylib for some simple stuff exploiting this "feature"
11:25:51FromDiscord<Recruit_main707> yeah, ok
11:26:35FromDiscord<Yardanico> It's https://github.com/Yardanico/nimpylib/blob/master/src/pylib/tonim.nim
11:27:17FromDiscord<Recruit_main707> yeah this is what i meant
11:35:23*superbia1 joined #nim
11:37:46*superbia quit (Ping timeout: 246 seconds)
11:53:36alehander92Yardanico i
11:53:42alehander92don't like this
11:53:58alehander92because it might misguide people that somehow python is a valid subset of nim or something
11:54:27alehander92the similarities between nim and python end at design style imho
11:54:38alehander92it's not as ruby and crystal
11:54:58alehander92so it's better for people to not put *too* much stock into them being very close
11:55:14alehander92othrwise the pylib dsl is pretty cool!
11:55:32alehander92(i dont like the python code is valid nim statement)
11:55:59FromDiscord<Clyybber> @Yardanico The issue is pythons array slice syntax
11:56:36FromDiscord<Yardanico> @alehander92 not sure why, i didn't say that all of Python code is valid Nim or if Python code is valid Nim code
11:56:51*rockcavera joined #nim
11:56:56FromDiscord<Yardanico> I merely said that most of Python code is valid Nim syntax and nothing more
11:58:04alehander92well i think this is misleading
11:58:18FromDiscord<Yardanico> why?
11:58:22alehander92because it's very subjective
11:58:29alehander92how much is "most"
11:58:34FromDiscord<Yardanico> Syntax is just syntax
11:58:35FromDiscord<Recruit_main707> the only way it was misleading for me is that i thought macros could parse any code
11:58:38FromDiscord<Yardanico> not the code
11:58:48FromDiscord<Recruit_main707> (which is pretty dumb now that i think it=
11:58:48alehander92and because i think we dont make great difference between semantics and syntax
11:58:52FromDiscord<Yardanico> you can't execute that Python code as Nim code
11:58:56alehander92so people would just assume(i did also)
11:59:04alehander92ok man but this just doesnt work
11:59:13alehander92if you pass 200 real world python files to nim
11:59:22alehander92how many would be parsed with 0 errors
11:59:35alehander92even if 90% of the syntax is somehow passable
11:59:44alehander92people would stumble in the details
12:00:01alehander92and even then, the same syntax often means something different
12:00:11alehander92or it's not the idiomatic nim thing
12:00:19FromDiscord<Clyybber> we are talking syntax, not semantics
12:00:22alehander92yes!
12:00:30FromDiscord<Clyybber> > and even then, the same syntax often means something different
12:00:35alehander92but again, do the 200 real world files test
12:00:57FromDiscord<Clyybber> I think what would cause the most problems would be array slice syntax
12:01:01alehander92sorry
12:01:05alehander92my point is that
12:01:15FromDiscord<Yardanico> look, I'm not saying that it's easy or that the python code is parsed CORRECTLY
12:01:15alehander92just being parsed doesn't really matter
12:01:22FromDiscord<Yardanico> It's just a nice fact
12:01:27FromDiscord<Clyybber> HMM actually!
12:01:29alehander92but a misleading fact
12:01:32FromDiscord<Yardanico> An accident
12:01:34FromDiscord<Yardanico> It's not
12:01:36FromDiscord<Clyybber> all of python is valid nim syntax
12:01:36alehander92because people easily jump to
12:01:45alehander92oh i can just import this python file or analyze it easily
12:01:47FromDiscord<Clyybber> ALL of python
12:01:53FromDiscord<Clyybber> you know why?
12:01:54FromDiscord<Rika> thats a bad assumption
12:01:59FromDiscord<Clyybber> cuz source code filters :PPP
12:02:00alehander92yes because all of PHP is as well :P
12:02:02FromDiscord<Rika> the fact is correct, the assumption is not
12:02:05alehander92yeah haha
12:02:12FromDiscord<Yardanico> Well @alehander92 that's not the way to think about it
12:02:18alehander92but yardanico
12:02:26FromDiscord<Yardanico> So you would not talk about other facts which done people might misinterpret?
12:02:30alehander92i think you cant tell people how to think :D
12:02:33alehander92well yeah
12:02:46alehander92lang design is about limiting misinterpretation
12:03:05alehander92my point is mostly that
12:03:15FromDiscord<Clyybber> if disruptek were here, he would add it to the list of famous quotes
12:03:17alehander92people often have this compiled python idea
12:03:30alehander92and i've heard it's not really helpful sometims
12:03:52alehander92yeah sorry for nitpicking man
12:03:59alehander92btw what happens with disruptek
12:04:03alehander92~last disruptke
12:04:04disbotno footnotes for `last`. 🙁
12:04:09alehander92!last disruptek
12:04:10disbotdisruptek left 12#nim-offtopic 34 hours ago and last spoke 742 hours ago
12:04:11*idf left #nim ("ERC (IRC client for Emacs 27.1)")
12:04:13FromDiscord<Yardanico> I'm not even saying that this fact should be relied upon
12:04:19FromDiscord<Yardanico> It shouldn't
12:04:54alehander92!seen disruptek
12:04:55disbotdisruptek left 12#nim-offtopic 34 hours ago and last spoke 742 hours ago
12:06:01*supakeen quit (Quit: WeeChat 2.9)
12:06:39*supakeen joined #nim
12:07:11*waleee-cl joined #nim
12:08:28*PMunch quit (Remote host closed the connection)
12:08:55FromDiscord<Clyybber> @Yardanico is this server running the latest ircord?
12:09:03FromDiscord<Yardanico> No :(
12:09:35FromDiscord<Yardanico> I put the latest update a few weeks ago, but it stopped working after some time without any crashes, so i reverted
12:09:41FromDiscord<Yardanico> And didn't have time to test after that
12:09:44FromDiscord<Clyybber> wdym without crashes?
12:09:50FromDiscord<Yardanico> Well, it just hanged
12:09:59FromDiscord<Yardanico> No crashes, not relaying any messages
12:10:59FromDiscord<Clyybber> is it possible to run the new version only on <#456504845642235914> ?
12:11:16FromDiscord<Clyybber> and use the old one for all other channels?
12:11:17alehander92Yardanico i know, i am just saying
12:11:19*PMunch joined #nim
12:11:24alehander92it's better to use a python parser to parse python
12:11:34alehander92because edge cases are too important
12:12:01FromDiscord<Clyybber> he didn't say it was a good idea
12:12:02FromDiscord<Yardanico> @Clyybber well i always run it in that channel when doing changes and testing them
12:12:10FromDiscord<Yardanico> But i don't run it 24/7
12:12:14FromDiscord<Yardanico> Only when doing stuff
12:12:16FromDiscord<Clyybber> ah ok
12:12:22alehander92i know: but people don't read "not relied upon"
12:12:33alehander92they just go and remembr hey the syntax is valid anyway
12:12:38alehander92that's all
12:12:44FromDiscord<Yardanico> I'll try to update it soon
12:12:45alehander92gentle reminder
12:12:51FromDiscord<Clyybber> @Yardanico nice!
12:13:56alehander92!last zevv
12:13:56disbotZevv spoke in 12#nim 42 hours ago 12https://irclogs.nim-lang.org/16-09-2020.html#17:36:20
12:14:59FromDiscord<exelotl> "All of PHP is valid Nim syntax" is not something I wanted to hear today xD
12:15:02*Vladar joined #nim
12:15:05FromDiscord<Clyybber> lol
12:15:20FromDiscord<Clyybber> All of everything is valid Nim syntax, discarding the semantics
12:15:37FromDiscord<Clyybber> just use a source code filter that replaces everything with one `discard`
12:16:31FromDiscord<exelotl> Yes! This sounds like the treatment that every PHP project really needs
12:16:50FromDiscord<Yardanico> *a grim reminder that Nim once had a PHP backend*
12:17:06FromDiscord<lqdev> what
12:17:09FromDiscord<exelotl> Nonononono
12:17:11alehander92great quiz
12:17:13alehander92question
12:17:30FromDiscord<Yardanico> @lqdev it was in the same file as the js backend
12:17:36FromDiscord<Yardanico> And was removed in ~2017
12:17:54FromDiscord<Yardanico> 4raq said he was paid to make it a long time ago, iirc
12:18:10alehander92php gets better now
12:18:23FromDiscord<Clyybber> disruptekImpersonation: I was paid to bath in shit once too
12:18:33*moerm joined #nim
12:18:42FromDiscord<Yardanico> That was believable
12:18:52moermA friendly Hello from evil moerm ;)
12:18:55FromDiscord<exelotl> oh hi disruptek
12:19:08FromDiscord<exelotl> oh that was bad timing
12:19:34FromDiscord<exelotl> hi evil moerm who is now apparently disruptek
12:19:52FromDiscord<Clyybber> exolotl is thoroughly confused
12:19:53FromDiscord<Yardanico> wat
12:20:02FromDiscord<Yardanico> @exelotl you ok?
12:20:06FromDiscord<Yardanico> :nimrawr:
12:20:30Oddmongerthis chan needs a who's who
12:20:39moermexelots Nope. moerm is moerm and moerm only
12:20:46FromDiscord<Clyybber> Oddmonger: Nah, bro
12:20:57FromDiscord<exelotl> I was responding to clyybber but moerm popped in with a greeting at exactly the wrong time xD
12:21:02FromDiscord<Rika> what if someone renames themselves to mreom
12:21:14FromDiscord<Clyybber> akir
12:21:16FromDiscord<Yardanico> time to finally sit down to my pc in like 2 weeks
12:21:31moermexelots at exactly the wrong time? Elaborate please
12:22:12FromDiscord<Clyybber> moerm: it reordered the messages, so it looked like he was callign you disruptek
12:22:16FromDiscord<Yardanico> Confusion - 100
12:22:47FromDiscord<exelotl> moerm: clyybber did a disruptek impersonation. So I said hi disruptek. But you said hello like 0.1 seconds before I hit send. So it looked like I was calling you disruptek
12:22:59moermClyybber hmm ... I think we'll all survive that quite well
12:23:56FromDiscord<Clyybber> hopefully
12:23:59*Yardanico_ quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:24:19*Yardanico joined #nim
12:24:50moermwb Yardanico
12:25:36moermDoes anyone here know "Pawn", the tiny interpreter (C like lang.)?
12:26:10Yardanicohai
12:26:32Yardanicoi heard about it
12:26:36Yardanicoit's the one used for SAMP scripting?
12:26:40Yardanico(samp = san andreas multiplayer)
12:26:57moermI LOVE it (for small scripting jobs)
12:27:30moermDon't think so/don't know (SAMP). But enlightenment use it (and call it "Embryo")
12:27:53moermIt's tiny, it's fast, and it's quite well engineered
12:28:47moermOnly 1 drawback: No shebang line. I just changed that and use it for lots of OS housekeeping (instead of perverse shell scripts)
12:29:09Yardanicouse nimscript instead :)
12:29:21moermToo fat (for that purpose)
12:29:30Yardanicowell I don't really think so :P
12:29:31Yardanicoor just plain nim itself
12:29:42Yardanicocompilation is only done once
12:30:09moermThat's what I use for somewhat bigger jobs (Nim)
12:30:42moermPawn ("compiled") code can run *everywhere*, unchanged
12:31:26Yardanicosame for nimscript :)
12:31:35moermSuppose you have 2 linux servers and a dozen FreeBSD servers. You do not want to produce 2 versions of a small thingy
12:34:25moermNext step: I'll turn it into a "mini shell" so I can finally do shell jobs in a decent language (and not perverse shell code)
12:35:47FromDiscord<Rika> someone post that competing standards xkcd
12:36:11*rockcavera quit (Ping timeout: 240 seconds)
12:36:39Zevvalehander92: zup
12:36:56alehander92i wondered what happened with ya
12:37:01Zevvlife
12:37:02alehander92atlantic coast people
12:37:24alehander92NATO of netherlands and disruptekusa
12:37:27alehander92ah
12:37:29Yardanicowat
12:37:32alehander92time for weekend
12:38:03alehander92Yardanico don't get nervous, no more cold war
12:38:12Yardanicoyeah, we'll get a real ww3 in december
12:38:16Yardanico*inside news*
12:38:42FromDiscord<hobbledehoy> Hey, spoilers
12:38:51moermWe **need** nato. To protect us from the evil Russians! And the evil Chinese!
12:38:53Yardanicoi'm russian so I'm allowed to post spoilers
12:39:18moermhello Zevv & hobbledehoy
12:39:30FromDiscord<hobbledehoy> Hello
12:40:01moermYardanico, nato will keep you at bay, hehe
12:40:03ZevvI have been promoted from engineer to plumbing architect, so my new role is to mangle up with friggin' everyting, find out that friggin' everything is in utter state of rotten discombobulation, so I friggin' whine and cry to everyone and asking embarrising questions and make up stuff on how it should be done better
12:40:16Yardanicomoerm: nothing can keep icbms at bay :P
12:40:36moermZevv see, that's why we need nato.
12:40:46Zevvi know, right
12:41:01YardanicoRevert "Revert "Revert "Fix #5691 (#15158)"""
12:41:02disbothttps://github.com/nim-lang/Nim/pull/15158 -- 6Fix #5691
12:41:06Yardanicoah yes, modern git workflow /s
12:41:18moermYardanico, Hey don't you make jokes about the supremacy superiority 8 inch floppy disk based nato icbms!
12:41:53Yardanicomoerm: https://www.youtube.com/watch?v=Mqps4anhz0Q
12:41:55Yardanico0:42 icbm
12:42:00Yardanicogreat song anyway
12:42:07moermYardanico, HAHAHA ... I just had a (not at all) funny discussion with git fans who don't want to accept that I don't use sh_tty git but prefer fossil
12:42:23Yardanicowell, it's not really a git fault
12:42:35Yardanicoalso, on the topic of git, github finally released their official cli app
12:42:44Yardanicobefore that there was "hub" with a lot of similar functionality
12:42:50Yardanicolike checking out PRs easily
12:42:59Yardanicohttps://cli.github.com/
12:43:08*krux02 quit (Remote host closed the connection)
12:43:21moermI don't care ... I won't use git, period. And why should I when there is a *good* scm?
12:43:26alehander92yeah i tried it
12:43:34alehander92`gh` is kinda cool if you use github a lot
12:43:43alehander92but i just like cli tools
12:43:51Yardanicoalehander92: well gh is a cli tool :)
12:43:55alehander92yes!
12:44:00alehander92but i also want similar for
12:44:01Yardanicoand checking out a github PR isn't that simple without these tools
12:44:02alehander92others
12:44:04FromDiscord<Clyybber> git is good IMO, its cli is a bit shite
12:44:05alehander92yeah
12:44:07moermAnyone had a look at the Huawei OS? (open source)
12:44:14alehander92huh is it OS
12:44:18alehander92open source*
12:44:21Yardanicoyes of course
12:44:34YardanicoHarmony OS
12:44:35alehander92how could NATO let this happen
12:44:43alehander92a communist os
12:44:46moermI got interested because it seems they have kind of verified it
12:45:15Yardanico"The underlying layer of HarmonyOS is composed of HarmonyOS microkernel, Linux kernel and Lite OS and it will become a complete HarmonyOS microkernel architecture in the future."
12:45:37moermalehander92, that's because the Chinese are so cunning! Example: they developed Harmony in their own country. Cunning Chinese, cunning
12:45:40Yardanicomaybe that's old info though
12:45:52*rockcavera joined #nim
12:46:14moermIf it really was based on linux I'd be very disappointed (and not use it)
12:46:24alehander92i think not
12:46:27Yardanicomoerm: this says that it uses linux partly
12:46:30Yardanicoand that info is from 14 months ago
12:46:40alehander92see ya guys, back to work .. should focus
12:46:45Yardanicoalso we have #nim-offtopic, yeah :P
12:47:05moermYardanico, Hmmm ... let's hope that's mistaken and they are not linux based
12:47:08Zevv#nim-offtopic is only for when #nim is busy
12:47:42moermNOTHING is off topic for a language that is on its way to rule the world(TM)
12:47:53Yardanicothen we should accept that the mascot should be that honey badger
12:47:58FromDiscord<Clyybber> YES
12:47:59Yardanicothe only true nim mascot
12:48:10moermI like honey badgers
12:48:10FromDiscord<Clyybber> never forget
12:48:29Yardanicoalso I saw a lot of fixes for arc and especially orc
12:49:00FromDiscord<Clyybber> moerm: Is there something like submodules for fossil?
12:49:01moermFrankly, I find that whole mem/GC zoo confusing
12:49:06Yardanicoohh 4raq added an undocumented switch for turning off cursor inference in the end :P
12:49:17Yardanicomoerm: that's one of the things on nim 2020 roadmap
12:49:24moermClyybber I don't know but I guess yes
12:50:13FromDiscord<Clyybber> because thats gits killer feature IMO
12:50:17moermI want ONE reasonably good default plus an option to manually handle mem
12:50:26Yardanicomoerm: that'll be orc in some time
12:50:33Yardaniconot in 1.4 though I think
12:50:34moermor arc?
12:50:36Yardaniconot arc
12:50:42Yardanicoarc doesn't deal with cycles, so it'll be orc
12:50:53moermor foo? or bar? ... it got confusing and that's not good for uptake
12:50:59Yardanicoit's not really confusing
12:51:06Yardanicomost people only know the default GC which is orc
12:51:08Yardanicorefc*
12:51:12Yardanicoand the new default one will be orc
12:51:20Yardanicoand most of people won't need to care about anything else
12:51:24FromDiscord<Clyybber> moerm: It doesn't matter. We will set the defaults
12:51:26Yardanicoalso 4raq apparently found a way to make marshal/deepCopy work with arc/orc
12:51:29moermOK, sounds good. WHEN?
12:51:35FromDiscord<Clyybber> Soon TM
12:51:47Yardanicomoerm: when it's considered stable and tested enough
12:51:49FromDiscord<Clyybber> If you find it confusing it shouldn't matter to you
12:52:15moermYardanico, Tsss .. what a meaningless response
12:52:21Yardanicomoerm: except it's not :P
12:52:33Yardanicohttps://github.com/nim-lang/Nim/issues?q=is%3Aopen+is%3Aissue+label%3AARC
12:53:35moermActually those zoos (GC, traits, pragmas, ...) are the reason I often return to Ada currently.
12:53:55Yardanicothese are not zoos
12:54:29Yardanicopragmas, in one form or another, exist in most languages
12:54:34moermFor me they are
12:54:46Yardanicoeven in ada
12:55:15moermDon't you say ... you know I was born just 10 minutes ago and know nothing about languages ...
12:55:36Yardanicoi know you're not that young, but saying things like that is a bit too much imo
12:56:19Yardanicoall of these things exist to fine tune your programs
12:56:23Yardanicofor your specific workloads
12:56:46moermA smart man blindly defends "his" language". A wise man listens to criticism of it ...
12:56:55FromDiscord<Clyybber> eh?
12:57:00FromDiscord<Clyybber> whats the criticism here?
12:57:06FromDiscord<Clyybber> that we offer too many options?
12:57:11moermI didn't say that there are no reasons for it. I said it's too many and too confusing
12:57:20FromDiscord<Clyybber> but how is it confusing?
12:57:26FromDiscord<Clyybber> its not like you have to choose a gc
12:57:37moermMaybe the real problem behind it is lacking docu
12:57:43FromDiscord<Clyybber> yeah, I think so
12:58:55FromDiscord<Clyybber> moerm: For example, I think you mostly know about arc from IRC right? So a "normal" user who just reads the doc won't find out about arc, or at least not in a manner that should confuse him
12:59:16FromDiscord<shashlick> Everything is not knowable - these complaints will never go away
12:59:58moermThere is a reason I call myself "evil moerm" (evil laughter)
13:00:47Zevvi/c
13:00:48moermPerfection is not when nothing can be added anymore but when nothing can be taken away anymore
13:00:48Yardanicoyou all should instead listen to https://www.youtube.com/watch?v=q_5ZgKg_ifg or its longer (and better) version - https://www.youtube.com/watch?v=C8fkSFIf3hY
13:01:21FromDiscord<Clyybber> moerm: Nah, perfection is when nothing can be added *and* nothing can be taken away
13:01:26moermI use invidious and boycott youtube
13:01:44Yardanicomoerm: well, you can always change the link from youtube.com to invidio.us
13:01:45FromDiscord<Clyybber> but arguably that also matches broken and stagnated projects
13:02:10moermClyybber that's not what saint-exupery said and it's not really true either IMO
13:02:37FromDiscord<Clyybber> yeah, I was jesting
13:04:01*arecacea1 quit (Remote host closed the connection)
13:04:10FromDiscord<shashlick> One person's powerful is another person's complicated
13:04:15*njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
13:04:21*njoseph joined #nim
13:04:30Yardanicothat's a good quote
13:04:32moermWe should avoid linking to sites that massively ad spam us and censor us - like youtube does
13:04:40*arecacea1 joined #nim
13:04:48Yardanicomoerm: no :(
13:04:48FromDiscord<Clyybber> use an adblocker
13:04:54Yardanicothere is still tons of good content on youtube
13:05:04moermshashlick well, not everyone can be as smart as you are
13:05:05Yardanicoand a lot of it is only possible because of youtube's popularity
13:05:28moermYardanico, And all of it is available elsewhere too
13:05:33FromDiscord<shashlick> Trust me, I'm far from it and I don't understand the majority of Nim
13:05:35Yardanicomoerm: nah
13:06:04FromDiscord<shashlick> Especially after living in this community and watching 15 years olds who know more
13:06:05moermWhatever AIAIC youtube should be boycotted but I respect that others are less stringent
13:06:16*narimiran quit (Ping timeout: 272 seconds)
13:06:17Yardanicomoerm: to top it all off, I actually pay for youtube premium (it's only ~$3 in Russia anyway)
13:06:28Yardanicosay anything, but yes, I've done that for more than a year already
13:06:37FromDiscord<Clyybber> what does AIAIC mean?
13:06:45YardanicoAIA-IC – A Component of the American Institute of Architects
13:06:47moermThe day when I pay those gangsters won't come
13:06:47Yardanico:D
13:06:48FromDiscord<Clyybber> Yardanico: Lol, that I don't get
13:07:10FromDiscord<Clyybber> Yardanico: Does the money go to the people you watch?
13:07:11moermSorry, typo. I meant AFAIC (as far as I'm concerned)
13:07:20Yardanico@clyybber well first of all, then I don't need to use youtube vanced or newpipe on mobile, and also the people whose content I watch get money
13:07:26Yardanicoit's not a lot, but they get something :P
13:07:38FromDiscord<Clyybber> moerm: Ah gotcha
13:07:39Yardanico(so I don't get ads on mobile I mean)
13:08:03FromDiscord<Clyybber> Yardanico: Ah, fair. Newpipe is far better than youtube tho :P
13:08:06FromDiscord<Clyybber> (when it doesn't break)
13:08:12FromDiscord<Varriount> Yardanico: I pay for YouTube as well
13:08:13moermIf one needs to pay for not being ad spammed something is VERY wrong
13:08:19Yardanicoit's not "ad spam"
13:08:27Yardanicopeople need a way to earn money off their content too
13:08:38FromDiscord<Clyybber> moerm: Spam is unsolicited, you have made the choice to go on youtube
13:08:46FromDiscord<Varriount> I'm paying the creators for making content, and Google for hosting
13:08:50moermwelcome "influeners" ...
13:09:21YardanicoI don't watch "influencers"
13:09:27FromDiscord<Clyybber> influencers is a whole different beast
13:09:37Yardanicoand not really related to youtube too
13:09:39Yardanicothey are everywhere
13:09:43Yardanicothey can be in IRC too for all I know
13:09:57moermVarriount That's decent but it just so happens that the creators only get crumbs and their channels may be vanished if the youtube censors don't like them
13:10:14Yardanicomoerm: so what's the solution?
13:10:22Yardanicowhat's the better alternative to youtube that you use?
13:10:32FromDiscord<shashlick> There's also the category of the uninfluencible
13:10:34FromDiscord<Clyybber> dtube
13:10:41moermYardanico, How about honesty as a principle? Instead of euphemisms
13:10:45*krux02 joined #nim
13:11:09FromDiscord<Clyybber> what euphemisms?
13:11:54moermClyybber "freedom", "choice", etc blabla when in fact they are censoring and when "freedom" actually means "as long as WE like it"
13:12:10Yardanicowell, you know that they also have to comply with laws of different countries?
13:12:38FromDiscord<Clyybber> freedom always means as long as we like it
13:12:39moermYardanico, Poor little youtube!
13:13:03moermExcept for wanton vanishing and censorship
13:13:19Yardanicomoerm: it's just that I always see people talking "youtube is bad", "muh censorship" but there's no better alternative
13:13:27Yardanicobecause there are still country laws you have to follow
13:13:39Yardanicoor otherwise will get your website blocked and will have to host/access it through tor
13:13:47Yardanicoso it'll get much less people visiting it
13:13:51FromDiscord<Rika> call me when japanese people start using invidious or w/e its called, theyre always amongst the last to adopt anything
13:14:08moermYardanico, It's not the laws that are the main problem. It's youtubes own internal guidelines
13:14:09solitudesfinvidious is just youtube frontend
13:14:15Yardanicoyeah
13:14:17Yardanicolike nitter
13:14:17FromDiscord<shashlick> When organizations become much bigger than any individual, they are bound to be robotic and regimented
13:14:29FromDiscord<shashlick> Every government operates that way
13:14:37moermsolitudesf, Yes but you don't get ad spammed
13:14:37Yardanicomoerm: yeah, yeah, big websites always bad, I understand you
13:14:49solitudesfmoerm, i dont get spammed on youtube either
13:14:51Yardanicomoerm: and you don't help the creators or the platform itself either
13:14:56moermNo, not all big sites are always bad
13:15:00Yardanicohosting and fast CDN costs money
13:15:22Yardanicoand google's CDN is one of the best in the world since they have stuff like youtube
13:15:39moermYardanico, ... and google is one of the richest corporations in the world ...
13:15:41Yardanicoso you can saturate your link almost to 100% with 4k videos or something
13:15:47Yardanicomoerm: that doesn't change anything
13:15:56FromDiscord<shashlick> It is inevitable - rules are added on a regular basis to handle all the crazy stuff
13:16:23moermBut I admit that the people are at least as guilty
13:16:46FromDiscord<shashlick> Anyone in that position will do the same
13:16:47moermif they weren't that ignorant and stupid corporations couldn't act the way they do
13:17:03FromDiscord<shashlick> Cause everyone believes they are doing their best for the situation
13:17:13FromDiscord<shashlick> Us included
13:17:25Yardanicoas long as 100% of people aren't perfect, honest, etc, we won't get better than this
13:17:40FromDiscord<shashlick> You can surely call it ignorance but it is practical
13:17:44moermNo. It's not about 100% honest, smart, etc
13:18:02moermIt's about not being totally ignorant and bland stupid and careless
13:18:08YardanicoI don't agree with that
13:18:12FromDiscord<shashlick> There's even a word for it - draconian
13:18:13Yardanicoyoutube is not totally ignorant
13:18:17Yardaniconeither they are stupid or careless
13:18:32moermYardanico I'm speaking about the people
13:19:01FromDiscord<shashlick> People are less powerful than the machine
13:19:22moermWell, whatever, I guess we've got too deep into politics ... let's return to tech/language
13:21:11FromDiscord<Clyybber> youtube is a platform, you don't have absolute freedom, now the marketing "freedom" is just marketing takl
13:21:28FromDiscord<Clyybber> and marketing is lies or half-truths
13:21:31moerm- afk (cooling down) -
13:21:34FromDiscord<Clyybber> but thats nothing new
13:21:43FromDiscord<Clyybber> moerm: Lol, do you need coolant?
13:21:44Yardanicomoerm: you started that, and now you're backing off :P
13:22:14FromDiscord<shashlick> We are just as uninfluencible
13:22:47FromDiscord<Rika> well reasonable people know when to stop escalating an argument 😛
13:22:48moermYardanico - Yes, evil me is backing off when I see that I opened a can with ugly worms
13:22:59moermRika Yes, thanks
13:23:02FromDiscord<Clyybber> huh? That discussion wasn't bad was it?
13:24:08FromDiscord<Rika> text does not convey tone well
13:24:18FromDiscord<shashlick> Logic has no loyalty, it can be taken anywhere
13:24:20moermClyybber ... but it had the potential to turn ugly. Now some of us know each others positions and (hopefully) can accept them
13:25:07FromDiscord<shashlick> Especially since there's no need for it to account for reality
13:26:20FromDiscord<shashlick> It's really cool cause we are all programmers and logic really means something to us but still we aren't precluded from having irrational ideas
13:31:53moermSee you, have a good time everyone
13:32:00*moerm quit (Quit: Leaving)
13:32:55FromDiscord<Clyybber> see ya
13:33:23*femtotones|notaw is now known as audiofile
13:42:57FromDiscord<mratsim> it seems so strange to see all that yellow on Github now, I feel like a JS dev
13:43:09Yardanicohehe
13:43:19Yardanicothe JS colour is brighter though, ours is like orange :P
13:43:33Yardanicobut now we did a lot of little things
13:43:49Yardanicochanged the colour, dom verified the discord server and also made the github org look more "professional" :P
13:45:24FromDiscord<Clyybber> is it true that they lifted the color restrictions now?
13:45:27Yardanicoyes
13:45:36FromDiscord<Clyybber> unfair :/
13:45:48FromDiscord<Clyybber> but its fine as is
13:45:50Yardanicohttps://github.com/github/linguist/pull/4978
13:45:52disbotAbolish restrictions governing colour choices
13:46:10Yardanico"Stop giving a crap and just go for it. Chances are the test appears 10 times more important to us than it does GitHub's designers, because they haven't been the ones dealing with it for the past 5 years."
13:46:13Yardanicoxdd
13:47:24FromDiscord<Clyybber> should have sent them the colorscript
13:52:05*PMunch quit (Quit: Leaving)
13:53:03*PMunch joined #nim
13:54:46*thomasross joined #nim
13:58:00Yardanico!last narimiran
13:58:00disbotnarimiran quit 751 minutes ago and last spoke 2 hours ago
13:58:11Yardanicotime to update our discord link on the website
13:59:48FromDiscord<Clyybber> discord.com/nim
13:59:59FromDiscord<Clyybber> (edit) 'discord.com/nim' => 'www.discord.com/nim'
14:00:07FromDiscord<Clyybber> (edit) 'www.discord.com/nim' => 'https://discord.com/nim'
14:00:20Yardaniconah
14:00:22Yardanicodiscord.gg/nim
14:00:36Yardanicoor discord.com/invite/nim
14:01:07FromDiscord<Clyybber> nice
14:01:21FromDiscord<flywind> Someone can solve this issue?
14:01:22FromDiscord<flywind> https://github.com/nim-lang/Nim/issues/14746
14:01:22disbotMinor, Repo description "Garbage-Collector"
14:01:24*apahl quit (Ping timeout: 244 seconds)
14:02:10Yardanico4raq
14:02:13Yardanicomaybe dom too
14:02:22*apahl joined #nim
14:02:25FromDiscord<Clyybber> Araq: Should we just copy the description from the website there?
14:02:44Yardanicohttps://github.com/nim-lang/website/pull/214
14:02:45disbotChange Discord URL
14:02:54Araqsure, I don't rmember what the website says but sure
14:03:12FromDiscord<Clyybber> the website goes for the ADA modula python comparison
14:03:53FromDiscord<Clyybber> instead of the efficiency expressiveness efficiency triple
14:04:31Yardanico"It combines successful concepts from mature languages like Python, Ada and Modula." now that I think about it, should there really be "mature" there?
14:05:38FromDiscord<Clyybber> Yeah
14:06:04FromDiscord<Clyybber> I combined the website description with the EEE slogan for github
14:12:31*PMunch quit (Quit: Leaving)
14:18:24*Kaivo quit (Ping timeout: 260 seconds)
14:20:45*Kaivo joined #nim
14:23:30*ForumUpdaterBot quit (Remote host closed the connection)
14:23:37*ForumUpdaterBot joined #nim
14:23:55*arecacea1 quit (Remote host closed the connection)
14:24:11FromGitter<iffy> Why can't I assign a proc as a member of a tuple, but if I first assign the proc to a variable, I can? https://play.nim-lang.org/#ix=2xZq
14:24:22*arecacea1 joined #nim
14:32:45FromDiscord<whisperdev> Will there ever be a parallel async?
14:32:50FromDiscord<Clyybber> iffy: Because it implicitly converts to closure
14:32:58FromDiscord<Clyybber> And the conversion doesn't happen for tuples
14:33:18FromDiscord<Clyybber> I think its worth an issue, though, even if just for the discussion
14:34:04FromDiscord<Yardanico> @whisperdev well, it already can be parallel
14:34:18FromDiscord<Yardanico> e.g. httpbeast is multi-threaded
14:34:25FromDiscord<Yardanico> but by default - not in the near future
14:35:05FromDiscord<whisperdev> So if I want something like goroutines?
14:35:17ldleworkgoroutines are not parallelism
14:35:29ldleworkoh that was a different person who asked about paralleism, sorry
14:36:53Zevvcps promises nice things like that
14:36:55Zevvone day, one day
14:37:14ldleworkcsp ?
14:37:59ldleworkCommunicating Sequential Processes vs Continuation Passing Style
14:38:17ldleworkNot sure how either gets you paralellism.
14:38:30*WilhelmVonWeiner quit (Read error: Connection reset by peer)
14:39:11Zevvthe idea is that cps continuations can be executed wherever you want. If we know something is going to block, we can pass the continuation to another thread from the pool, trampoline it there, and transfer it back to the origination thread after it is done
14:39:55Zevvso IO blocking will result in async-like behaviour, but CPU blocking or blocking things like DNS resolving can be run in parallel on a different thread
14:40:17ldleworkthis is already what the .NET runtime does and its nothing to do with CPS
14:40:32ldleworkit uses an async/await system
14:40:49FromGitter<iffy> @Clyybber k, done
14:40:57Zevvno, CPS is the stuff we do to cut up a "normal" linear Nim proc into continuations
14:41:00ldleworki guess you're saying CPS makes it easier, i'm just noting it's not required to get what you describe
14:41:06ldleworkZevv: right
14:41:06Zevvsure
14:41:12Zevv~repo cps
14:41:13disbotno footnotes for `repo`. 🙁
14:41:18Zevv!repo cps
14:41:18disbothttps://github.com/disruptek/cps -- 9cps: 11Continuation-Passing Style for Nim 🔗 15 34⭐ 1🍴
14:41:40ldleworkZevv: for just a second I hoped you were gonna talk about CSP :)
14:41:47ZevvTalk to disruptek
14:42:09Zevvhe's a few steps ahead of me on this
14:42:29Zevvbut it's mostly philosophical at this time, nothing in code that runs
14:44:22*mipri left #nim (#nim)
14:46:12FromDiscord<mratsim> Well I want to try my hand at multithreaded async, not sure how to implement it yet so I would love to see some experimental CPS programs
14:46:32FromDiscord<Yardanico> well the stuff is at https://github.com/disruptek/cps
14:46:40FromDiscord<dom96> I await something that can beat httpbeast
14:46:56FromDiscord<dom96> At the end of the day, multithreaded async is already here.
14:47:18FromDiscord<mratsim> Similarly, my thread collider here to simulate thread and model check Weave needs some kind of coroutines (can't use threads to debug threads, I need deteminism): https://github.com/treeform/greenlet
14:48:42FromDiscord<mratsim> sorry, wrong link, for now I planned used greenlet but that can also uses CPS
14:49:45FromDiscord<mratsim> @dom96 no experience at all with http serving, or async, or IO, or latency optimized stuff, so don't expect anything in less than 6 months
14:51:50FromDiscord<mratsim> + I need to finish my crypto lib first, I'm at that elusive last stage. If I finish that, it's in usable state in the weekend. If not, it can get stuck for days/weeks/months :/
14:52:15FromDiscord<dom96> honestly I don't think working on that is important
14:52:34FromDiscord<dom96> I would much prefer if you spent your time making multithreading easier with what we already have
14:53:20FromDiscord<mratsim> People keep asking how to use Weave with for http servers or other IO-bound / latency sensitive workload
14:53:39*arecacea1 quit (Remote host closed the connection)
14:54:03*arecacea1 joined #nim
14:54:07FromDiscord<mratsim> I don't know if it's important, but I need to implement something to know the real difference.
14:56:43FromDiscord<mratsim> Oh, Nim reached 10k stars
14:57:06FromDiscord<Yardanico> oh really?
14:57:13FromDiscord<Yardanico> I was waiting for that too
14:57:18FromDiscord<Yardanico> yay
14:57:43FromDiscord<dom96> lol
14:57:49FromDiscord<dom96> I just unstarred and it went to 9950
14:59:19FromDiscord<Yardanico> yeah, it's 9951 apparently
14:59:30Zevv9952!
14:59:54AraqI still see 10K
15:00:01Yardanicoit's roughing it up
15:00:05Yardanicofrom the API I see 9952
15:00:24Araqhow weird
15:00:27FromDiscord<dom96> the front end seems to have inconsistent logic with how it rounds up
15:04:41Zevvyou see 10k, but when you star or unstar you see the exact value
15:04:49Zevvit was 9951, and I just starred it to 9952
15:05:10ZevvSo finally, instead of "there's dozens of us" I can now tell people "there's thousands of us"
15:05:36FromDiscord<Yardanico> zevv lol you're right
15:05:39FromDiscord<Yardanico> it looks so weird
15:05:48FromDiscord<Yardanico> since the width changes too
15:05:51FromDiscord<Yardanico> I'm pretty sure it's a bug
15:06:17Zevvnah it's just about significant digits, this makes perfect sense
15:08:02FromDiscord<Clyybber> making you feel like you matter
15:11:04FromDiscord<Clyybber> Araq: https://github.com/nim-lang/Nim/pull/15357 should be better
15:11:04disbotadded decodeQuery() to uri.nim
15:11:43FromDiscord<Clyybber> but arguably it still uses the buffer approach
15:11:58alehander92hm
15:12:19FromDiscord<Clyybber> (edit) 'arguably' => ''
15:12:35Araqit only encourages bad code
15:12:38FromDiscord<Clyybber> Also, is https://github.com/nim-lang/Nim/pull/11410 good to merge?
15:12:38disbotfix coro crash
15:12:46Araqat least turn it into an iterator
15:12:58FromDiscord<Clyybber> good idea
15:13:17FromDiscord<Yardanico> lol https://media.discordapp.net/attachments/371759389889003532/756533304613929121/unknown.png
15:18:00FromDiscord<dom96> does that mean I can spam my GitHub followers by unstarring/starring repos?
15:18:05FromDiscord<Clyybber> yep
15:18:36FromDiscord<dom96> good job github
15:19:16YardanicoAraq: by the way, seems like there is still some cursor inference bug which surfaces in combparser :D
15:19:38Yardanicobecause it works with --cursorinference:off with arc, but not without that switch
15:21:14*vsantana quit (Ping timeout: 258 seconds)
15:21:42Araqyeah I know, I'm hunting async leaks though
15:21:59Yardanicoyeah, I saw the PRs, amazing job :)
15:22:17Araqmaybe it's time to give up and declare async abandoned, problem is that it doesn't help, the ORC bugs would still be there
15:22:44Araqbut if more people get exposed to orc maybe they can produce easier to track test cases
15:23:23FromDiscord<Clyybber> Araq: Would a ref graph to graphviz debug proc help?
15:23:34Araqno.
15:24:07Araqbeen there, done that, graphviz is ridiculous for these things
15:24:25Araqit can render thousands of nodes. problem: you cannot inspect them.
15:25:30alehander92yeah heap visualization seems as a good thing to improve on
15:26:24FromDiscord<Clyybber> Araq: I mean it should be possible to write a proc that also includes information like color/rc etc
15:26:51AraqI have all this information, it tells me nothing
15:26:51*vicfred joined #nim
15:27:05FromDiscord<Clyybber> ah ok
15:28:09Araqthey tell me all the things I already know, they don't tell me where the missing decref calls are
15:29:48Araqdebugging leaks is about debugging *missing* code. In this sense it's worse than debugging corruptions.
15:30:50FromDiscord<dom96> Were you able to find which types aren't being deallocated?
15:31:13FromDiscord<dom96> might be a good excuse to enable the same info that I used to track async leaks in the past
15:31:35FromDiscord<dom96> so you can get the data logged into prometheus and shown in a nice graph
15:32:03Araqthe types are, Future, closure environments and stdlib.asyncdispatch.CustomObj
15:32:25Araqplus a single PDispatcher but that's in a global and so really alive
15:32:48FromDiscord<dom96> Which of these are increasing in count/space usage?
15:33:32Araqall three are connected and do not get collected and the numbers rise as high as I want, only need to run more test loop iterations
15:35:21FromDiscord<dom96> how is the CustomObj used?
15:35:23FromDiscord<dom96> I don't recall it
15:35:39Araqit's the IO completion ports stuff from Windows
15:36:17FromDiscord<dom96> have you tried to see how the leaks differ on Linux/mac?
15:37:08Araqon Linux it's stdlib.selectors.SelectorImpl instead, haven't checked Mac
15:38:08Araqbtw I fixed yesterday's bug, this one is a new one
15:39:38FromDiscord<lqdev> jesus fuck i just encountered a nasty bug
15:39:50FromDiscord<lqdev> https://media.discordapp.net/attachments/371759389889003532/756539987272663100/unknown.png
15:39:56FromDiscord<lqdev> https://media.discordapp.net/attachments/371759389889003532/756540010399793202/unknown.png
15:39:57Araqyesterday's made me insane, there was a single assignment that was dead code
15:39:58*WilhelmVonWeiner joined #nim
15:40:05FromDiscord<lqdev> can anyone explain what the hell is happening here?
15:40:14FromDiscord<lqdev> how is it "of type 'unknown'"?
15:40:31FromDiscord<lqdev> area is an iterator which returns (Vec2f, T)
15:40:39FromDiscord<lqdev> so _theoretically_ it should work fine
15:41:25FromDiscord<dom96> Araq: oh damn, from one bug straight to another, that sucks.
15:41:50Yardanicowell, I'll also make him "happier" when I minimize this yet another cursor inf. bug :P
15:42:09FromDiscord<Clyybber> @lqdev Insert expandMacros to get a better picture
15:42:20FromDiscord<lqdev> mmkay
15:42:30FromDiscord<lqdev> i didn't expect it to work with templates
15:42:35FromDiscord<lqdev> but now that i think about it
15:43:13Araqit doesn't work with templates
15:43:23FromDiscord<UNIcodeX> scratching my head over here. I've got a mobile app that b64 encodes an image and sends it to a server for processing. On the server side, after getting the json string from the mobile app, and then attempting to parse it back into the original binary representation using base64.decode, I get an error "Invalid base64 format character `i` (ord 105) at location 1.". Last I checked, `i` is a valid base64 character and is working with an imp
15:44:08FromDiscord<lqdev> Araq, how do you debug templates then?
15:44:33FromDiscord<Clyybber> He's wrong
15:44:38FromDiscord<Clyybber> it *does* work :)
15:44:42FromDiscord<lqdev> not for me :)
15:44:47*hnOsmium0001 joined #nim
15:44:54FromDiscord<lqdev> the error seems to prevent expandMacros from expanding the macros
15:45:09FromDiscord<Clyybber> yeah
15:45:10FromDiscord<lqdev> which is, uh, less than ideal
15:45:15Araqtemplates are supposed to be so easy that you don't have to debug them...
15:46:22FromDiscord<Clyybber> @lqdev Or show me more code, and tell me what is a template and what not
15:46:34FromDiscord<lqdev> hold on, i'm pushing to github
15:47:09AraqUNIcodeX: this error is misleading
15:47:19Araqread base64.nim line 233
15:47:35Araqwe 'inc inputIndex' too early
15:47:41FromDiscord<lqdev> @Clyybber https://github.com/liquid600pgm/rapid/blob/version-2020/src/rapid/game/tilemap.nim#L212
15:47:45*kenran quit (Ping timeout: 240 seconds)
15:48:46Araqin reality some other non-base64 character is your problem
15:52:40*vsantana joined #nim
15:53:49FromDiscord<Clyybber> @lqdev and it works without the echo?
15:53:55FromDiscord<lqdev> no
15:54:04FromDiscord<lqdev> in fact the code i uploaded has the wrong number of loop variables
15:54:11FromDiscord<lqdev> it should be `position, it {.inject.}`
15:54:13FromDiscord<lqdev> BUT
15:54:31FromDiscord<lqdev> then it complains about "wrong number of variables"
15:54:44FromDiscord<Clyybber> huh, what a coincidence
15:54:51FromDiscord<Clyybber> I had that wrong number of variables error today too
15:54:57FromDiscord<Clyybber> its a regression
15:55:11FromDiscord<UNIcodeX> > in reality some other non-base64 character is your problem↵@Araq[IRC]#0000 Hmm. Thanks. I'll keep digging 😕
15:55:11FromDiscord<Clyybber> I haven't bisected yet
15:55:53FromDiscord<lqdev> seems like devel has this issue too (was on 1.2.6
15:55:57FromDiscord<lqdev> )
15:56:01FromDiscord<UNIcodeX> > we 'inc inputIndex' too early↵@Araq[IRC]#0000 Did I uncover something that needs to be fixed?
15:56:23Araqyes
16:01:49*konkrrrrrr is now known as kinkinkijkin
16:03:11FromDiscord<lqdev> workaround time
16:03:42FromDiscord<lqdev> i'mma make that template into a proc
16:03:56FromDiscord<lqdev> inefficient but can be fixed later
16:03:58FromDiscord<lqdev> *i hope*
16:06:36FromDiscord<lqdev> or actually
16:06:38FromDiscord<lqdev> wait a sec
16:06:42FromDiscord<lqdev> this can be solved with concepts
16:07:20FromDiscord<UNIcodeX> @Araq As you suggested, moving the `inc inputIndex` to after the if block gave me the actual character. When iterating over the string from my JSON the `"` marks wrapping the base64 string were not stripped out, causing decode to fail. Would you like me to fork and submit a PR for this change? Or have you made it already?
16:13:36Araqplease go ahead, I'm busy with other stuff
16:16:50*vsantana quit (Quit: leaving)
16:23:17FromDiscord<Clyybber> @lqdev Hmm, my "wrong amount of variables" error is a regression since 1.2.6
16:27:49FromDiscord<mratsim> > this can be solved with concepts↵Oh boy :p
16:27:54FromDiscord<Clyybber> oh, I wasn't aware of cgi.decodeData
16:27:55FromDiscord<Clyybber> makes sense
16:28:19FromDiscord<lqdev> @mratsim dude, it's a single line of concept. how could _anything_ go wrong?
16:28:38FromDiscord<mratsim> You asked for it
16:29:14FromDiscord<lqdev> no, but seriously. i've been happily using concepts in aglet to not have to depend on a single image library
16:29:16FromDiscord<lqdev> and guess what
16:29:18FromDiscord<lqdev> _it works!_
16:29:56*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
16:30:00FromDiscord<mratsim> Look very simple concept, either 2 fields or 3 fields: https://github.com/nim-lang/Nim/issues/13982
16:30:02disbotConcepts building on each other: duplicated procs in C codegen ; snippet at 12https://play.nim-lang.org/#ix=2y08
16:30:28FromDiscord<mratsim> sent a code paste, see https://play.nim-lang.org/#ix=2y09
16:31:07FromDiscord<mratsim> And I managed to generate hundreds of thousands of lines of concept instantiations with those :/
16:31:13FromDiscord<mratsim> but otherwise they do work
16:31:37FromDiscord<mratsim> I've been using them in Weave, Trace-of-radiance, Crypto, Arraymancer
16:31:40FromDiscord<lqdev> i see
16:31:49FromDiscord<mratsim> And we have a lot of tehm at Status for serialization
16:31:49FromDiscord<lqdev> but my concept is literally one line with no refinement
16:32:23*Lord_Nightmare joined #nim
16:32:27FromDiscord<mratsim> My bug and Zahary reply shows that there is no concept cache and so proc will get duplicate in the C code
16:32:33FromDiscord<lqdev> hopefully araq's New Concepts™ will be much better
16:32:49FromDiscord<mratsim> unlike generic/static which check if the proc was already instantiated before creating one
16:33:07FromDiscord<mratsim> it might be easy to support, just put instantiations in a table
16:33:25FromDiscord<mratsim> it's all about the "just" :p
16:36:53FromDiscord<Vindaar> hey, just is my favorite ok. Yesterday afternoon I thought I'd just create one plot. I'm still working on that plot... 🙈
16:37:18alehander92Araq
16:37:30alehander92the more basic tests now pass again on my machine
16:37:39alehander92i'll probably continue with alias later
16:38:24alehander92but the current code is pushed
16:41:43FromDiscord<Clyybber> alehander92: Will it allow for general value exclusion?
16:42:04FromDiscord<Clyybber> For a hypothetical `int not 1`
16:42:16*narimiran joined #nim
16:42:59*vicfred quit (Quit: Leaving)
16:45:33Yardanicoyay, minimized this another cursor inference bug from combparser
16:45:39Yardanicoit's a goldmine for these
16:48:22Yardanicohttps://github.com/nim-lang/Nim/issues/15361
16:48:24disbot[ARC] Object variant gets corrupted with cursor inference ; snippet at 12https://play.nim-lang.org/#ix=2y0c
16:48:43Yardanicoamazing title as usual, it's probably not related to object variants at all
16:48:49Yardanicomaybe I should try to minimize more
16:49:33Yardanicoah, I see why lol
16:50:07Yardanicois it correct if there's "rerrors_cursor = rresult" (so cursor points to rresult without copying)
16:50:18Yardanicoand then rresult gets destroyed, but rerrors_cursor is being used after that
16:51:30Yardanicohence why it only was triggered in a block
16:52:37Yardanicoor maybe not
16:52:51*Kaivo quit (Ping timeout: 258 seconds)
16:55:11*Kaivo joined #nim
17:11:20*abm quit (Quit: Leaving)
17:17:19*FromDiscord quit (Remote host closed the connection)
17:17:47*FromDiscord joined #nim
17:17:51FromDiscord<Yardanico> ??
17:18:04FromDiscord<ache of head> The last thing you sent
17:18:12FromDiscord<Yardanico> well yes, it's for parsing time formats
17:18:16FromDiscord<ache of head> Nice
17:28:58*vicfred joined #nim
17:32:16FromDiscord<UNIcodeX> > please go ahead, I'm busy with other stuff↵@Araq[IRC]#0000 you got it. Which branch(es)?
17:37:01FromDiscord<Clyybber> Araq: I think maybe this deserves a showstopper tag https://github.com/nim-lang/Nim/issues/15360 ?
17:37:03disbotWrong number of variables ; snippet at 12https://play.nim-lang.org/#ix=2y0t
17:41:37*arecacea1 quit (Remote host closed the connection)
17:41:57*arecacea1 joined #nim
17:43:26FromDiscord<PizzaFox> showstopper tag?
17:43:41*kenran joined #nim
17:43:53FromDiscord<Clyybber> yeah, its for really urgent bugs/issues
17:45:09FromDiscord<mratsim> Drop everything, all hands on deck, ladies and babies first
17:45:58FromDiscord<mratsim> what if you use `tuple[a: int, b: T]` syntax?
17:46:56FromDiscord<Clyybber> same
17:47:06FromDiscord<Clyybber> The original snippet used that syntax
17:47:21FromDiscord<Clyybber> but I found the (int, T) syntax to be more minimal
17:47:39FromDiscord<lakmatiol> can you make chaining operators, such that `a &* b &* c` becomes `&*(a, b, c)`
17:48:54*kenran quit (Ping timeout: 256 seconds)
17:50:28Yardaniconot sure what do you mean
17:50:42Yardanicobut you can probably try to use macros for that, or term-rewriting macros
17:51:03Yardanicobut with TRM you'll have to special case each number of variables
17:54:20FromDiscord<mratsim> @lakmatiol You can, it's actually a pretty simple introduction to macros, I just need to find my code :p
17:57:56FromDiscord<Doongjohn> @lakmatiol how about this? https://play.nim-lang.org/#ix=2y0Bidk how to not use ``
17:58:04FromDiscord<Doongjohn> (edit) '@lakmatiol how about this? https://play.nim-lang.org/#ix=2y0Bidk ... how' => '@lakmatiol how about this? https://play.nim-lang.org/#ix=2y0Bidkidk'
17:58:16FromDiscord<mratsim> sent a code paste, see https://play.nim-lang.org/#ix=2y0D
17:58:32FromDiscord<mratsim> you're link is empty @Doongjohn
17:58:37FromDiscord<Doongjohn> (edit) 'https://play.nim-lang.org/#ix=2y0Bidk' => 'https://play.nim-lang.org/#ix=2y0B'
17:58:40FromDiscord<Doongjohn> fixed
17:58:49FromDiscord<mratsim> (edit) 'https://play.nim-lang.org/#ix=2y0D' => 'https://play.nim-lang.org/#ix=2y0E'
17:59:07FromDiscord<Recruit_main707> if you use special characters you need them
17:59:46FromDiscord<Recruit_main707> and its not `&*`, its \`&`*
18:00:00FromDiscord<lakmatiol> the operator I used as an example was &*
18:00:07FromDiscord<Recruit_main707> ah
18:00:39FromDiscord<lakmatiol> I meant that you put `4 &* 5 &* 4` into code, and it would behave like `is chain` of raku, and `1 < 3 < 5` of python.
18:05:17FromDiscord<Doongjohn> @lakmatiol do you mean this? https://raku.guide#_chaining
18:05:40*FromDiscord quit (Remote host closed the connection)
18:05:54*FromDiscord joined #nim
18:05:56FromDiscord<lakmatiol> no, let me find an exaple
18:05:57FromDiscord<lakmatiol> (edit) 'exaple' => 'example'
18:07:40FromDiscord<Doongjohn> oh how about this? https://www.geeksforgeeks.org/chaining-comparison-operators-python/
18:07:57*lritter joined #nim
18:08:17FromDiscord<lakmatiol> yeah, that is what I meant
18:10:04*pangey__ joined #nim
18:10:09*pangey quit (Ping timeout: 272 seconds)
18:15:47*superbia1 is now known as superbia
18:21:39FromDiscord<lakmatiol> on second, I may be misremembering the raku feature
18:21:45FromDiscord<lakmatiol> (edit) 'second,' => 'second thought,'
18:24:52*a_chou joined #nim
18:25:52FromDiscord<Doongjohn> am I understanding it correctly? e.g.) 1 * 2 * 3 == (1 * 2) * (2 * 3)
18:27:06FromDiscord<lakmatiol> no, it should be `1 * 2 * 3 = whateverFunction*Calls(1, 2, 3)`
18:27:12FromDiscord<lakmatiol> (edit) '=' => '=='
18:27:38FromDiscord<Doongjohn> ohhh
18:28:14FromDiscord<lakmatiol> sent a code paste, see https://play.nim-lang.org/#ix=2y0Q
18:28:19*StevePerkins joined #nim
18:29:03FromDiscord<lakmatiol> is how raku does it
18:29:49FromDiscord<iWonderAboutTuatara> https://media.discordapp.net/attachments/371759389889003532/756582766438645811/Screenshot_20200918-112939.jpg
18:29:52FromDiscord<iWonderAboutTuatara> Latex bad
18:31:33FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=2y0R
18:31:44FromDiscord<haxscramper> https://nim-lang.org/docs/manual_experimental.html#pattern-operators-the-star-operator
18:31:54FromDiscord<lakmatiol> that is cool
18:31:56FromDiscord<lakmatiol> thanks
18:31:58FromDiscord<Doongjohn> wow
18:32:23disruptekzevv: did you figure out what you want to rename cps to? because i need to rename my tubes concept. i figured out how it should work...
18:32:49Yardanicoyou're alive?!
18:33:12disruptekwhat else?
18:34:58FromDiscord<shad0w> sent a code paste, see https://play.nim-lang.org/#ix=2y0T
18:35:06*a_chou quit (Remote host closed the connection)
18:35:36FromDiscord<shad0w> (edit) 'https://play.nim-lang.org/#ix=2y0T' => 'https://play.nim-lang.org/#ix=2y0U'
18:36:36FromDiscord<shad0w> (edit) 'https://play.nim-lang.org/#ix=2y0U' => 'https://play.nim-lang.org/#ix=2y0V'
18:36:47FromDiscord<shad0w> (edit) 'https://play.nim-lang.org/#ix=2y0V' => 'https://play.nim-lang.org/#ix=2y0W'
18:37:18FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=2y0X
18:37:20disruptekclyybber: the arc bug is that we move on top of ourselves, nulling ourselves out.
18:37:25FromDiscord<lakmatiol> in C enums are just numbers. in python it could possibly work too. But I don't know of any lang that has an ordinal bound on indexing rather than a numeric one
18:38:03FromDiscord<haxscramper> But as already mentioned it only works in C++ for example because there is little to no difference between numbers and enum values
18:38:23disruptekthere is an issue for it in the cps repo; its assigned to araq.
18:38:32FromDiscord<haxscramper> If I add `enum class` it just blows up
18:38:54disruptekit's, too. i'm on mobile and stoned to boot, okay?
18:43:27Yardanicokidney stones?
18:43:36FromDiscord<shad0w> sent a code paste, see https://play.nim-lang.org/#ix=2y10
18:43:51Yardanicoyes
18:43:57Yardanicosince char is an ordinal type
18:44:26FromDiscord<shad0w> like i said, subtle, but powerful. : D
18:44:30Yardaniconot subtle :)
18:44:47Yardanicoit's a known fact
18:45:03FromDiscord<shad0w> lmao, i would've missed the fact if i wasn't paying attention
18:45:39Yardanicowell I don't think we should call all facts that are not being advertised on every page "subtle"
18:48:44FromDiscord<haxscramper> Is there some kind of explanation for decision to make `macros.``$` to raise exception on invalid nodes?
18:48:52FromDiscord<lqdev> @shad0w btw you can just to `array[Direction, BlinkLights]`
18:49:21FromDiscord<shad0w> > @shad0w btw you can just to `array[Direction, BlinkLights]`↵@lqdev sweet.
18:49:28Yardanico@haxscramper wdym?
18:50:41FromDiscord<haxscramper> I can't do `echo` on `NimNod` that are not string/identifier/sym etc.
18:50:52FromDiscord<haxscramper> I have to do `toStrLit()` each time
18:51:06FromDiscord<lqdev> @haxscramper you can do either `node.repr` or `node.treeRepr`
18:51:07FromDiscord<haxscramper> And it does not work when I have node inside of some other type
18:51:08Yardanicouse repr if you want the full representation of the node
18:51:12FromDiscord<lqdev> repr renders the AST
18:51:14Yardanico$ is for strings
18:51:21FromDiscord<lqdev> and treeRepr gives you a tree representation
18:53:32FromDiscord<haxscramper> I can't use tree repr when I have nim node inside some other structure unless I write string converter that handles it correctly. E.g. there is https://github.com/nim-lang/Nim/blob/devel/lib/core/macros.nim#L1272 - why `toStrLit()` wasn't used here in else clause?
18:54:02FromDiscord<haxscramper> I'm interested if there is some logic behind this or not
18:57:54*NimBot joined #nim
18:58:36Zevvdisruptek: rename?
18:58:53Zevvyour tubes is csp, not cps, right?
19:00:29disruptekyeah.
19:00:56disruptekbut i actually have a sifference idea on how we shoukd do this.
19:01:34disruptekjesus. you know youre high when...
19:01:56Zevv.. .when you actually have a sifference idea on how to do this?
19:02:13disruptekSomeVontinuationType[Data]
19:02:13Zevvhow is it different then
19:02:50disruptekso the relationship between transforms is typed and generic to the data.
19:03:12Zevvhm what does that bring?
19:03:31Zevvthe stuff has lost my brain mostly I'm afraid
19:03:35disruptekthis gives us our needed typecheck at compile time and lets us do conversion and evaluation naturally.
19:03:45disruptekinferrence, that is.
19:03:47Zevvand are you talking cps or more?
19:04:09disruptekcps but it makes csp much better.
19:04:16Zevvright
19:04:31Zevvand does it happen to change anything about the reason we are now blocked?
19:04:40Zevvprolly not eh
19:05:01disrupteki cant even remember off the top of my head why we are blocked.
19:05:21Zevvbecause clyybber is a lazy
19:05:36disruptekoh i think its proc syms and dotexpr symbol subs.
19:06:19Zevvi forgot as well
19:06:53Zevvyour kind of sick and tired of IC i guess
19:07:18disruptekthe fix to thped macros isnt in 1.4, so it eill be real hard for cps to work there.
19:07:41Zevvi dont care for that, devel is just fine
19:08:25Zevvby the time cps is going somewhere there will be another nim. and if not and cps is really going somewhere, it will be a good reason to make a new nim release for :)
19:09:28Zevvi cant seem to find enough brain juice to do more then one thing lately
19:09:32*konkrrrrrr joined #nim
19:12:11disruptekis it porn? i bet its porn.
19:12:20*kinkinkijkin quit (Ping timeout: 272 seconds)
19:18:08Zevvno, the pay was lousy, I quit
19:18:26Zevvi now do plumbing & complaining full time
19:19:39*tane joined #nim
19:25:08*gmaggior joined #nim
19:28:23disrupteki read that as "the plumbing was lousy"
19:30:56Zevvit mostly is
19:31:18FromDiscord<lakmatiol> sent a code paste, see https://play.nim-lang.org/#ix=2y1j
19:32:40FromDiscord<shad0w> i have a question guys. if i do `sizeof string1` where string1 is some string, it always tells me its 8 bytes, no matter how long the string is or wether its an empty string.
19:33:39Zevvlong or short answer?
19:33:47FromDiscord<shad0w> mid-way ?
19:34:21FromDiscord<lakmatiol> strings store their characters in a magical space where sizeof doesn't see
19:34:27Zevvthe 'string thing' is a little opaque object with a size and a pointer. That's 8 bytes. The pointer points to the actual string - which can grow, and be realloced, that lives on the heap
19:34:35ZevvYou do 'len' on that.
19:34:39ZevvThe even longer answer is http://zevv.nl/nim-memory/
19:35:51FromDiscord<shad0w> ^ imma go read that.
19:36:48Zevvlakmatiol: it's the same on C++ by the way
19:37:42ZevvOw I should finish my arc writing I guess
19:38:44Zevvhttp://zevv.nl/nim-memory/nim-arc.html, I'm looking for ideas how to fill in the rest of it.
19:44:33*kenran joined #nim
19:48:32ozI think I'm going to read that instead of working
19:49:25*kenran quit (Ping timeout: 240 seconds)
19:50:49*Vladar quit (Quit: Leaving)
19:53:30ozZevv: hm you should definitely fill in those TODO parts. :>
19:54:50Zevvikr
20:08:18FromDiscord<lakmatiol> sent a code paste, see https://play.nim-lang.org/#ix=2y36
20:08:24FromDiscord<lakmatiol> mapIt is the cause
20:08:41FromDiscord<lakmatiol> should I report this?
20:14:51disruptekyou mean instead of keeping it a secret?
20:15:10FromDiscord<lakmatiol> maybe this is expected somehow
20:15:29FromDiscord<lakmatiol> though on second thought, the compiler probably should not segfault
20:15:37FromDiscord<lakmatiol> well, time to write up an issue
20:15:44disrupteki can't click the link atm.
20:31:08*narimiran quit (Ping timeout: 256 seconds)
20:34:07*arecacea1 quit (Remote host closed the connection)
20:34:46*arecacea1 joined #nim
20:38:55FromDiscord<Recruit_main707> why do case objects dont allow forwarda declarations? (in the same type block)↵https://play.nim-lang.org/#ix=2y3g
20:43:22disruptekspeaking of massage,
20:58:07*vicfred quit (Quit: Leaving)
21:00:13*konkrrrrrr is now known as kinkinkijkin
21:03:47*lritter quit (Ping timeout: 240 seconds)
21:04:48*lritter joined #nim
21:25:58FromDiscord<djazz> I used Nim and SDL2 to create a fullscreen (no X.org) slideshow viewer! https://github.com/daniel-j/slideshow/blob/master/slideshow.nim↵Demo: https://media.discordapp.net/attachments/371759389889003532/756627092736704562/capture2.mp4
21:26:24FromDiscord<djazz> Requires SDL2 compiled with KMSDRM support (only tested Pi 4)
21:31:44*vicfred joined #nim
21:32:46FromDiscord<djazz> Took a while before I figured out why it was only software rendering, but then I got it to use Mesa's v3d (dri permissions)
21:36:28disruptekneat.
21:36:58FromDiscord<lqdev> i have a bit of a problem with {.compile.}
21:37:03FromDiscord<lqdev> namely, files get recompiled
21:37:07FromDiscord<lqdev> even if they didn't change
21:37:37FromDiscord<lqdev> i was pretty sure that there was a cache for C files, am i right?
21:39:20*aenesidemus joined #nim
21:44:45*solitudesf quit (Ping timeout: 240 seconds)
21:45:26*kenran joined #nim
21:50:42*kenran quit (Ping timeout: 265 seconds)
22:05:16disruptekyep.
22:28:13*Trustable quit (Remote host closed the connection)
22:31:33*tane quit (Quit: Leaving)
22:35:17FromDiscord<mratsim> I sometimes have the inverse issue, C file changes, they don't get recompiled
22:35:25FromDiscord<mratsim> well always
22:35:29FromDiscord<acek7> Hows my NimNoms
22:43:16FromDiscord<Rika> lol
22:46:04*krux02 quit (Remote host closed the connection)
22:52:25*thomasross quit (Ping timeout: 240 seconds)
22:52:40FromDiscord<Vindaar> very NomNom
22:59:33*kinkinkijkin quit (Remote host closed the connection)
23:00:06*kinkinkijkin joined #nim
23:19:05*abm joined #nim
23:24:19FromDiscord<acek7> Dont laugh at me Rika
23:24:24FromDiscord<acek7> im sensitive
23:26:16FromDiscord<Rika> lewd
23:27:30disruptekrika: you don't have to be rude to /every/ newbie in the channel.
23:29:36FromDiscord<Rika> lmaoooo
23:32:00*gmaggior quit (Ping timeout: 272 seconds)
23:33:32FromDiscord<acek7> Rika is a bully
23:33:42*pangey joined #nim
23:34:40FromDiscord<Elegant Beef> Cant spell rude without rika
23:34:49FromDiscord<acek7> On a serious topic what tutorial for nim would you say is the best i am ready to watch something
23:35:01*pangey__ quit (Ping timeout: 264 seconds)
23:35:07FromDiscord<Elegant Beef> The written tutorials are fantastic
23:35:15FromDiscord<Elegant Beef> those and the manual
23:35:23FromDiscord<acek7> I was reading the Nim book but its a little dense at times and im like damn this is hard to get through
23:35:38FromDiscord<acek7> the ones on the website?
23:36:02FromDiscord<Elegant Beef> Yea, i found them nice and usable
23:38:19FromDiscord<acek7> what about a video
23:38:26FromDiscord<acek7> im weird and learn weird
23:39:41FromDiscord<Rika> *starts pinging kiloneie*
23:43:00*a_b_m joined #nim
23:43:05FromDiscord<Elegant Beef> https://www.youtube.com/watch?v=5tVIsDYPClA&list=PLvwc2YT9MFOlPPexrsY-t7BNTdg2Vsx06
23:44:44*gmaggior joined #nim
23:46:21*kenran joined #nim
23:46:38*abm quit (Ping timeout: 256 seconds)
23:51:05*kenran quit (Ping timeout: 240 seconds)
23:58:49*a_b_m quit (Ping timeout: 260 seconds)