<<26-08-2019>>

00:01:28*ng0 quit (Quit: Alexa, when is the end of world?)
00:11:32*rockcavera joined #nim
00:18:37FromGitter<deech> IIUC `method` is a runtime dispatch construct so some type information must be kept around at runtime, is there any documentation that specifies what and when that happens?
00:20:52*theelous3 quit (Ping timeout: 248 seconds)
00:26:28FromGitter<gogolxdong> the error has gone.
00:26:28FromGitter<Vindaar> @deech the only place I'm aware of that mentions RTTI at all is the typeinfo module: https://nim-lang.github.io/Nim/typeinfo.html ⏎ I'm off to bed now. Good night :)
00:41:34*luis_ quit (Remote host closed the connection)
00:49:01*sagax quit (Ping timeout: 244 seconds)
00:50:15*user0225 quit (Quit: user0225)
00:52:34*krux02_ quit (Remote host closed the connection)
00:56:20*Kaivo quit (Ping timeout: 272 seconds)
01:07:16*arecaceae quit (Read error: Connection reset by peer)
01:07:40*arecaceae joined #nim
01:12:47*Jjp137 quit (Read error: Connection reset by peer)
01:13:30*Jjp137 joined #nim
01:26:41*laaron joined #nim
01:50:17xacecould someone help explain what happens on this line: https://github.com/kitsunyan/pakku/blob/1f6a5c6188a80bab511f56cb36eae824765c89d6/src/feature/syncinstall.nim#L312 # my understanding is that `editorEnv` is a string variable. What happens when you just put the string variable like that?
01:58:45xaceoh, nvm now i see that it's part of a if-statement
02:54:03*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
02:54:32*laaron joined #nim
03:16:35*LEdoian[m] joined #nim
03:20:28*livcd quit (Ping timeout: 246 seconds)
03:28:46*livcd joined #nim
03:29:57*dddddd quit (Remote host closed the connection)
03:48:03*chemist69 quit (Ping timeout: 264 seconds)
03:49:32*chemist69 joined #nim
04:01:05*darithorn quit (Read error: Connection reset by peer)
04:02:02FromGitter<gogolxdong> D:\Nim\lib\system\jssys.nim(53, 6) Error: 'getCurrentException' is not GC-safe as it accesses 'lastJSError' which is a global using GC'ed memory ⏎ when compile nimx with task nake js
04:04:54*fjellfras joined #nim
04:08:43*laaron quit (Remote host closed the connection)
04:11:06*laaron joined #nim
04:18:33*rockcavera quit (Remote host closed the connection)
04:26:05FromGitter<kayabaNerve> Use `except Exception as e`
04:27:37*owl_000 quit (Ping timeout: 250 seconds)
04:46:28*endragor joined #nim
04:51:20*nsf joined #nim
04:59:17*laaron quit (Remote host closed the connection)
05:01:53*laaron joined #nim
05:06:09*snooptek joined #nim
05:15:56*narimiran joined #nim
05:17:32*owl_000 joined #nim
05:26:12owl_000what enum {.pure.} pragma does? i added {.pure.} and can't find any differences.
05:28:32owl_000and is enum values can be only string?
06:04:14FromGitter<zacharycarter> owl_000: pure forces you to address enum values as EnumName.EnumValue
06:04:19Zevv.pure. enums allow for names to collide
06:04:30FromGitter<zacharycarter> to allow for ^
06:04:40Zevvzacharycarter: you're not forced to qualify
06:04:50FromGitter<zacharycarter> oh? I thought you were
06:05:43Zevvonly for non-unique values
06:09:49FromGitter<zacharycarter> ah okay
06:10:07livcdgood morning
06:10:23livcdgogolxdong: you around?
06:10:47FromGitter<zacharycarter> I think the best thing to do is for an enum named `FooEnum` prefix all values with `fe` so like `feFoo` feBar` etc...
06:10:59*solitudesf joined #nim
06:23:47*actuallybatman quit (Ping timeout: 245 seconds)
06:23:47Zevvthat is *soo* C
06:27:30lqdev[m]but it doesn't cause as many problems as in C (namespacing)
06:28:41*PMunch joined #nim
06:36:05*Vladar joined #nim
06:44:11*tankf33der joined #nim
06:59:53*tankf33der left #nim (#nim)
07:00:00*gmpreussner quit (Quit: kthxbye)
07:03:52FromGitter<zacharycarter> I don't really mind if some C patterns are baked into Nim
07:03:52FromGitter<zacharycarter> but others *cough Zevv* take offense for some reason :P
07:03:52FromGitter<zacharycarter> like when you use `const FOO_BAR = 1`
07:03:52FromGitter<zacharycarter> I have a feeling that makes Zevv twitch / cringe
07:04:49*gmpreussner joined #nim
07:08:51FromDiscord_<Shield> you gotta scream those consts
07:12:27Zevvoh no I love that
07:12:34ZevvI'm a C man, and too old to ever change
07:12:42FromGitter<zacharycarter> lol
07:12:50ZevvI hate it that nim has no proper preprocessor to abuse
07:12:55Zevvall this fiddling with macros, bah
07:26:03FromGitter<zacharycarter> hahaha
07:26:53FromGitter<alehander42> you can kinda do it with source filters
07:27:00FromGitter<gogolxdong> @livcd yes
07:31:46*krux02 joined #nim
07:37:36*sagax joined #nim
07:43:07Zevvwow lets make an m4 compatible source filter
07:46:58FromGitter<alehander42> 1) term rewriting macros
08:23:10*floppydh joined #nim
08:26:08livcdgogolxdong: Do you know xcgui ?
08:27:15PMunchlivcd, hard to find any english docs on it it seems
08:28:16*shomodj joined #nim
08:29:26FromGitter<gogolxdong> what's that?
08:29:59livcdsome chinese gui lib
08:30:03livcdhttp://www.xcgui.com/
08:30:48*shomodj quit (Client Quit)
08:33:38PMunchWindows only by the looks of it
08:35:32FromGitter<gogolxdong> yeah, it's Windows only.
08:37:37*floppydh quit (Quit: WeeChat 2.5)
08:42:44*shomodj joined #nim
08:51:36PMunchHmm, what are the current differences between a normal build and -d:release?
08:52:04PMunchMy program fails when I compile with -d:release on 0.20.2, but works fine without
08:53:39*ng0 joined #nim
08:54:55Zevv"fails"?
08:56:07PMunchIt's doing some decryption, which comes out garbled on a release build
08:57:53leorizeI think the only diff are: stacktrace off, -O3 optimization on
08:58:49leorizeI think -O3 is messing up with your code, try passing -d:release -t:'-O0' and see if it's working
08:59:32PMunchNope, still messed up
08:59:44PMunchWas that supposed to be -t
09:00:05leorizeit's --passC, I think the sort form is -t
09:00:43leorizetry --opt:none then
09:01:10PMunchAh, it's definitely -O3 that does it
09:01:33PMunchBut passing -O0 to a release build adds both flags, and the GCC compiler chooses O3
09:02:01PMunchJust passing O3 without release messes up as well
09:02:37PMunchSome for O1
09:02:58ZevvSo O3 messes up your nim-generated code?
09:03:00PMunchHmm, strange, this used to work..
09:03:27PMunchZevv, I don't think O3 does anything to the code does it?
09:03:37Zevvwell, it can break *bad* code
09:03:47Zevvor fix it, depending on how you look at it
09:03:52Zevvit typically changes UB
09:04:02Zevvbut nim generated C code should never show UB, right
09:04:27leorizewell gcc optimization make code fails faster :P
09:04:39Zevvthat much is true :)
09:05:00leorizeI'm not entirely sure if -O3 is that safe
09:05:22Zevvwell, it is supposed to be
09:05:28leorizelibgcrypt has special override for certain part of it to disable gcc optimization
09:06:16leorizePMunch: if you have clang with sanitizer, try -t:'-fsanitizer=ubsan' -l:'-fsanitizer=ubsan'
09:07:41PMunchOnly got GCC on this machine
09:10:22ZevvDoes O2 work for you?
09:10:28PMunchNope
09:10:33Zevvthat is very bad
09:10:46PMunchOnly O0 works
09:11:11leorizecan you share the code?
09:11:16PMunchO[1|2|3] fails
09:11:27PMunchSure, it's my libkeepass repo on GitHub
09:11:29leorizeif -O1 fails then the code is already broken :P
09:12:04Zevveuh but that's a python module?
09:12:18Zevvare you sure you're on the right irc channel? :)
09:13:52PMunchhttps://github.com/PMunch/libkeepass
09:13:55PMunchIt's a Nim module
09:14:24*solitudesf quit (Read error: Connection reset by peer)
09:14:26*solitudesf- joined #nim
09:18:43PMunchHmm, it seems like it has something to do with the salsa module or how it's used
09:19:15PMunchBut I can't get that module itself to misbehave
09:19:38PMunchBut adding an echo of pwBytes right after this line: https://github.com/PMunch/libkeepass/blob/master/src/libkeepass.nim#L256
09:19:53PMunchShows that it decrypts the first password just fine, but then it starts failing
09:22:06narimirani think my `nimble` is broken (i can't install packages), and running `koch nimble` didn't make my problems go away. what now?
09:22:38PMunchOkay this is very strange..
09:23:04PMunchI added some echo statements before the crypt, and keyArr changes when run with O3, but not when run with O0
09:26:47PMunchOkay, moved the pointer dereference from here: https://github.com/PMunch/libkeepass/blob/master/src/libkeepass.nim#L256 to here: https://github.com/PMunch/libkeepass/blob/master/src/libkeepass.nim#L211 and now it works fine with -d:release as well..
09:27:46PMunchOh well, off to lunch now. If anyone has any idea what causes this (Is it even a Nim bug? Codegen bug?) please ping me
09:27:57Zevvnarimiran: "broken"?
09:28:15Zevvdoes it complain? Clean your nimblecache?
09:29:45narimiranZevv: here is the output, it is the same/similar with different packages: http://ix.io/1TvM
09:34:09narimiranhere is what is in /tmp/....: 1. blake2.ini: http://ix.io/1TvN ; 2. blake2.nims: http://ix.io/1TvO
09:34:52Zevvyeah I got just that one
09:35:04Zevv./koch --latest nimble
09:35:14Zevvor update your koch and rebuild koch manually
09:37:08narimiranyep, i needed to update `koch` before running `koch nimble`. thanks!
09:37:56Zevvthe root cause is warnings about unused imports. If you have a nimble file without custom targets, strutils is imported and not used, and the 'nim e' error message ends up in the .ini file in the nimble cache.
09:58:29leorizeI wouldn't want to know how that's implemented
10:12:28*fjellfras quit (Quit: Leaving)
10:13:58FromGitter<alehander42> what's new these days in nim
10:14:16narimiranunused imports warning :)
10:16:50Zevvunused import warnings *everywhere* :)
10:20:13FromGitter<alehander42> i am just trying to get rid of
10:20:14FromGitter<alehander42> XDeclaredButNotUsed
10:20:18FromGitter<alehander42> warnings
10:20:26FromGitter<alehander42> but for some autogenerated stuff by a serialization
10:20:31FromGitter<alehander42> what was the switch : )
10:21:25FromGitter<alehander42> --hint[XDeclaredButNotUsed]:off
10:21:26FromGitter<alehander42> ok
10:21:55FromGitter<alehander42> so if we pass a similar switch, does this fix the import thing
10:22:06FromGitter<alehander42> or do you want to still see the "actual" unused ones :P
10:22:39narimirani like this new feature, i cleaned up some of my code. and the same happened in lots of places in stdlib
10:25:00*lritter joined #nim