<< 28-07-2020 >>

00:09:57FromDiscord<brainproxy> sent a long message, see http://ix.io/2su6
00:10:56Yardanicoyou shouldn't need any specific configuration for that
00:11:11Yardanicovscode-nim will provide suggestions automatically for .nim files you open
00:11:28Yardanicoif there's no autocompletion, check that nimsuggest is in your PATH and the plugin actually can find it
00:16:38*rockcavera quit (Remote host closed the connection)
00:18:04FromDiscord<brainproxy> nimsuggest is availble in PATH, just checked↵↵In e.g. `src/foo.nim` I `import nimcrypto` where nimcrypto is installed in `vendor/nimcrypto`. When `src/foo.nim` is opened in vscode I get a warning: `cannot open file: nimcrypto` and there are warnings/errors re: undeclared identifiers for procs, etc. in nimcrypto
00:18:21Yardanicoand how do you compile?
00:18:36Yardanicoyou need to have proper configuration so nimsuggest works
00:18:49Yardanicoe.g. if you specify --project on cmdline - you need to do that in the config file
00:18:50FromDiscord<brainproxy> a custom makefile system
00:18:52Yardanicosame for include, import, etc
00:19:05FromDiscord<brainproxy> I wouldn't compile using vscode, just from command-line
00:19:11Yardanicoyes, and how do you compile?
00:19:18Yardanicowhat command switches do you provide to nim?
00:19:25FromDiscord<brainproxy> https://github.com/status-im/nimbus-build-system/
00:19:41FromDiscord<brainproxy> that injects a lot of stuff into the environment related to nim compiler params
00:19:53FromDiscord<brainproxy> and then you write make targets taking advantage of that
00:20:17Yardanicowell you have to know how it actually manages the special nim compiler params
00:20:23Yardanicoand replicate then in the .cfg (or .nims) file
00:20:31Yardanicoto actually get nimsuggest to understand where stuff comes from
00:20:51Yardaniconimsuggest uses the compiler, so you need to make same config files as you would do for the compiler itself
00:20:53FromDiscord<brainproxy> fair enough
00:21:03FromDiscord<brainproxy> thanks for the tip!
00:21:22FromDiscord<brainproxy> will ask the nimbus folks if any of them have done that for their local vs code setup
00:21:29FromDiscord<brainproxy> (if any of them use vs code)
00:22:20Yardanico well it doesn't matter if it's vscode or not
00:22:36Yardanicoyou need to do that for any editor supporting nimsuggest (or nimlsp which uses nimsuggest)
00:22:38FromGitter<bung87> just setting compiler flags through config files
00:22:43Yardanicoyes, as I said
00:22:56FromDiscord<brainproxy> ah right, sure
00:23:06FromDiscord<brainproxy> (edit) '(if' => '~~(if' | 'code)' => 'code)~~'
00:23:54FromGitter<bung87> extension doest know what you will pass to command line
00:25:54*FromDiscord quit (Remote host closed the connection)
00:26:07*FromDiscord joined #nim
00:28:16FromGitter<bung87> "backend" could be a valid switch? that extension may concerns
00:28:35YardanicoI think status mostly uses the C backend :)
00:31:53FromGitter<bung87> have known extension that aware of backend settings? I havnt know
00:31:57Yardanico??
00:32:05YardanicoI'm sorry, I don't understand :)
00:32:48FromGitter<bung87> I mean extension use some file detecting backend settings
00:32:57Yardanicoit doesn't really
00:33:00Yardanicothat's done by nimsuggest
00:33:51FromDiscord<Varriount> Yaaaaaardanico. Such a fun name to say.
00:33:54FromGitter<bung87> then provider editor features for that backend
00:34:03Yardanicoi still don't understand :P
00:34:20Yardaniconimsuggest have "backend-specific" commands
00:34:25Yardanicodoesn't have*
00:35:32FromDiscord<Varriount> shashlick: I'm having trouble getting Nimterop to work with config files. when I pass a mixture of command-line arguments and a config file to toast, it exits with non-zero exit code, but doesn't print any error messages.
00:36:30FromGitter<bung87> ok, that's fine. basically i just use c backend
00:40:10*Trustable quit (Remote host closed the connection)
00:43:58FromGitter<bung87> when you say "I'm sorry, I don't understand" reminds me of tv drama "humans"
00:47:38FromGitter<bung87> https://m.imdb.com/title/tt4122068/
01:04:06*aurelius joined #nim
01:05:21*rockcavera joined #nim
01:09:25*aurelius quit (Ping timeout: 256 seconds)
01:10:39*maier joined #nim
01:14:25FromDiscord<impbox> I just watched the russian version "Better Than Us", the original Swedish version is great too
01:15:48*maier quit (Ping timeout: 256 seconds)
01:17:48*apahl quit (Ping timeout: 246 seconds)
01:20:02*apahl joined #nim
01:21:42*krux02_ quit (Remote host closed the connection)
01:24:13FromGitter<bung87> wow that looks nice two , i want watch
01:37:51shashlick@varriount snippet?
01:45:25*oriba quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
02:05:45FromDiscord<Varriount> shashlick: Ah, I figured it out
02:06:09FromDiscord<Varriount> I had re-downloaded Nimterop, and forgot to add `noquote` to one of the lines
02:06:19FromDiscord<Varriount> of code in the nimterop source.
02:07:48FromDiscord<Varriount> shashlick: I'm planning on making a PR eventually which fixes the issues I've found. I also found a Clang bug 😐
02:07:51*muffindrake quit (Ping timeout: 272 seconds)
02:09:58*muffindrake joined #nim
02:26:09shashlickNifty, always welcome
02:36:36*endragor quit (Remote host closed the connection)
02:37:03*endragor joined #nim
02:42:50*endragor quit (Ping timeout: 260 seconds)
02:50:37*lritter quit (Ping timeout: 264 seconds)
02:50:55*lritter joined #nim
02:52:30*aurelius joined #nim
02:53:32*endragor joined #nim
02:57:50*aurelius quit (Ping timeout: 265 seconds)
03:05:11*arecacea1 quit (Remote host closed the connection)
03:06:03*arecacea1 joined #nim
03:07:17*Zectbumo joined #nim
03:10:31*waleee-cl quit (Quit: Connection closed for inactivity)
03:11:30*maier joined #nim
03:16:19*aurelius joined #nim
03:16:54*maier quit (Ping timeout: 260 seconds)
03:16:59*Zectbumo quit (Remote host closed the connection)
03:58:01*NimBot joined #nim
04:01:26*maier joined #nim
04:02:19icyphoxdoes asyncnet work with UDP?
04:02:49icyphoxit doesn't have a `sendTo()` proc like net
04:06:01*supakeen quit (Quit: WeeChat 2.8)
04:06:28*maier quit (Ping timeout: 265 seconds)
04:06:42*supakeen joined #nim
04:09:07icyphoxhmm maybe i can use `dial()` for this
04:11:12*rockcavera quit (Remote host closed the connection)
04:11:52FromGitter<bung87> in ast.nim `raiseRecoverableError` RecoverableError means what ?
04:12:43FromGitter<bung87> programs run recover from exception that I understand
04:22:08*B4s1l3 joined #nim
04:22:14*B4s1l3 is now known as opDispatch
04:22:27*opDispatch left #nim (#nim)
04:38:06*hoijui joined #nim
04:43:22FromDiscord<jcs224> sent a code paste, see https://play.nim-lang.org/#ix=2suE
04:43:46FromDiscord<jcs224> `finalHex` being a string
04:48:09*endragor quit (Remote host closed the connection)
04:48:36*endragor joined #nim
04:49:56FromDiscord<Elegant Beef> @jcs224 here you go↵https://play.nim-lang.org/#ix=2suF
04:50:22FromDiscord<Elegant Beef> alternatively you could use `newJString("Super Secure Password")`
04:52:45FromDiscord<jcs224> Nice, that did it, thanks!
04:53:25ForumUpdaterBotNew thread by Arch: Are constructors supported ?, see https://forum.nim-lang.org/t/6606
04:54:22*endragor quit (Ping timeout: 256 seconds)
04:56:31*endragor joined #nim
05:09:03*narimiran joined #nim
05:22:03icyphoxhow can i use asyncdispatch's `addTimer` proc to just modify a value every N seconds?
05:22:10icyphoxor is there a better way to do this?
05:37:32*dzamo joined #nim
05:56:31*Vladar joined #nim
05:58:36*maier joined #nim
06:10:08Zevv[m]disruptek: dude go to bed man
06:27:01FromDiscord<Varriount> Zevv: He hasn't written anything for a while.
06:27:19FromDiscord<Varriount> Unless he's streaming or something
06:31:42ForumUpdaterBotNew thread by Serge: Is the rule regarding parentheses as "blocs" still valid ?, see https://forum.nim-lang.org/t/6607
06:33:53*solitudesf joined #nim
06:38:45FromDiscord<slymilano> Hey gang, in Elixir I can run credo to tell me about my code stank - is there something similar for Nim? Would like to make it a part of my CI process
06:39:04FromDiscord<slymilano> a "linter" for Nim so to speak.
06:40:03FromDiscord<Rika> code style only afaik
06:40:11FromDiscord<Rika> i mean, appearance
06:40:28FromDiscord<Rika> nimpretty for appearance of code
06:40:39FromDiscord<Rika> nothing for analysis, i dont think
06:41:02leorizenarimiran: can you update the hash for fusion in Nim?
06:41:29narimiranleorize: oh, there's a hash? so that's why it is still failing? :)
06:41:39leorizeyep :P
06:41:47FromDiscord<slymilano> thanks Rika
06:42:12FromDiscord<Yardanico> @slymilano well there's nim check
06:42:29FromDiscord<Yardanico> It'll report all warnings and hints just like the compiler
06:42:32FromDiscord<Yardanico> Without compiling
06:42:43FromDiscord<Rika> oh yeah that
06:43:38FromDiscord<Elegant Beef> Considering your dont write idiomatic nim code anyway slymilano what's that code smell 😄
06:49:10FromDiscord<Yardanico> Damn I actually didn't think about that, although I already made my own way of single line procs https://forum.nim-lang.org/t/6607
06:53:06narimiranleorize: done, and restarted the failing nightiles.....
06:56:37leorizerestarted my nightlies as well :P
07:03:21Zevv[m]variriount: I know, but he just commited a nasty PR
07:19:47*Vladar quit (Remote host closed the connection)
07:25:11narimiranleorize: yay, another fail: filepermissions_examples1.nim(9, 6) Error: undeclared identifier: 'fpUserExec'
07:26:00narimiranrunnable example needs "import os"
07:28:21narimiranfixed, bumped FusionStableCommit, restarted
08:01:01Oddmongerok today i read again tutorial I
08:01:11Oddmongerand i take notes on traps
08:01:35Yardanicooh god my brain
08:02:17Yardanicomy head was just.. working with other info, and it resolved "trap" to it's another unofficial internet slang meaning
08:03:51FromDiscord<Elegant Beef> lol yard, freud has an idea about that 😄
08:04:15Yardanicononono i was just browsing r/animemes
08:04:22Yardanicoit was a little happy accident
08:05:51FromDiscord<Rika> :EyesShaking:
08:06:49*lritter quit (Ping timeout: 264 seconds)
08:09:50YardanicoAraq: with two leak fixes, the current RAM usage of asynchttpserver after ~450k requests is 100mb compared to 1500mb (nim from a month ago), both with orc
08:09:58Yardanicoand the leak seems to be related to callbacks this time
08:10:20Yardanicobut it doesn't leak a lot per-request
08:10:45Yardanicowell, comparatively
08:13:23narimiranah, another fusion fix, another problem discovered.....
08:13:37*oddp joined #nim
08:22:11ForumUpdaterBotNew thread by Wiltzutm: Incomplete gamma function in Nim or it's 3rd party libraries, see https://forum.nim-lang.org/t/6608
08:22:34FromDiscord<Varriount> naeimiran: The bugfix conga
08:25:40*Cthalupa quit (Ping timeout: 256 seconds)
08:30:21Yardaniconaemiran :D
08:31:47FromDiscord<Rika> ~~naenaemiran~~
08:33:33narimiran* naemean
08:33:39Yardanicomean nae
08:36:03FromDiscord<kodkuce> hmm can i post formated code with ``
08:36:06Yardanicoyes
08:36:10Yardanicobut with ```
08:36:26FromDiscord<kodkuce> sent a code paste, see https://play.nim-lang.org/#ix=2sv6
08:36:28Yardanicowell yes it might crash
08:36:32Yardaniconimsuggest has crashes
08:36:37Yardanicoand nimlsp uses nimsuggest
08:36:54Yardanicofor a good bug report you should try to minimize the source code file which created this crash :)
08:37:04Yardanicoso it doesn't depend on any imports at all, and roughly <100 loc :P
08:37:20FromDiscord<kodkuce> ye, so to do that would need what
08:37:26FromDiscord<kodkuce> to delete half code
08:42:34Yardanicoadded two more examples to https://github.com/nim-lang/Nim/wiki/Nim-features-you-didn't-know-you-needed XD
08:43:17Yardanicofeel free to add if you have any
08:43:24Yardanicojust some unusual, less-known nim features
08:43:41Yardanicois named argument overloading documented by the way?
08:43:49FromDiscord<Clyybber> nope, should add that
08:43:52YardanicoXD
08:44:03FromDiscord<Clyybber> it doesn't have tests too
08:44:13Yardanicobut it works :P
08:44:19FromDiscord<Clyybber> but nimgame2 tests it :p
08:45:35narimiranYardanico: oh, range type exampes! i had no idea that worked! :)
08:45:43Yardaniconeither did I really
08:45:53Yardanicofound it on some github project which had "port: 1 .. 65535" in object field definition
08:46:04superbia1when is walrus operator coming to nim
08:46:11Yardanicosuperbia1: you can implement it yourself
08:46:15Yardanicowith a single line template
08:46:29Yardanicosee https://github.com/Yardanico/nimpylib/blob/master/src/pylib.nim#L177
08:46:53Yardanicoalthough it behaves a bit differently
08:47:28superbia1yea
08:47:54Yardanicobut for most cases it can work the same as the python walrus
08:47:59Yardanicobut I don't think we'll get that as a built-in :)
08:48:07Yardanicobecause as I showed it's trivial to implement with a template
08:51:37narimiranif anybody has some extra time, can you do a sanity check for me? clone https://github.com/nim-lang/fusion and try to run `nim doc src/fusion/htmlparser/xmltree.nim`
08:51:44Yardanicosure
08:51:58Yardanicofails
08:52:07narimiranon my end, it behaves differently than the stdlib version
08:52:09Yardanicoat the <firstTag> thing
08:52:13narimiranyep
08:52:15Yardaniconarimiran: well yeah I think it has some changes
08:52:26narimiranyeah, it does have, i'm now comparing
08:52:27Yardanicoping @bung87 :P
08:52:37*Cthalupa joined #nim
08:53:51narimiranprobably this line: `if n.len == 0 and n.fTag in SingleTags:`
08:55:16narimiranyep, change it to `if n.len == 0:` (like in the stdlib) and it passes
08:56:01FromDiscord<kodkuce> what are this observable stores warnings, exmaple observable stores to ':envP.frame5'
08:56:07*nikita` joined #nim
08:56:08Yardanicoignore them for now
08:56:23Yardanicobasically they mean that you're assigning the result even if the code can raise an exception
08:56:46Yardanicobut the warning will be improved or fully removed, so don't worry
08:58:16FromDiscord<kodkuce> ok ty 🙂
08:59:16narimiran@bung87, Yardanico i reverted the changes, now it seems to work as intended
08:59:54*aurelius quit (Remote host closed the connection)
09:01:29*aurelius joined #nim
09:08:06*Vladar joined #nim
09:12:24FromGitter<alehander92> oii!
09:12:28FromGitter<alehander92> time for rfc
09:12:45Yardanicowhich one?
09:13:03FromGitter<alehander92> the enum/variant flow typing one
09:13:13FromGitter<alehander92> can someone help be debug my streaming tho
09:13:24FromGitter<alehander92> i still haven't solved this nvenc issue
09:13:36Yardanicoi haven't used hardware encoders in a long time :)
09:13:40Yardanico3700X does the job :D
09:14:12FromGitter<alehander92> oiii
09:14:23FromGitter<alehander92> my laptop gets too hot
09:14:48FromGitter<alehander92> no problem!
09:16:49FromDiscord<Clyybber> alehander92: What nvenc issue?
09:20:57FromGitter<alehander92> it doesn't work
09:21:31FromGitter<alehander92> generic error in an external library
09:21:45*waleee-cl joined #nim
09:22:22FromGitter<alehander92> not a big deal, i have to debug it
09:22:24FromGitter<alehander92> a bit lazy
09:24:24ForumUpdaterBotNew thread by Jasonfi: Authenticating a user in a REST webservice, see https://forum.nim-lang.org/t/6609
09:28:39Araqofftopic but funny: https://www.industrialempathy.com/img/remote/ZCBwPv-640w.jpg
09:30:03FromDiscord<Clyybber> a classic :D
09:30:31FromGitter<bung87> narimiran Yardanico am awake now
09:30:56*TsT joined #nim
09:30:59TsT:D
09:31:05FromDiscord<Clyybber> Araq: We either need to attach scopes to gensymmed symbols, or put gensymmed symbols actually in the scope (I mean they still can't be accessed normally)
09:31:15FromDiscord<Clyybber> Because otherwise gensymmed forward decls can't work
09:31:44*nerthus left #nim ("Leaving")
09:31:54Araqas I said
09:32:12AraqI'd rather see the effort spend on eliminating forward decls
09:32:40Araqthen you still cannot gensym forward decls but nobody cares as forward decls are not required anymore
09:32:51FromDiscord<Clyybber> Yeah
09:32:52Araqin fact, comparing proc signatures is unsound
09:33:06FromDiscord<Clyybber> why?
09:33:14Araqbecause of default values
09:33:26FromDiscord<Clyybber> hmm
09:33:35Araqthey can be arbitrary 'static' expressions
09:33:54FromDiscord<Clyybber> yeah
09:33:58Araqwhich you have to evaluate before you can compare them. ok, maybe it's not unsound
09:34:01Araqbut it's bad
09:34:08FromDiscord<Clyybber> bad yeah, but not wrong :p
09:34:39FromDiscord<Clyybber> in general though, is there something that would make it a bad idea to put gensymmed symbols in the scope?
09:34:50FromDiscord<Clyybber> I mean they have the `gensym suffix anyways
09:34:55FromDiscord<Clyybber> so you can't access them
09:35:31Araqmaybe it won't hurt
09:35:44Araqbut I'm not sure
09:36:07FromDiscord<Clyybber> ok, I'll try and see if the CIs spout anything at me
09:38:52FromDiscord<Clyybber> Araq: Kinda related, should we add a test for name based overloading?
09:39:01FromGitter<bung87> narimiran I see the commit, I might add more test for that , it's really intend to check if single tag
09:39:09FromDiscord<Clyybber> Its used in the wild already (nimgame2) and we don't have a test for it yet
09:39:22Araqhuh I remember writing a test for it
09:39:25narimiran@bung87 it already worked okay, from what i can tell
09:39:29Araqdid you check tests/overload ?
09:39:43narimiranand with your changes, lots of runnable examples were failing
09:40:36FromDiscord<Clyybber> Araq: Ah, I missed it
09:40:46Yardanicoit's not really documented nonetheless :P
09:46:08FromDiscord<Clyybber> oh, ugh. Looks like all of the above is not needed
09:46:22FromDiscord<Clyybber> get ready for the 4th incarnation of gensym
09:46:32*TsT left #nim (#nim)
09:48:07FromDiscord<Clyybber> Araq: Do we already have a good way of getting a unique number out of a template instantiation?
09:48:34FromDiscord<mratsim> var compTimeRNG {.compileTime.} = initRand(1337)
09:48:52FromGitter<bung87> narimiran ok, it solve some issues , let me check more conditions as in that time I debuging htmlparser
09:48:54FromDiscord<Clyybber> you are kidding, but thats exactly what I'm doing rn
09:49:08FromDiscord<Clyybber> @mratsim or maybe you are not kidding, but I'm talking *in* the compiler :p
09:49:11FromDiscord<mratsim> Great minds think alike 😉
09:49:43FromDiscord<mratsim> I'm not kidding: https://github.com/numforge/laser/blob/master/laser/openmp.nim#L13-L25
09:50:50FromDiscord<Clyybber> I mean it won't prevent you from collisions will it?
09:51:34FromDiscord<mratsim> I'm okay with a 2^64 space
09:51:48FromDiscord<mratsim> with the birthday paradox it's 2^-32 chance of collision
09:52:30FromDiscord<mratsim> If I have a collision it's probably when the lightning strikes me as I win the loto
09:52:51FromDiscord<mratsim> just after we learned that we fixed global warming
09:52:55FromDiscord<Clyybber> putting it in the compiler feels like bullying the unlucky
09:53:07FromDiscord<Clyybber> holy shit
09:53:10FromDiscord<mratsim> Embrace probabilities
09:53:26FromDiscord<Clyybber> just while talking about chances something made boom
09:53:38FromDiscord<Clyybber> sounded like a bomb or something lol
09:53:59FromDiscord<Clyybber> probably something that fell of a crane
09:55:17Yardanico"0x1337DEADBEEF" nice constant lol
09:55:42*hoijui quit (Ping timeout: 260 seconds)
09:57:18FromDiscord<dom96> It's the holy constant
10:01:16Yardanico" ctx.gensymHash = rand(0..int.high) #TODO: Wtf"
10:02:03FromDiscord<Clyybber> :p
10:03:55*maier quit (Ping timeout: 246 seconds)
10:04:04FromDiscord<lqdev> @mratsim if i want to implement a simd vector math library using laser, is there anything i should keep in mind wrt CPU compatibility?
10:05:32*hoijui joined #nim
10:05:44FromDiscord<mratsim> Laser is more of a research repo, before productionizing stuff. I wasn't the one to add it to nimble
10:06:45FromDiscord<mratsim> for CPU compat, separate the various SMID support in different files so that you can use different {.localPassC:"-mavx".} or {.localPassC:"-mavx2".} flags
10:07:48FromDiscord<mratsim> Not sure exaclty what you want to provide but if you want to go fast the easiest would be to wrap SLEEF. THough I know some routines are slower than what I did in Laser (for example exponentiation)
10:08:02FromDiscord<mratsim> https://sleef.org/
10:08:14FromDiscord<lqdev> makes sense, but for distributing binaries, should i stick to a particular extension?
10:09:13FromDiscord<mratsim> SSE2 is implied for x86-64.
10:09:54FromDiscord<mratsim> otherwise, people using it would likely use runtime CPU detection
10:10:12FromDiscord<mratsim> but runtime CPU detection only makes sense at the algorithm level
10:10:55FromDiscord<mratsim> you don't choose at runtime the implementation of "add" the overhead would be to big, but you do that at the matrix addition level
10:11:15FromDiscord<lqdev> i see
10:11:27*hoijui quit (Ping timeout: 260 seconds)
10:11:36FromDiscord<lqdev> so calling procs from variables is slower than calling them directly?
10:11:59FromDiscord<mratsim> I don't get what you mean
10:13:11FromDiscord<lqdev> well, i'd implement that runtine CPU detection to use a few variables which store the procs, and then call the procs stored in those variables in the public interface
10:14:10FromDiscord<mratsim> what I mean is, count 1 cycle for an "if branch", and 1 cycle for vector addition, whether on 4 elements (SSE) or 8 elements (AVX).↵↵If you want to add 8 elements, you test for SSE or AVX + proces you get 3 or 2 cycles↵If you always use SSE you get 2 cycles.
10:16:08FromDiscord<mratsim> What you want to do is called function multiversioning
10:16:35FromDiscord<mratsim> But you only want to do that at a higher level as well
10:18:05FromDiscord<mratsim> a function in a variable cannot be inlined, this means pushing and poping registers before the function call.↵But when you want SIMD you are usually in an algorithm that needs to get the data as fast as possible in the proper memory locationto benefits from SIMD.↵Moving data around (due to function call) will likely be a problem.
10:18:23FromDiscord<lqdev> alright
10:18:34FromDiscord<lqdev> didn't consider inlining
10:18:49FromDiscord<lqdev> thanks for the advice!
10:19:45FromDiscord<mratsim> See: https://github.com/nim-lang/Nim/issues/9514
10:19:49disbot[Perf] Max/min are not inline and slow (7x slower than memory-bound implementation) ; snippet at 12https://play.nim-lang.org/#ix=2svy
10:20:40FromDiscord<mratsim> You have assembly with push mov / max / pop ret
10:22:34*abm joined #nim
10:23:13FromDiscord<mratsim> If you want to do more SIMD, my advice is to find an algorithm you want to implement and optimize (could be numerical computing, could be graphics). Implement it in plain Nim, and then start moving parts to SIMD
10:23:49FromDiscord<Clyybber> Zevv: You should be able to change the T: untyped to T: type at least
10:24:03FromDiscord<mratsim> There are some in laser/benchmarks (fp_reduction_latency / exponentiation) but there are plenty of other stuff like color conversion for example
10:24:16FromDiscord<mratsim> what about T: typedesc?
10:24:35FromDiscord<Clyybber> its the same
10:24:42FromDiscord<mratsim> Akshually*
10:24:43FromDiscord<Clyybber> but type is fancier
10:24:49FromDiscord<Clyybber> no akshually
10:24:55FromDiscord<Clyybber> that bug has long been fixed :D
10:25:04FromDiscord<mratsim> there are some cases when one compiles but not the other
10:25:06FromDiscord<mratsim> oh
10:25:24FromDiscord<Clyybber> oh, well I mean. I fixed the one bug that I was aware of that differentiated the two
10:25:41FromDiscord<Clyybber> but there may be some other unreported ones
10:28:07FromDiscord<mratsim> I have so many semchecks bugs uncovered in my library when trying to do something :/ takes so much time to report
10:29:55FromDiscord<Clyybber> Yeah, its hard to get right. But every bug/issue helps
10:30:00FromDiscord<Clyybber> Araq: ping
10:32:39FromDiscord<Clyybber> bung87: Regarding the unittest issue, maybe the best way to fix this is to make check raise a custom UnitTestCheckFailedException or something like that
10:33:09FromDiscord<mratsim> one of the recent ones I got was an var/alias bug:
10:34:29FromDiscord<mratsim> sent a long message, see http://ix.io/2svE
10:37:51FromDiscord<kodkuce> any specific reason i cant create an constant header, cuz plan to use json responses for all endpoints ? it says its an invalid type↵```↵const rheader = newHttpHeaders([("Content-Type","application/json")])↵```
10:38:48FromDiscord<kodkuce> oh dumb question rith, constants are know at compile time right? for this i should use let
10:40:22FromDiscord<dom96> yes, but you should be able to do: `const header = {"Content-Type": "application/json"}`
10:42:31*aurelius quit (Remote host closed the connection)
10:42:35FromDiscord<Vindaar> @mratsim are you aware of https://github.com/mratsim/Arraymancer/pull/464 ?
10:42:39disbotAllow independent imports of all submodules ; snippet at 12https://play.nim-lang.org/#ix=2svJ
10:47:20*maier joined #nim
10:49:04FromGitter<bung87> Clyybber for the PR's imporvement , maybe get result bool status from checkpoints or another seq
10:49:24*aurelius joined #nim
10:50:41FromGitter<bung87> `check` can place to everywhere that `test` doesn't know
10:52:07FromDiscord<Clyybber> yeah, exactly
10:52:20FromDiscord<mratsim> @Vindaar No, I try to diligently check my github notifications but it's seems like I missed that one
10:52:28FromDiscord<Clyybber> bung87: thats why I think using exceptions (yes as controlflow :P) here would be appropriate
10:52:42FromDiscord<mratsim> vade retro, you are not welcome here
10:53:11FromDiscord<Clyybber> lol
10:53:38FromGitter<bung87> Clyybber so how to handle the exception from top level check?
10:54:37FromDiscord<Vindaar> @mratsim no worries, hence the ping 🙂
10:57:19FromDiscord<mratsim> I'm subscribed to many many Status lib but plenty other libs I want to keep track of and somehow Github doesn't highlight PR on your own libraries :/
10:57:45FromDiscord<mratsim> The worse is Github Actions that spams notifications
10:58:26FromDiscord<Clyybber> bung87: try except
10:58:41FromDiscord<dom96> GitHub notifications are terrible
10:59:15FromDiscord<Vindaar> I always just check on the LHS of the notification screen whether there's new activity in any of my repos
11:00:30FromDiscord<Vindaar> I guess if one is subscribed to more than 30 or so active repos even that doesn't really work well though, since those might not even be on the first page?
11:01:54FromGitter<bung87> that's users try except, I mean top level check raise UnitTestCheckFailedException how that would be handled
11:02:52FromDiscord<Clyybber> oh, hmm.
11:03:00FromDiscord<Clyybber> yeah that can't work
11:03:30FromDiscord<mratsim> The old notification system was better. This ones feels like an email inbox
11:04:15FromDiscord<Vindaar> a _modern gmail like_ inbox (read, horrible inbox)
11:07:23*nature joined #nim
11:07:28FromGitter<alehander92> try hey.me
11:07:41FromGitter<alehander92> hey.com !
11:07:46FromGitter<bung87> might change checkpoints store .msg .status as a obj, like testament does
11:07:52FromGitter<alehander92> it's by the rails guys, but it does seem useful
11:07:56FromGitter<alehander92> but it's paid after the free trial
11:08:07FromGitter<alehander92> so i'll probably not sure it more
11:09:46natureHi, recently got into vim and it really is everything I wanted in a language, I love it so far. Now I am gonna start my first "serious" project in nim (I want to do a really simple SSG) and I was wondering if anyone has experience coding in Nim with Vim ?
11:10:10narimirannature: use neovim, there's a great nim plugin for it
11:10:26narimiranhttps://github.com/alaviss/nim.nvim
11:11:07naturethx, is autocompletion available ?
11:11:13narimiranit is
11:11:31natureI am using coc.vim when I dev in js, python etc...
11:12:27nature narimiran ooooh I already had that repo open in my browser :)
11:13:07natureAre you using it ? Cause I also found this: https://github.com/PMunch/nimlsp but I am not familiar with LSP
11:13:09narimirannature: btw, you can ping the author of the plugin here, he goes by the name: leorize
11:13:53narimiranyes, i'm using nim.nvim together with asyncomplete, and it works great for me
11:14:09narimirani've never used coc.vim, so i cannot comment on that
11:14:44narimiranand i never used any of the LSP stuff, so no help there from me either, sorry
11:15:03naturecoc.vim brings the vscode autocomplete, plugins etc.. in Vim, pretty nice but I sometimes feel in might be bloated ^^'
11:16:04naturenarimiran: And what do you think of https://github.com/zah/nim.vim ?
11:16:17narimirannature: IIRC, it is outdated
11:16:32narimiranIMO, look no further than nim.nvim
11:16:41natureokay :D
11:16:45natureThanks!
11:17:35natureand you complement it with prabirshrestha/asyncomplete.vim ?
11:17:53FromDiscord<Rika> Are you using vim or neovim
11:18:26natureneovim
11:18:49ForumUpdaterBotNew thread by Euant: Improving BSD support - NetBSD, see https://forum.nim-lang.org/t/6610
11:22:03FromDiscord<flywind> Can int in Nim be treated as pointer when I interface with C?
11:22:04FromDiscord<flywind> https://github.com/nim-lang/Nim/issues/12327
11:22:04disbotWinlean definition issues
11:23:22narimirannature: yes, i use asyncomplete with it
11:25:20natureokok thank you :) Looking into it some more now
11:27:13*krux02 joined #nim
11:35:32*dulsi_ joined #nim
11:38:04*dulsi quit (Ping timeout: 246 seconds)
11:47:53*oddp quit (Quit: quit)
11:49:06Zevv[m]disruptek: morning reading https://github.com/disruptek/cps/issues/27
11:49:08disbotGetting rid of reallocs ; snippet at 12https://play.nim-lang.org/#ix=2svX
11:58:03*Vladar quit (Remote host closed the connection)
11:58:20*Vladar joined #nim
12:01:06*dulsi_ is now known as dulsi
12:05:15FromGitter<alehander92> ok
12:06:01*supakeen quit (Quit: WeeChat 2.8)
12:06:15FromGitter<alehander92> so `A{B, C}` vs `A => kind in {B,C} ` vs `A @ B, C`
12:06:40*supakeen joined #nim
12:06:53FromGitter<alehander92> what looks best for variants: i'll continue with my spec later, but wanted to ask new ppl about the syntax
12:09:50*Senketsu joined #nim
12:11:34*rockcavera joined #nim
12:23:19*oddp joined #nim
12:25:13*oddp quit (Client Quit)
12:30:41FromDiscord<mratsim> the first
12:33:27*hoijui joined #nim
12:35:11FromGitter<alehander92> thanks
12:35:12*theelous3 joined #nim
12:37:16FromDiscord<lqdev> yeah the first one definitely
12:37:34FromDiscord<lqdev> the last one could introduce an ambiguity to the parser
12:38:31FromDiscord<lqdev> you could extend the first one to something like `A{kind: B, C}` for specifying a field name explicitly. or maybe `A.kind{B, C}`
12:38:58*sentreen quit (Ping timeout: 246 seconds)
12:41:58*vicfred joined #nim
12:43:37*sentreen joined #nim
12:44:05Zevv[m]alehander92: what ya cookin
12:44:34FromGitter<bung87> narimiran `htmlparser.nim` under test doesn't run actually
12:44:55narimiranwhat do you mean?
12:45:38FromGitter<bung87> dont know why nimble doesn't run as it name same as `htmlparser.nim`
12:46:41FromGitter<bung87> see https://github.com/bung87/fusion/runs/918881830
12:46:52FromGitter<alehander92> lqdev good idea
12:47:01FromGitter<alehander92> i like the A.kind..
12:47:33FromGitter<alehander92> zevv later: variant `kind` annotations
13:02:00*bung joined #nim
13:04:53FromGitter<bung87> narimiran it breaking now, nimble doesn't run `htmlparser.nim` test, just because the test file same as libname ?
13:06:38*nikita` quit (Quit: leaving)
13:23:57*aurelius quit ()
13:39:22livcdHow is it going y'all?
13:41:34*arecacea1 quit (Remote host closed the connection)
13:42:26*arecacea1 joined #nim
13:43:27FromDiscord<kodkuce> magic
13:46:29naturenarimiran: Thanks, I managed to setup asyncomplete with nim.nvim, pretty neat! :D
13:50:58FromGitter<bung87> narimiran I created a fix for that see https://github.com/bung87/fusion/commit/382e86d18c99cdb04934550f052d57b54f68c37c
13:51:01*FromDiscord quit (Remote host closed the connection)
13:51:18*FromDiscord joined #nim
13:52:32FromGitter<bung87> there's one problem am not sure, `proc add*(result: var string` I change its runnableExamples it add isolated text which just ignored by browser , not sure how to handle this
13:59:59*nerdrat[m] left #nim ("User left")
14:05:14Zevv[m]alehander92: variant kind annotations. That sounds like something I'd like to have!
14:07:55alehander92i am learning cmake now zevv
14:08:16alehander92first cmake later chocolate
14:13:01*altarrel joined #nim
14:16:44narimiran@bung87 yeah, this fixes the tests, but i'm not sure it is the right way to go
14:18:56*MarderIII joined #nim
14:24:11FromGitter<bung87> it's now fails on all windows test, haven't figure out what cause , currentlly it work behavior like browser, accpet valid invalid html, and produce html that browser can handle for whatever html specification.
14:25:10FromGitter<bung87> that's the behavior like popular html parser in other languages
14:26:48Zevv[m]alehander92: do I know you? why are you talking to me?
14:26:51*hoijui quit (Quit: Leaving)
14:26:52Zevv[m]like, really, cmake?!
14:27:14FromGitter<bung87> lol
14:27:16Zevv[m]friends don't let friends learn cmake
14:28:23alehander92why? i have no idea what i am doing part of the time in this c++/c land
14:29:01alehander92what do hipsters use
14:29:01FromDiscord<mratsim> CMake is a DSL, it's not C/C++
14:29:08FromDiscord<mratsim> Ninja/Meson
14:29:24alehander92yes, i am talking about building files: i usually see cmake in c/c++ land
14:29:28FromDiscord<mratsim> includes a Z3 SMT solver :p
14:29:56alehander92but doesn't cmake generate ninja files as a possible backend
14:31:28alehander92the thing is : cmake seems to be popular. so it's useful to know some stuff about it even if another solution is more modern
14:32:38alehander92for non-nim stuff i'd prefer just using rust and cargo , but the point is to dabble into the jungle :D
14:37:12*Vladar quit (Quit: Leaving)
15:01:27*waleee-cl quit (Quit: Connection closed for inactivity)
15:04:17*NimBot joined #nim
15:10:42*waleee-cl joined #nim
15:11:50*Vladar joined #nim
15:12:50disruptekwe have a test for name-based overloading iirc.
15:12:56*mbuchel quit (Quit: WeeChat 2.8)
15:13:10disruptekpretty sure i raised an issue and someone added a test and docs.
15:15:45*sputny joined #nim
15:24:34*solitudesf quit (Remote host closed the connection)
15:25:41*MarderIII quit (Quit: Leaving)
15:26:37*maier quit (Ping timeout: 264 seconds)
15:30:29*solitudesf joined #nim
15:33:23FromDiscord<ProperFellow> Hi there! New to Nim, and playing around with making a performant CRUD (using Prologue). I want to make db queries async using a connection pool, but I'm having a hell of a time finding documentation (or being sure I'm using the right packages). I've looked at Gatabase. Am I looking in the right spot?
15:33:50disruptekthere are simple db connectors in the stdlib.
15:33:52disruptekwhich database?
15:34:52Zevv[m]are these async tho
15:36:08disruptekjuancarlospaco's gatabase is async?
15:36:26Zevv[m]I have no clue. I don't database
15:37:08disrupteki don't see `async` on the README.
15:38:18Zevv[m]disruptek: I love your exceptions but I hate them
15:38:33disrupteki know.
15:38:50disrupteki know you would rather impl exceptions using continuations.
15:39:00Zevv[m]nah, it's not about that
15:39:05Zevv[m]but now you always put that stuff in
15:39:22disruptekyeah, they can be gated.
15:39:36Zevv[m]cna we put them in as a transformation of a try: catch: in the original?
15:39:41Zevv[m]or doesn't that map
15:40:36Zevv[m]but man, you're on a roll
15:40:58disruptekthey can be remapped, but if you catch inside your continuation, i'm not sure you're doing it right.
15:41:19Zevv[m]yeah I see. But now I have no choice
15:41:27disruptekthe idea is that we give you a semantic that doesn't exist otherwise. it's lives in the dark place between the trampoline and the runtime.
15:41:32Zevv[m]why can't I just catch in my trampoline?
15:41:45disruptekthat's what cpsTrace does.
15:42:10Zevv[m]but my default transformation now is full of 'excepts' in each proc
15:42:19disruptektrue.
15:42:34disruptekbut it re-raises them, right?
15:42:46Zevv[m]yeah but you're forcing this in
15:42:59disruptektrue, but it should be very efficient under arc.
15:43:04Zevv[m]I want my cps iterator to run as fast as nim closure iterators
15:43:08disruptekbut again, we can gate it.
15:43:23Zevv[m]what do you solve by catching it here instead of just letting it go?
15:43:24disruptekit can be a pragma on the cps proc.
15:43:42disruptekthe idea is that continuations can continue and collect errors.
15:43:58disruptekalso you can change the behavior on the exit.
15:44:13Zevv[m]hm ok, Im starting to see
15:44:26Zevv[m]but I'm not sure if this should be default behaviour
15:44:36disruptekbut again, we can gate it.
15:44:41Zevv[m]right
15:47:17disruptek`let x = yield foo()` can be a thing. it seems explicit and yield will be useless outside iterators, which we are useless inside.
15:47:27disruptekso it kinda works out.
15:48:02disruptekalso, it kinda says "magic control flow here."
15:48:30Zevv[m]fair enough.
15:48:57FromDiscord<ProperFellow> Sorry catching up. Using postgres. The db connectors in stdlib are not async. Gatabase offers pooling - and seems to offer async according to one of the meme images. There's no real documentation.
15:49:11FromDiscord<Rika> gatabase is very new
15:49:13Zevv[m]The other thing I ran into yesterday - I'd like to have some data around during my traversal over the continuations. But where would I store such a thing. Is that in #26 as well?
15:49:18disruptekjc is pretty active, though, so you won't have trouble getting support.
15:49:23Zevv[m]I guess there is becasue you put your exceptions somewhere
15:49:54FromDiscord<ProperFellow> So reach out to jc directly?
15:50:11disruptekyou could create an issue; i think he'd like to hear from you.
15:50:24disruptekZevv[m]: you can store it in local scope like anything else, right?
15:50:45Zevv[m]no, it's not for the cps functions, it's for the evq/pump implementation
15:51:01disruptekwhat are we talking about?
15:51:09disrupteki store "stack frames" in the trampoline.
15:51:16FromDiscord<ProperFellow> Will do 🙂
15:51:34Zevv[m]disruptek: yeah, but that's internal to the cps/environment coed
15:51:36FromDiscord<ProperFellow> Building anything db related is admirable stuff 🙂
15:51:38disruptekjc probably has a good handle on the domain.
15:52:03disruptekZevv[m]: how do you figure?
15:52:31FromDiscord<ProperFellow> Actually nailing this down could lead to a better techempower benchmarks showing - the nim frameworks currently don't show up in anything db related.
15:52:57Zevv[m]disruptek: get back to you later, the familiy is hangry
15:53:01disruptekkk
15:58:24FromDiscord<dom96> ProperFellow: getting a highly performant async db implementation to win these benchmark will not be easy 🙂
15:58:30FromDiscord<dom96> (edit) 'benchmark' => 'benchmarks'
16:04:21FromGitter<bung87> have time take a look at ? https://github.com/nim-lang/Nim/pull/15070
16:04:22disbotavoid #8231, bitwise move to mul,div
16:08:21FromGitter<Lecale> If you were asked, is there anything Nim can do that Python cannot, how would you answer (to the compliance team)
16:09:04*Vladar quit (Quit: Leaving)
16:10:26disrupteki dunno if we have a compliance team, but the answer is the same as "is there anything c can do that python cannot?"
16:11:22FromGitter<bung87> almost x faster than python ?
16:12:08FromGitter<Lecale> compliance do not give a flying doodah about speed
16:13:30FromDiscord<Rika> easier C interop?
16:13:48ForumUpdaterBotNew thread by Serge: "||" operator ? : Is there a corresponding operator for iterables ?, see https://forum.nim-lang.org/t/6611
16:14:31FromGitter<bung87> python also pretty easy in that field
16:14:32FromDiscord<lqdev> @Lecale actual real static typing.
16:14:52FromDiscord<lqdev> without the need for external tools to analyze my code for me.
16:15:21FromDiscord<lqdev> it also has AST-based macros, which can greatly simplify boilerplate-heavy code.
16:20:00FromGitter<Lecale> I like your answer disruptek
16:20:28FromDiscord<mratsim> you can't do multithreading in Python 😛
16:20:43FromDiscord<lqdev> well you can
16:20:47FromDiscord<lqdev> but the GIL slows everything down
16:20:58FromDiscord<mratsim> you can do multiprocessing but not multithreading
16:21:40FromDiscord<mratsim> but as Python, Nim, C are all turing complete, they are all equivalent to an imaginary tape
16:22:04FromDiscord<mratsim> the differenc eis how easy to achieve your goal (safety, speed, time to market, hiring, maintenance)
16:22:59FromDiscord<mratsim> Nim scores well on Safety, speed, maitnenance, very low on hiring, and time-to-market is a mixed bag (depends on the library ecosystem)
16:23:51FromDiscord<mratsim> Python scores well on Time to market and Hiring, but scores bad on the rest
16:24:49FromDiscord<mratsim> C on speed, hiring, mixed bag on maintenance, safety and time to market is the same as Nim probably
16:25:04FromDiscord<mratsim> and you can create your own goals as well
16:29:03*Vladar joined #nim
16:32:41FromDiscord<Varriount> @lqdev Multithreading in Python is only useful if you're doing IO or using C extensions.
16:33:52FromDiscord<ProperFellow> sent a code paste, see https://play.nim-lang.org/#ix=2sxc
16:33:52FromDiscord<Varriount> IO routines (which are implemented in C) can release the GIL while waiting for IO to complete. Same with some C extensions.
16:34:08FromDiscord<ProperFellow> (edit) 'https://play.nim-lang.org/#ix=2sxc' => 'https://play.nim-lang.org/#ix=2sxd'
16:34:21FromDiscord<ProperFellow> Looks like the nim compiler is crashing because there's a global variable in jester?
16:35:01FromDiscord<Varriount> @ProperFellow What does your code look like? Sounds like something was passed to a Jester macro that the macro didn't understand.
16:35:25FromDiscord<ProperFellow> sent a code paste, see https://play.nim-lang.org/#ix=2sxe
16:36:01FromDiscord<ProperFellow> Maybe I shouldn't be using the DSL?
16:37:31FromDiscord<Varriount> Hm, what happens if you put the code in /tasks into a procedure, and call it instead?
16:40:50Zevv[m]so disruptek
16:40:56Zevv[m]with all this untypdness
16:41:19Zevv[m]do you see during .cps. if a call goes to something with a pragma?
16:41:48disruptekwhat?
16:41:50Zevv[m]ie can you distiguish a normal call vs a cps call vs a cpsPrim call with only the ident getting called?
16:42:00disrupteki doubt it.
16:42:24FromDiscord<lqdev> so you guys want to turn untyped to typed?
16:42:24Zevv[m]yeah thats what I was afraid of. too bad that is
16:42:25FromDiscord<lqdev> prepare to summon demons in the process
16:42:32Zevv[m]we just summon mratsim
16:42:50*endragor quit (Remote host closed the connection)
16:42:56*sputny quit (Remote host closed the connection)
16:43:02FromDiscord<ProperFellow> Oooh, will try that @Varriount
16:43:30*endragor joined #nim
16:43:49FromDiscord<ProperFellow> {.error: "Await only available within .async".}
16:43:51FromDiscord<ProperFellow> That did it.
16:44:17FromDiscord<ProperFellow> I wonder why DSL's are such a thing in the first place - noticed them in other spots for Nim.
16:44:18disruptekZevv[m]: you have to be able to `let x: int = yield foo()` when `proc foo(): string`. this is what we're achieving...
16:44:27FromDiscord<lqdev> not sure what your specifics are, but the way *I* turn untyped to typed is from the first macro i return a call to another macro that takes typed as its params instead
16:44:46Zevv[m]disruptek: so where does the return value of yield come from
16:44:47disruptekyeah, this is a thing. but we're hoping to not go there.
16:45:00FromDiscord<lqdev> then prepare to write your own type checker.
16:45:06Zevv[m]because foo returns a string and you get x: int
16:45:14disruptekno, i don't need types anymore.
16:45:15Zevv[m]if this is going to be the quality of your work
16:45:25Zevv[m]where we're going we don't need types!
16:47:13disruptekthe problem right now is that we are pass-by-copy for symbols in the env and we would need to rewrite the symbols to make them pass-by-ref.
16:47:28disruptekrror: attempt to redefine: 'a5'
16:48:12*endragor quit (Ping timeout: 265 seconds)
16:49:03FromGitter<alehander92> guys i realized i need to just not redefine classes in my `.cpp`
16:49:14FromGitter<alehander92> i havent even gotten to cmake problems!
16:49:31FromGitter<alehander92> nim no headers :(
16:49:49FromDiscord<lqdev> headers are such a pita when working with C/C++
16:50:32FromDiscord<ProperFellow> ``` let rows = await getAllRows(db, sql"SELECT * FROM tasks ORDER BY priority asc", @[])↵ var results: seq[TodoTask] = @[]↵ for row in rows:↵ results.add(TodoTask(id: parseInt(row[0]), text: row[1], priority: parseInt(row[2])))```
16:50:36FromDiscord<ProperFellow> I think I'm doing this wrong.
16:50:42FromDiscord<ProperFellow> It's complaining row[0] is a char.
16:51:03FromDiscord<ProperFellow> But it should be getting rows of [int, string, int].
16:51:17FromDiscord<ProperFellow> Is there something like "dir" in python to inspect what's coming back with rows?
16:51:44Zevv[m]so how do I run this 'deep' of yours. Now I get call to undeclared `ex0=` when running my minimal stuff
16:51:47FromDiscord<Rika> Can't you just echo the type of row
16:51:57disruptekZevv[m]: do a pull, for kickoffs.
16:52:07Zevv[m]done
16:52:18disruptekthe problem right now is that we are pass-by-copy for symbols in the env and we would need to rewrite the symbols to make them pass-by-ref.
16:52:28Zevv[m]right
16:52:30disruptekat least, that's my working theory.
16:52:43disruptekthat a5 clashes with a5 although they are both gensym'd.
16:52:55Zevv[m]just as I described in #27
16:55:47Zevv[m]that sounds like the other problem I made this workaround for
16:56:05Zevv[m]37f0063262cdc173f13a6b4871e410343a4dc775
16:57:50FromDiscord<Kiloneie> Oh man making a video on Objects is quite a deal xD... comparison to tuples, inheritances, pointers lol...
16:58:29Zevv[m]well, what about skipping all that for part 1
16:58:37Zevv[m]just concentrate on the basics
16:58:50FromDiscord<Kiloneie> might split it on part 1 and 2...
16:58:52Zevv[m]you can probably spend a whole video on inhertance
16:58:54*superbia2 joined #nim
16:59:00Zevv[m]and pointers are not special for objects,
16:59:22FromDiscord<Kiloneie> yeh but accessing values of reference objects is a pointer thing.
16:59:36disrupteknah.
17:01:18FromDiscord<Kiloneie> Im thinking part 1 is Pointers and Objects(normal little objects and comparison to tuples, why and how), then part 2 is referencing/inheritance
17:01:25*superbia1 quit (Ping timeout: 256 seconds)
17:01:25FromDiscord<IanIAnIAN> Just copy every regurgitated argument ever made on Medium and put them in intersecting loops until the viewers head explodes like in Scanner (or they go do something else)
17:01:36FromDiscord<Rika> You can have a pointer to a primitive though?
17:02:02FromDiscord<Kiloneie> ehm oO
17:03:40Zevv[m]disruptek: how is that nah. you have clashes while they are gensymed
17:03:43Zevv[m]that was exactly my problem
17:03:56Zevv[m]im pretty sure this can be the same thing
17:04:08disrupteki was talking about obj rerefs. 😉
17:04:30FromDiscord<Rika> reref?
17:04:36disruptekderef
17:07:18FromDiscord<Kiloneie> Derail
17:10:27FromDiscord<Kiloneie> Everytime im "finally got objects covered, now just record the video", i find more stuff it connects to and needs explaining... im not making 3 parts for this... 2 is more than enough D:...
17:13:53FromDiscord<Kiloneie> Pretty sure it's gonna be easier to make a video on Macros than this. Templates especially, so easy.
17:16:28Zevv[m]what is your always-working-reference program for cps disruptek, because I'm not sure how to use this now in 'deep'
17:16:43disruptekthat would be a nice feature, huh?
17:16:54Zevv[m]it would
17:17:10Zevv[m]I don't even understand how to bootstrap my initial cps call now
17:17:23disruptekto make it work we need a fn() that we generate for each continuation type.
17:17:32Zevv[m]right
17:17:46disruptekelse the trampoline doesn't know how to work.
17:17:55Zevv[m]for the initial call from the normal world into the abyss called CPS
17:18:30Zevv[m]the first step through the looking glass
17:18:31FromDiscord<lqdev> @Kiloneie trust me, *no*
17:19:05FromDiscord<Kiloneie> Okay sure D:... still Templates are easy though :P.
17:19:14disruptekyou should probably merge your {.cps: Cont.} thing and i'll rebase.
17:19:19FromDiscord<lqdev> templates yeah
17:19:20FromDiscord<lqdev> macros no
17:19:28Zevv[m]disruptek: cmin up
17:19:37disrupteki need to make some calls and stuff and then i will put in fn().
17:19:42FromDiscord<ProperFellow> How do you unwrap a future in Nim?
17:19:45Zevv[m]merged
17:20:13FromDiscord<lqdev> @ProperFellow either `waitFor` or `await`
17:20:17FromDiscord<lqdev> depends on the context
17:20:20FromDiscord<ProperFellow> Hmmm
17:20:21Zevv[m]disruptek: sure you're not taking too big steps
17:20:31Zevv[m]you're doing five things in one go
17:20:32FromDiscord<lqdev> you use `waitFor` outside of async procs, and `await` in async procs
17:20:48FromDiscord<ProperFellow> Using await still isn't quite working for me.
17:20:56Zevv[m]leave all that exception handling out for now, for example
17:21:04FromDiscord<ProperFellow> ``` let rows: seq[Row] = await getAllRows(db, sql"SELECT * FROM tasks ORDER BY priority asc", @[])↵ var results: seq[TodoTask] = @[]↵ for row in rows:↵ results.add(TodoTask(id: parseInt(row[0]), text: row[1], priority: parseInt(row[2])))```
17:21:11disruptekit's already behind --define:cpsExcept
17:21:12FromDiscord<ProperFellow> It's erroring out
17:21:24Zevv[m]ok, so now we just focus on moving one block of memory around
17:21:31FromDiscord<ProperFellow> ```~/.nimble/pkgs/jester-0.4.3/jester.nim(551, 13) Error: type mismatch: got <FutureBase, int literal(0), CallbackAction>↵```
17:21:33Zevv[m]your current brute-force approach is fine for now I guess
17:21:39Zevv[m]my proposal is just optimization
17:22:19*maier joined #nim
17:22:34Zevv[m]I hope you appreciate my approach of making minimal, viable use cases of different things built on CPS, instead of going in async IO with bells and whistles up to my elbow
17:22:44disrupteki do.
17:22:52Zevv[m]cool
17:23:14disruptekit's starting to be more interesting as we expand what we're capable of.
17:23:21Zevv[m]right
17:23:22disrupteki don't care about web-servers anymore. 😉
17:23:27Zevv[m]but I need some hooks to hang stuff
17:23:35disruptekthere are many more hooks now.
17:23:41disrupteknamed continue, for example.
17:23:44Zevv[m]for example, my silly 'goto' - I need a place to store these 'jump labels'
17:23:50Zevv[m]no I need to make them global
17:24:11disruptekyou can `punch`.
17:24:17Zevv[m]you're not inventing your own control flow inside transformad cps procs, are you
17:24:18Zevv[m]don't you dare
17:24:25disruptekwhy not?
17:24:28Zevv[m]please don't go there yet
17:24:33Zevv[m]just translate nim
17:24:34Zevv[m]not nim++
17:24:47Zevv[m]it confuses the hell out of everbody except you
17:25:18Zevv[m]I know you are so tempted
17:25:21Zevv[m]but you must resist
17:25:30Zevv[m]you must learn to use these powers first
17:25:35Zevv[m]you must be strong
17:25:46Zevv[m]just sit on you friggin hands and type
17:25:53disruptekkinky.
17:26:34Zevv[m]how must anyone learn how this stuff works if what you type inside a cps proc is no longer nim?
17:26:55disruptekthese are extensions. that's what nim is all about.
17:27:01Zevv[m]too soon
17:27:18disruptekthere's nothing creepy going on here (yet).
17:27:28Zevv[m]like, let's say, named continues
17:27:38Zevv[m]also not a teeny little tiny bit of creepy things?
17:27:50*maier quit (Ping timeout: 265 seconds)
17:28:13disrupteki can't remember if we have named continue but i think we don't. 🙄
17:28:34Zevv[m]I can't tell anymore :)
17:28:36disruptekomg it's getting typed right now.
17:28:40disrupteki cannot help myself.
17:28:59Zevv[m]I just told yo so. Sit on your hands and type
17:29:04Zevv[m]so there it is - it's getting typed
17:31:34Zevv[m]so, youre going to rebase and merge all of deep, are you
17:31:46disruptekof course.
17:31:57FromDiscord<Clyybber> hi
17:32:04FromDiscord<Clyybber> we don't have named continue
17:32:09FromDiscord<Clyybber> it wouldn't make sense
17:32:20disruptekshhh
17:32:21Zevv[m]please help me out
17:32:24Zevv[m]he's on the loos
17:32:26Zevv[m]e
17:32:38Zevv[m]if I hold him you can smack him in the face, and we take turns
17:33:57FromDiscord<Clyybber> ok hold him tight
17:34:09Zevv[m]I bet it's no use
17:34:12FromDiscord<Clyybber> I knew he was going to put weird shit in cps
17:34:16FromDiscord<Clyybber> while else
17:34:23disrupteklol
17:34:25FromDiscord<Clyybber> what are you smoking :p
17:34:49disruptekwhile else is awesome.
17:35:01FromDiscord<Clyybber> Araq: Can you look at https://github.com/nim-lang/Nim/pull/15091
17:35:02disbotFix forward declaration issues in template/macro context
17:35:16Zevv[m]hehe
17:38:11*Kaivo quit (Ping timeout: 240 seconds)
17:38:19*Kaivo joined #nim
17:41:34*theelous3 quit (Ping timeout: 256 seconds)
17:47:16Zevv[m]disruptek: instead of rewriting all the code to use stuff from your env
17:47:26Zevv[m]you should generate a tiny template for each var
17:47:32Zevv[m]template i = env.i
17:47:37Zevv[m]and put those on top
17:47:55Zevv[m]that'll make your code easier to read, and you don't need to keep track of what you need to rewrite
17:52:54*Senketsu quit (Read error: Connection reset by peer)
17:59:07disruptekwhat does that do in a `var i: int = 3` statement?
17:59:31Zevv[m]no, other way around. IT's the localRetrievels
17:59:42disruptekoh, hmm.
17:59:52Zevv[m]instead of making 'var i = env_ths(locals_that).i`
17:59:58disruptekseems kinda reasonable.
17:59:59Zevv[m]it does `template i = env_ths(locals_that).i`
18:00:29Zevv[m]so you don't have to go through all of the code finding all the i's
18:00:36Zevv[m]let nim do the work for you
18:00:43disruptekyeah, we'll try it.
18:01:02Zevv[m]My 'with' macro was once complicated like that, then PMunch came along and did just that
18:01:14Zevv[m]and I felt kind of stupid for not thinking of it
18:02:29Zevv[m]it works
18:03:00Zevv[m]oh fuck
18:03:04Zevv[m]I pushed to master instaed of to a branch
18:03:16Zevv[m]want me to fix that or is that ok
18:03:21Zevv[m]it's trivial
18:03:24disrupteki don't care.
18:03:57Zevv[m]only downside is that the 'repr' of the translated proc now looks like shit because nim adds tons of whitespace and newlines around nnkTemplDefs
18:04:01Zevv[m]but it works
18:08:42*kungtotte quit (Read error: Connection reset by peer)
18:09:27*kungtotte joined #nim
18:10:27Zevv[m]you just don't care, do you
18:16:36disrupteknot so much.
18:17:02FromGitter<alehander92> so do we have
18:17:07FromDiscord<Clyybber> yes
18:17:29FromGitter<alehander92> <3
18:17:52FromDiscord<Clyybber> that too
18:17:55FromDiscord<Clyybber> <3
18:18:13*Ven`` joined #nim
18:18:30disruptekso 3 and 16 are fixed, right? or are we just working around them?
18:18:59FromGitter<awr1> @mratsim Hey I have a small thought regarding Weave: could in the initialization function for Weave we get an option to add in a function that could gets executed on all threads on startup w/o work stealing?
18:19:38FromDiscord<Clyybber> disruptek: the ICE part of 3 will be fixed with my Nim PR
18:19:45FromDiscord<Clyybber> but that one is waiting for Araq to reply
18:20:01Zevv[m]#3 is not fixe
18:20:06FromGitter<awr1> The reason I ask is so that it might be possible to set the FPU state for all threads to denormal-at-zero
18:20:27Zevv[m]#3 workaround is 37f0063262cdc173f13a6b4871e410343a4dc775
18:20:39Zevv[m]gensym seems to f**k up
18:20:44*Jesin quit (Quit: Leaving)
18:21:27FromGitter<awr1> *denormal-to-zero
18:23:31Zevv[m]why was stuff always put into a block: btw?
18:23:48disruptekso you can shadow locals or proc params.
18:23:59*bung quit (Quit: Lost terminal)
18:24:01Zevv[m]hmm did I not break that with the templatization
18:24:14disruptekno, but we may be able to remove the block:
18:24:35disruptekalso, as #20 is in you can do your `cps Cont:` feature.
18:27:30Zevv[m]my what
18:28:07Zevv[m]I'm a bit hesistant to do things now since deep seems to channenge all my truths
18:29:49*endragor joined #nim
18:29:53*abm quit (Quit: Leaving)
18:31:41disruptekheh
18:32:16disrupteklemme fix fn and then we'll merge it and see where we're at.
18:33:57leorizenarimiran: we should probably run docgen on fusion too, if there's any way to just run docgen for the whole project :P
18:35:07*Senketsu joined #nim
18:38:11*endragor quit (Ping timeout: 240 seconds)
18:41:03*Jesin joined #nim
18:46:16narimiranok :)
18:48:22ForumUpdaterBotNew thread by Digitalcraftsman: How to ensure that all attributes of an object are explicitly set during creation?, see https://forum.nim-lang.org/t/6612
18:54:51*apahl quit (Ping timeout: 272 seconds)
18:55:18*apahl joined #nim
19:00:13*Senketsu quit (Read error: Connection reset by peer)
19:01:28FromDiscord<brainproxy> sent a code paste, see https://play.nim-lang.org/#ix=2sxV
19:11:33natureAre there any simple example on using nimscript to produce a statically linked binary ?
19:12:27natureI found https://github.com/kaushalmodi/hello_musl but it's a hug config.nims that downloads and compiles some libraries too
19:14:06*Senketsu joined #nim
19:15:47disruptekZevv[m]: it's back to the a5 situation, now. so, that's good.
19:15:51*FromDiscord quit (Remote host closed the connection)
19:16:05*FromDiscord joined #nim
19:18:31FromDiscord<Clyybber> Araq: ping
19:21:26naturefound one here in case anybody was interested too: https://scripter.co/nim-deploying-static-binaries/#config-dot-nims
19:23:10*maier joined #nim
19:24:44Zevv[m]disruptek: thats the same bug, told you three times
19:24:59Zevv[m]its gensym messing up
19:25:01disruptekeh maybe.
19:25:20disruptekanyway, we have to not insert a c: Cont = nil if it's not present.
19:25:46Zevv[m]ok, you need to take it slow
19:26:07Zevv[m]this is to do the first cps call from non-cps code, right
19:26:13disruptekright.
19:26:20Zevv[m]so this is about the alloc of the env
19:26:25Zevv[m]the constructor, so to say
19:26:42disruptekit's about you wanting to do foo(it: MyIter) {.cps: MyIter.}
19:27:03Zevv[m]well, do i want that
19:27:12FromGitter<alehander92> do i want that
19:27:12Zevv[m]i think i want to do foo()
19:27:12disruptekyeah, you can have it.
19:27:21FromGitter<alehander92> why MyIter twice
19:27:44FromGitter<alehander92> cant `cps` infer it from the function ast
19:28:05*Zevv[m] quit (Quit: Lost terminal)
19:28:07*maier quit (Ping timeout: 246 seconds)
19:28:16*Zevv joined #nim
19:28:24Zevvsucky irssi
19:28:27*dzamo quit (Quit: dzamo)
19:29:34FromDiscord<Clyybber> I think we should either go foo() {.cps: MyIter.}
19:29:47FromDiscord<Clyybber> (edit) 'either' => 'nothing'
19:29:51FromDiscord<Clyybber> s/nothing
19:30:00FromDiscord<Clyybber> dammit discord
19:30:25FromDiscord<Clyybber> but doesn't it make sense to still have a raw version of the cps macro?
19:30:39disruptekdunno what you mean.
19:30:41disruptekraw?
19:30:43Zevvok stop
19:30:57FromDiscord<Clyybber> one that doesn't automagically introduce these args
19:31:22FromDiscord<Clyybber> one where you still have to write foo(it: MyIter): MyIter {.cpsRaw}
19:31:34Zevvstep away for a sec
19:31:36disruptekyou can do that now.
19:31:57disruptekfoo(it: Cont) {.cps: Cont.} means the same thing.
19:32:25disruptekit just lets you access `it` from inside the continuation, anywhere.
19:32:32ZevvThere's a number of different things happening. I might make another little writeup because makin the other one today helped me think. But we have
19:32:43Zevv1) the initial call/instantation from nim to the first cps
19:33:02Zevvthat one returns something magic that you can send to a trampoline or an event queue
19:33:13Zevvthis should be simple and user friendly and hide shit
19:33:14Zevvright?
19:33:30disruptekwell, it's a little more subtle.
19:33:46Zevvso I want to make an interator instance. I want to do makeCounter(0, 10)
19:33:47disruptekyou want a way to deref the result of that continuation, which we're calling `yield foo()`.
19:34:07disruptekand we want a way to NOT deref it, which i think is `continue foo()`.
19:34:30disruptekyou can of course do things like `spawn foo()`.
19:34:36disruptekor whatever primitive you want.
19:34:49Zevvyeah but you keep thinking in terms of your frigging eventqueue
19:34:51Zevvburn that
19:35:08disruptekfine, but `continue` still needs to be a thing.
19:35:12FromDiscord<Clyybber> when we start to use continue X we may never make it a typed macro
19:35:14disruptekbecause `discard` is a thing.
19:35:15Zevvwhat is 'continute'
19:35:29disruptekcontinue is a single bounce on the trampoline.
19:35:30Zevv'continue'. What is it. where does it live, waht does it eat and what does it poop
19:35:39disruptekit's in cps context only.
19:35:42ZevvOk, I don't want CPS to make 'continue'
19:35:49ZevvYour continue is not my continue
19:35:55FromDiscord<Clyybber> what actually is preventing us from making it typed?
19:35:58FromDiscord<Clyybber> the arg
19:36:32Zevvor maybe only if continue is no more then a template doing `a = a.fn(a)`
19:36:37Zevvbecause that's all continue is
19:36:38Zevvright
19:36:39Zevv?
19:37:11disrupteki think so.
19:37:39ZevvOk, we have 2 kinds of "users". The end user does not want to know *any* of this shit. They want to do async io or iterators, and not be bothered
19:37:46Zevvthe other users are the people implementing stuff with CPS
19:37:52Zevvthey need to know the details, and have power
19:38:06Zevvthey are smart enough to bounce that thing
19:38:23Zevvso for user #1 we need to be able to hide all the gory details.
19:38:44Zevvbut for user #2, the people who implement .cpsMagic. things, we need to provide hooks and mechanics
19:39:20Zevvso .cps. procs hide everything. The look like a normal proc, and might have hidden stuff going in or out.
19:39:36Zevvthe .cpsMagic. procs are explicit, and I think they should totally honest about what is going in and out
19:39:40Zevvbecause you want to touch that stuff
19:39:55Zevvif you are implementing your event queue or whatever
19:40:20Zevvdoes that make any sense?
19:40:21FromGitter<alehander92> `next`
19:40:23FromGitter<alehander92> make it next
19:40:26FromGitter<alehander92> like next tick
19:41:01FromGitter<alehander92> like ruby, they call `continue` `next`
19:41:08Zevvlook at my little iterator: https://github.com/disruptek/cps/blob/master/stash/iterator.nim
19:41:22ZevvThe 'end user' stuff is at the bottom. You make an iterator like 'var i = counter(3, 7)'
19:41:25Zevvi is your iterator
19:41:27Zevvno special stuff whatsoever
19:41:56Zevvjust one simple plain honest nim function call
19:42:24Zevvthat function signature matches the one of the `proc counter(...)` which is a .cps. proc
19:42:28Zevvthat is pretty great
19:42:32Zevvno surprises there
19:49:18disrupteksurprise, ICE
19:49:30Zevvbaby
19:49:33disruptekwizard needs food.
19:50:17FromDiscord<Clyybber> disruptek: tell me abotu the ICE
19:50:24FromDiscord<Clyybber> is it "proc still forwarded"?
19:51:44disruptekaieee all my vars look like templates.
19:52:11FromDiscord<Clyybber> I *need* to know your ICE
19:52:30disruptektry building tock.nim on deep
19:52:59disruptekit's environment misses.
19:53:09FromDiscord<Clyybber> ahlrigt
19:53:09natureIs there a builtin ternery operator in nim ?
19:53:14FromDiscord<Clyybber> nope
19:53:24FromDiscord<Clyybber> we have if expressions though
19:53:30disrupteklet x = if foo: 1 else: 2
19:53:50natureokok that's what I was looking for, thaks :)
19:53:53naturethanks
19:54:03*theelous3 joined #nim
19:54:37disruptekcps has while: else: expressions.
19:56:34natureis something like `let x = (if foo: 's' else: '') & 'tring'` legal ?
19:57:00natureor is there a better way to do it ?
19:57:39disruptekwe use " to delimit strings.
19:58:39natureoh yes... I am still new to Nim sorry.
19:58:55FromDiscord<Clyybber> other than that its legal yes
20:04:21*pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
20:04:50disruptekthere's a lot to like about deep. except that it doesn't work.
20:05:04*sendell quit (Ping timeout: 244 seconds)
20:05:04*oneark quit (Ping timeout: 244 seconds)
20:05:05*leorize[m] quit (Ping timeout: 244 seconds)
20:05:34*rridley[m] quit (Ping timeout: 244 seconds)
20:05:36*GitterIntegratio quit (Ping timeout: 244 seconds)
20:05:37*sendell joined #nim
20:05:56*pbb joined #nim
20:06:56*leorize[m] joined #nim
20:07:13*oneark joined #nim
20:11:56FromDiscord<Shucks> Is `rand` randomizing at compile time not runtime? ```import random↵echo rand(-10..20)``` this returns everytime the same number
20:15:08leorizeyou need to initialize the random number generator fisrt
20:15:10leorizefirst*
20:15:15leorizecall `randomize()`
20:16:13FromDiscord<Shucks> oh
20:21:43disruptekZevv: your templates...
20:21:51disruptekthey don't work. 😢
20:22:08*rridley[m] joined #nim
20:23:19FromDiscord<ProperFellow> I'm trying to read an image and write it to a file. In Python it's super simple, I grab the content (string) and just write it out to the file using `wb`. Kind of lost on how to do this using nim's standard lib.
20:23:58disruptekhttps://nim-by-example.github.io/files/
20:24:39FromDiscord<ProperFellow> That just covered text files.
20:24:51disruptekis there a difference?
20:25:04FromDiscord<ProperFellow> Between a binary file and text files?
20:25:05FromDiscord<ProperFellow> Yes.
20:25:12disruptekwhat is it?
20:25:18FromDiscord<ProperFellow> I can see if treating it as a string will work. Perhaps Nim glosses over that.
20:25:55FromDiscord<lqdev> it's a little bit dodgy but you can cast a string to a `seq[uint8]` as their binary representations are nearly identical
20:26:14FromDiscord<lqdev> the only difference is that strings have a NUL terminator
20:26:30FromDiscord<ProperFellow> Hmmmm
20:26:54FromDiscord<lqdev> well, to be safe you can always just copy the memory over to a new seq.
20:27:20FromDiscord<lqdev> ```nim↵var theSeq: seq[uint8]↵copyMem(theSeq[0].addr, yourString[0].unsafeAddr, yourString.len)↵```
20:27:24FromDiscord<lqdev> ah whoops
20:27:27Zevvdisruptek: they do for me
20:27:30Zevvwhats the problem
20:27:37FromDiscord<lqdev> it has to be `var theSeq = newSeq[uint8](yourString.len)`
20:27:44FromDiscord<lqdev> otherwise it'll write out of bounds
20:29:14FromDiscord<ProperFellow> Yeah getting out of bounds now (Error: unhandled exception: index -1 not in 0 .. 4 [IndexError]) - not the clearest error - sysFatal.
20:29:16Zevvif its broken revert it, it was ment to go in a branch but i messed that up
20:30:01FromDiscord<lqdev> @ProperFellow look at the stacktrace, it should tell you more about where the error happened
20:30:36disruptekthe problem is with the new env.
20:31:15Zevvoh but that was not there when i made that, so its not my fault not my fault
20:31:28Zevvplausibe deniability
20:31:31disruptekno, it's not you.
20:33:10*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:33:33FromDiscord<ProperFellow> Ah I'm trying to get the last element of an array.
20:33:42FromDiscord<ProperFellow> I don't see documentation on how to find it hahahaha.
20:35:11FromDiscord<lqdev> you use `BackwardsIndex`. you can create one using `^`, eg. `mySeq[^1]` gets the last elemtn
20:35:14FromDiscord<lqdev> (edit) 'elemtn' => 'element'
20:35:18FromDiscord<ProperFellow> Ah!
20:35:23FromDiscord<ProperFellow> Is this documented anywhere?
20:35:40disruptek!last lqdev
20:35:40disbotlqdev spoke in 12#nim 25 seconds ago 12https://irclogs.nim-lang.org/28-07-2020.html#20:35:14
20:35:45FromDiscord<lqdev> https://nim-lang.org/docs/system.html#%5E.t%2Cint
20:36:01disruptekmy link is better.
20:36:01FromDiscord<aachh> damn
20:36:08FromDiscord<aachh> i was about to send this
20:36:08FromDiscord<aachh> you were faster :(
20:36:52FromDiscord<ProperFellow> Nice - that all works.
20:37:06FromDiscord<ProperFellow> Ah gotcha.
20:37:06FromDiscord<lqdev> @ProperFellow Nim uses a separate type for this to not have to burden the runtime with checking negative indices. the compiler does the work of resolving a separate overload of `[]`
20:37:24FromDiscord<ProperFellow> That's impressive.
20:37:39FromDiscord<ProperFellow> I'm really enjoying Nim - but the documentation doesn't feel super newbie friendly.
20:37:46FromDiscord<lqdev> yeah it could use a bit of work
20:37:46FromDiscord<aachh> for me it actually feels really nice
20:37:47FromDiscord<aachh> xD
20:37:49FromDiscord<ProperFellow> As far as navigating around - or helpful examples.
20:38:01FromDiscord<aachh> i think im the only person that likes it
20:38:01FromDiscord<ProperFellow> Hahahaha
20:38:05FromDiscord<aachh> it's exhaustive
20:38:15FromDiscord<lqdev> i just use ctrl+f proc <name>
20:38:17FromDiscord<aachh> that's the only thing i need in documentation
20:38:19FromDiscord<aachh> yeah, that too
20:40:10shashlickdoes `nim e` ignore -d:xyz on the command line?
20:40:18shashlickwhen defined(xyz) doesn't work
20:42:39*NimBot joined #nim
20:50:11Zevvso.
20:50:44shashlickit works in the simple case but not when the `when defined()` is passed into a template
20:54:34FromGitter<iffy> @leorize: I'm waiting on the user to confirm if it's fixed, but it sure seems like leaking fd was my problem
20:56:27FromGitter<iffy> Do `gorge` and friends not work on Windows? This program: `static: echo "cd: " & gorge("cd")` emits only `cd: ` when compiling.
20:57:20FromGitter<iffy> Version 1.0.6
20:57:46Zevvyou good disruptek?
20:59:58FromDiscord<lqdev> @iffy I'm pretty sure `cd` doesn't output anything
21:00:14FromGitter<iffy> On Windows it prints out the current directory
21:00:28FromDiscord<lqdev> huh
21:01:07FromGitter<iffy> `static: echo "foo: " & gorge("echo foo")` likewise only prints out `foo: `
21:01:41*lritter joined #nim
21:02:06*Vladar quit (Quit: Leaving)
21:03:13shashlickneed some template help
21:03:15FromGitter<iffy> Same behavior in 1.2.4
21:03:31*Senketsu quit (Ping timeout: 256 seconds)
21:05:33*audiofile joined #nim
21:06:12*narimiran quit (Ping timeout: 256 seconds)
21:09:15FromGitter<iffy> Okay, if I instead do `gorge("cmd /c cd")` it works
21:17:37*dulsi_ joined #nim
21:19:45*dulsi quit (Ping timeout: 240 seconds)
21:24:02*maier joined #nim
21:28:59*maier quit (Ping timeout: 240 seconds)
21:38:51audiofileI like this community
21:43:05*solitudesf quit (Ping timeout: 240 seconds)
21:43:16FromDiscord<aachh> Yeah, me too
21:47:39FromDiscord<Elegant Beef> We clearly havent met 😄
21:51:05leorize@iffy that bug regarding asyncstdin might be fixed on devel now
22:02:55*disruptek yawns.
22:03:28disruptekscopes come, scopes go. only the wizard remains.
22:04:09FromDiscord<Avatarfighter> What is up everyone
22:07:55disruptekit's time to kick ass and chew bubblegum.
22:07:59disruptekand i'm all outta gum.
22:08:55FromDiscord<Avatarfighter> oh so ur working on devel today disruptek 😛
22:14:44*arecacea1 quit (Remote host closed the connection)
22:15:37*arecacea1 joined #nim
22:16:25disrupteki'm tryin' to take over the world.
22:16:33disrupteksame as any other sunday evening.
22:27:41audiofilehey now
22:27:44audiofilethat's my plan >:(
22:27:54audiofilewe can't have two people trying to take over the world at the same time
22:28:11audiofileElegant Beef hullo!
22:28:12disrupteki had hoped it wouldn't come to this.
22:28:19audiofileit is a mexican standoff huh
22:28:38*audiofile takes disruptek out with a chipotle burrito
22:29:57*nature quit (Ping timeout: 260 seconds)
22:32:23shashlickobject variants are more painful than they are worth
22:32:29shashlickif you have shared fields, that's it
23:01:27*waleee-cl quit (Quit: Connection closed for inactivity)
23:05:18*krux02_ joined #nim
23:07:50*Trustable joined #nim
23:07:52*krux02 quit (Ping timeout: 260 seconds)
23:18:09*thomasross joined #nim
23:18:27disruptekthat's how i feel about twins in bed.
23:20:05FromDiscord<Yardanico> Huh
23:24:17*dulsi_ is now known as dulsi
23:24:58*maier joined #nim
23:25:57*altarrel quit (Quit: Konversation terminated!)
23:26:48*altarrel joined #nim
23:30:08*maier quit (Ping timeout: 256 seconds)