<< 30-12-2019 >>

00:11:21*tane quit (Quit: Leaving)
00:37:44*Hideki_ joined #nim
00:42:15*Hideki_ quit (Ping timeout: 268 seconds)
01:44:39FromGitter<gogolxdong> Anyone familiar with clang, how to build DeclNodes.inc file? `fatal error: 'clang/AST/DeclNodes.inc' file not found`
01:54:03*ng0 quit (Quit: leaving)
02:07:21*uu91 joined #nim
02:16:15*dwdv quit (Ping timeout: 258 seconds)
02:26:02*chemist69 quit (Ping timeout: 246 seconds)
02:26:26*chemist69 joined #nim
02:45:47*Hideki_ joined #nim
02:54:15*sealmove quit (Quit: WeeChat 2.7)
02:57:50*gmpreussner quit (Quit: kthxbye)
02:58:09*gmpreussner joined #nim
02:58:18*dddddd quit (Remote host closed the connection)
03:01:56*Trustable quit (Ping timeout: 265 seconds)
03:04:45*Hideki_ quit (Remote host closed the connection)
03:05:00*Hideki_ joined #nim
03:07:59*endragor joined #nim
03:09:24*muffindrake quit (Ping timeout: 248 seconds)
03:11:28*muffindrake joined #nim
03:12:43*endragor quit (Ping timeout: 268 seconds)
03:14:32*Hideki_ quit (Remote host closed the connection)
03:15:17*Hideki_ joined #nim
03:19:58*Hideki_ quit (Ping timeout: 260 seconds)
03:26:34*Hideki_ joined #nim
03:31:13*Hideki_ quit (Ping timeout: 268 seconds)
03:32:26*ptdel quit (Quit: ptdel)
03:35:51*Hideki_ joined #nim
03:40:02*Hideki_ quit (Ping timeout: 240 seconds)
03:46:12*leorize joined #nim
03:47:01*Hideki_ joined #nim
03:51:42*Hideki_ quit (Ping timeout: 258 seconds)
04:07:16*endragor joined #nim
04:20:12*rockcavera quit (Remote host closed the connection)
04:24:01*Hideki_ joined #nim
04:28:56*Hideki_ quit (Ping timeout: 265 seconds)
04:39:51*NimBot joined #nim
04:44:48*chemist69 quit (Ping timeout: 252 seconds)
04:46:39*chemist69 joined #nim
04:57:13FromDiscord<potatotot> Is the forum broken for anyone else? I'm trying to login and it says my password/username is invalid. I reset my password and try logging in immediately and it still says the credentials are invalid
04:59:59*marquisdefalbala quit ()
05:17:24*Hideki_ joined #nim
05:22:13*Hideki_ quit (Ping timeout: 268 seconds)
05:46:57*Hideki_ joined #nim
05:51:38*Hideki_ quit (Ping timeout: 260 seconds)
06:15:24*Hideki_ joined #nim
06:20:11*Hideki_ quit (Ping timeout: 268 seconds)
06:27:45*narimiran joined #nim
06:28:36*Hideki_ joined #nim
06:37:29*Hideki_ quit (Remote host closed the connection)
06:39:06*Hideki_ joined #nim
06:44:26*Hideki_ quit (Ping timeout: 240 seconds)
06:52:36*Romanson joined #nim
06:57:06*Hideki_ joined #nim
06:58:23*Hideki_ quit (Remote host closed the connection)
07:04:02*solitudesf joined #nim
07:29:46*Hideki_ joined #nim
07:41:18*Hideki_ quit (Ping timeout: 265 seconds)
08:00:00*gmpreussner quit (Quit: kthxbye)
08:00:00Araqhttp://charcoal-lang.org/charcoal_intro_draft.pdf interesting read
08:05:16*nsf joined #nim
08:05:34*gmpreussner joined #nim
08:19:49*narimiran quit (Ping timeout: 268 seconds)
08:22:26*Sargun quit (Remote host closed the connection)
08:23:08FromDiscord<Lantos> @potatotot works for me, just logged in
08:27:26*ikan-keli_ quit (Read error: Connection reset by peer)
09:22:52*ng0 joined #nim
09:22:53*ng0 quit (Changing host)
09:22:53*ng0 joined #nim
09:30:41*matic joined #nim
09:34:02*Hideki_ joined #nim
09:36:47FromGitter<mratsim> @Araq yes it's interesting, since weave is cooperating work-stealing I also have this issue with long-running tasks
09:37:37*dwdv joined #nim
09:38:19FromGitter<mratsim> I offer a "loadBalance(Weave)" proc that users can insert as an point to check "events" (i.e. Steal requests) in the middle of an long task
09:39:01FromGitter<mratsim> I also note that they talk about the cactus stack problem in Go and Rust without naming it (see split stack/segmented stacks)
09:42:06FromGitter<mratsim> My overhead per task is 256 bytes not 1kB
09:43:34FromGitter<mratsim> I'm thinking of switching to coroutines similar to fibril solution to the cactus stack problem which may allow unification of IO tasks and CPU tasks
09:46:01Araqthat's it in a nutshell: unification of IO tasks and CPU tasks
09:57:06*Romanson quit (Quit: Connection closed for inactivity)
10:12:45*Hideki_ quit (Remote host closed the connection)
10:14:04*Hideki_ joined #nim
10:16:56*Hideki_ quit (Remote host closed the connection)
10:17:11*Hideki_ joined #nim
10:22:24*uu91 quit (Remote host closed the connection)
10:29:25Araqaww nobody cheers for https://github.com/nim-lang/Nim/pull/12977
10:29:25disbot--exception:goto switch for deterministic exception handling
10:29:27*krux02 joined #nim
10:30:48*krux02 quit (Client Quit)
10:33:59FromGitter<mratsim> Our main issue at Status is the cost of stacktraces not the cost of exceptions
10:35:18Araqwith --gc:arc the implicit 'try finallys' around destructors surely are expensive :P
10:36:28FromGitter<sheerluck> Personally I am waiting for the lib/pure/distros.nim
10:38:53Araqdistros.nim actually worked fine until a contributor broke it and we didn't notice :-(
10:39:11Araqgood old "hey, it works on my machine"
10:47:48*uu91 joined #nim
10:50:48*narimiran joined #nim
10:51:02*marmotini_ joined #nim
11:02:49*belamenso joined #nim
11:07:45FromGitter<bung87> can I detect a object has method in template? if dont have that method call other object method
11:08:33FromGitter<mratsim> when compiles(method(Obj))?
11:08:52FromGitter<mratsim> but this is done at compile time
11:09:02FromGitter<mratsim> if you want runtime dispatch just use a method
11:09:27FromGitter<bung87> let me try it
11:11:18*marmotini_ quit (Ping timeout: 260 seconds)
11:12:44*krux02 joined #nim
11:16:57FromGitter<bung87> ```code paste, see link``` ⏎ ⏎ not work [https://gitter.im/nim-lang/Nim?at=5e09dca807a1a67d1d81f877]
11:18:36*marmotini_ joined #nim
11:19:34FromGitter<mratsim> combining dot operator + when compiles + generics, you sure want to live dangerously :P
11:22:44FromGitter<bung87> yeah, otherwise I need write a.methodB = b.methodB a.methodC = c.methodC
11:23:04FromGitter<mratsim> @Araq did you use pinned tasks / distinguished thread often? I was thinking of having both a "pinned job queue" (that doubles down as a long-running job queue?) and a work-stealing queue, with a way to yield in the pinned job queue so to ease: ⏎ ⏎ 1) static scheduling with deterministic thread assignation ⏎ 2) interop with long-running jobs that might be task generators (i.e. event loop)
11:23:04FromGitter... [https://gitter.im/nim-lang/Nim?at=5e09de178ba16b107cf31da7]
11:23:22FromGitter<mratsim> see https://github.com/mratsim/weave/issues/68#issuecomment-569410844
11:23:24disbot[Performance] BLAS matmul vs Laser ; snippet at 12https://play.nim-lang.org/#ix=25Ub
11:24:01Araqmratsim: distinguished threads are a work around for a non-shared heap and I have no plans of using them ever again :-)
11:25:12FromGitter<mratsim> my main issue is that CPU-bound scheduling is already super hard and I'd rather have dom96, zielmicha or cheatfate tackle IO-bound scheduling.
11:25:41FromGitter<mratsim> adding epoll, kqueue and what not to Weave will spread it thin
11:26:25FromGitter<mratsim> so if we can reach a task primitive (a continuation?)
11:26:56FromGitter<mratsim> that both a IO/CPU runtime can resume from, and yield primitive
11:27:06FromGitter<mratsim> that would allow everyone to focus on their use cases
11:30:45Araqwith --exceptions:goto I inject C code that looks close to the beginning of a task system...
11:33:40Araqbut I still don't understand the problem well enough for a proposal nor an implementation
11:34:28FromGitter<mratsim> When I can reboot to linux and finish reaching a satisfactory speed on parallel for loop I'll port a coroutine based work-stealing scheduler to Nim
11:35:17FromGitter<mratsim> The main issue is that, IO-bound scheduling is a huge undertaking (see libuv, asyncdispatch, tokio)
11:35:45FromGitter<mratsim> CPU-bound scheduling is a huge undertaking (see Intel TBB, OpenMP, HPX or Weave already) and I'm not even talking about distributed computing
11:36:10FromGitter<mratsim> the set of skils for both is, besides concurrency and debugging non-determinism, very different
11:36:25FromGitter<mratsim> networking, OS primitives for one
11:36:40FromDiscord<Clyybber> mratsim: Btw, why do you need seperate macros for `parrallelFor` and `parallelForStrided`
11:36:41FromDiscord<Clyybber> ?
11:36:44FromGitter<mratsim> CPU, caching for the other
11:37:23FromGitter<mratsim> @clyyber, you can't overload untyped template or macros unless the untyped arguments are in the exact same positions
11:37:41FromGitter<mratsim> and in the strided case, the untyped body is not in the same place
11:37:45Araqmratsim: personally I am very tired of this "OS primitives" nonsense where you have to butcher the full language runtime to avoid the stack
11:38:30AraqI long for exokernels, the OS/App split is a legacy
11:38:38FromDiscord<Clyybber> I think its better to focus weave on CPU-bound scheduling
11:38:48FromGitter<mratsim> well OS primitives like sockets, event queues
11:39:10Araqand the lovely switches into kernel mode
11:39:34FromGitter<mratsim> did you see that I found a bug in glibc and musl condition variable?
11:39:47FromGitter<mratsim> Had to use raw linux futex instead
11:40:11FromGitter<mratsim> when you signal them they don't always wakeup
11:40:29AraqI've seen it, yes, impressive
11:42:51*sagax quit (Quit: Konversation terminated!)
11:43:01FromGitter<bung87> @mratsim oh ,it works, I just call it as property , so that doest work before
11:44:19FromGitter<bung87> that’s magic, I can simply attach more proxy object
11:49:53*dddddd joined #nim
11:50:12Araqclyybber: https://github.com/nim-lang/Nim/issues/12978
11:50:14disbotcdt, crash with --gc:arc, works fine with default gc ; snippet at 12https://play.nim-lang.org/#ix=25Uf
11:50:24Araqand others, where are the bugfixes? :P
11:55:38FromDiscord<Clyybber> family'n stuff 😛
11:58:19*krux02 quit (Remote host closed the connection)
12:00:47FromGitter<mratsim> @Clyybber, solve this and I can have parallelFor and parallelForStrided with the same name: https://github.com/nim-lang/Nim/issues/9414
12:00:48disbotTemplate overloading + identifier injection leads to undeclared identifier
12:21:43*rockcavera joined #nim
12:36:43*Trustable joined #nim
12:50:24*muffindrake quit (Remote host closed the connection)
12:50:55*muffindrake joined #nim
12:56:05Araqdisruptek, nimble install nimph fails for me
12:56:19Araq"Package not found."
12:58:04*marmotini_ quit (Remote host closed the connection)
13:04:37*ikan-keli_ joined #nim
13:04:43*curtmack quit (Quit: ERC (IRC client for Emacs 26.3))
13:05:49*endragor quit (Remote host closed the connection)
13:12:40Araqhttps://stackoverflow.com/questions/35973899/how-does-one-trap-arithmetic-overflow-errors-in-swift oh look, Swift doesn't allow catching an overflow error condition
13:13:25FromGitter<alehander92> hey
13:16:11*marmotini_ joined #nim
13:23:17*narimiran quit (Quit: leaving)
13:23:36Araqhi
13:28:49FromDiscord<mratsim> ho
13:29:33FromGitter<alehander92> oh yeah time to put my french in practice
13:29:34FromGitter<alehander92> um
13:31:10FromGitter<alehander92> ok, i really should try to limit myself to 2 languages from my duolingo, now i forgot most of my french
13:32:06skrylar[m]@sealmove spoders are not bugs. they eat bugs. 😇
13:32:48skrylar[m]@potatotot yep i had that issue with the forum too; did a password reset and cant log in.
13:41:02Araqyay npeg's tests create a 100_000 loc C file, great
13:43:13*narimiran joined #nim
13:47:00Zevvcool right
13:47:36Zevvimagine having to need to type all of that by hand
13:47:43*Kaivo joined #nim
13:49:40Araqimagine the code has an error
13:49:56Araqand your compiler produced it and it's your fault and you have to dig inside
13:50:50FromDiscord<Lantos> Sounds like a job for the intern
13:51:02Zevvgood point
13:51:13Araqdo you use computed goto?
13:51:29Zevvyes sir
13:51:52Zevvgreat stuff, the whole inner loop just evaporates
13:52:01Zevvbut it tends to break 100klines of code every now and then though
13:52:26Zevvanyhing I can do to help?
13:52:45Araq__2.Field1 = tX60gensym600811_.si;
13:52:52Araqwhat's this?
13:53:05Araqdoesn't look like output from my compiler
13:53:50Araqlook at https://ci.appveyor.com/project/dom96/nim/builds/29803990/job/5qpxvw06e9lxh7yk/tests
13:55:45*tane joined #nim
13:56:13Zevvneed to finish something up here, I'll take a peek in a minute
13:57:04FromDiscord<mratsim> I see that criterion is in there but LemonBoy archived it, maybe it needs to be forked to some place where PR and issues can be created?
13:57:27Araqyes
13:57:34FromDiscord<mratsim> I'm pretty sure Laser will also create huge C files once the compiler is used in Arraymancer 😛
13:58:03Araqgood thing you can never run out of instruction cache...
13:58:45FromDiscord<mratsim> Soon I'll be able to remove those pesky BLAS and OpenMP dependencies!
14:03:16ZevvAraq: it comes from your compiler, this is my source line: (`ip`, `si`, `ms`.retStack.top, `ms`.capStack.top, `ms`.precStack.top) = (t.ip, t.si, t.rp, t.cp, t.pp)
14:03:33Zevvit's a multiple assignment through tuples
14:03:57Zevvin a quote do
14:07:48Zevvhttps://github.com/zevv/npeg/blob/master/src/npeg/codegen.nim#L333
14:11:11FromGitter<zetashift> I used the bootstrap script to install nimph rather than through nimble
14:12:03disruptekyou might be a badass.
14:12:33disruptekmratsim: i have a criterion fork.
14:13:14disruptekgolden will be able to interpret criterion output to record "stages".
14:15:09disruptekaraq: there are installation instructions for nimph in the README.
14:15:38Araqyou don't get far in life by reading
14:17:09ZevvI think you'll find people which different opinions about that
14:17:35disruptekperhaps that's how i named nimph before discovering that a nimph already existed in nimble.
14:18:18FromGitter<alehander92> i dont like the name :O
14:18:36disruptekno?
14:18:58FromGitter<alehander92> no bonito
14:19:12disruptekwhat do you suggest?
14:19:40FromGitter<alehander92> bonito
14:21:29disruptekmake a PR and then i'll let it languish for weeks, make arbitrary and irrelevant criticism, and generally help you forget why you ever wanted to contribute in the first place.
14:23:10FromDiscord<exelotl> kero kero bonito
14:23:38FromDiscord<mratsim> numpf
14:23:52disruptekheh
14:23:56FromGitter<alehander92> mui bueno las disrupteko
14:24:26disruptekdisruptekon was a very troublesome transformer.
14:24:37FromGitter<alehander92> interrumpireko*
14:25:16FromGitter<alehander92> no seriously i think we can use names which are not nim-based
14:25:26disrupteki don't believe it.
14:25:46FromGitter<alehander92> look at all other managers, rust/cargo ruby/bundle/gem python/pip/poetry php/composer java/maven c++/<n random managers>
14:25:55FromGitter<alehander92> LOOK AT DATA
14:26:11disruptekNIMPH: Nimph; It Manages Package Hierarchies
14:26:37FromGitter<alehander92> bonito: brother, one nim installation trannnqqqquillooo oo
14:27:14muffindrakeI'm slightly confused with instantiation of tuples. Is it specifically required to put in all fields when using a constructor?
14:27:23disruptekyes.
14:27:52FromGitter<alehander92> one `l` sorry it seems this `ll` stuff is important
14:28:07FromDiscord<mratsim> python -> Anaconda -> conda, too bad 😉
14:29:12disruptekif there's a pattern to package manager names, i'm not seeing it.
14:31:44disruptekfwiw, i split nimph's git-handling code out into a little package for more rapid iteration.
14:31:49disruptek!repo gittyup
14:31:50disbothttps://github.com/disruptek/gittyup -- 9gittyup: 11comfort for nimgit2 15 0⭐ 0🍴
14:32:23disruptekit will become more nimish and you should pick it up and make lots of git tools with it.
14:32:55disruptekremember,
14:33:02disruptekhearts and minds, people; hearts and minds!
14:35:47*Hideki_ quit (Remote host closed the connection)
14:36:30*Hideki_ joined #nim
14:40:47Zevvis that a cron job?
14:40:51*Hideki_ quit (Ping timeout: 240 seconds)
14:41:24disruptekyeah, i have a bell that goes off and reminds me to remind you about hearts and minds.
14:41:30Zevvgood job!
14:43:49*Hideki_ joined #nim
14:43:59muffindrakeI'm trying to wrangle types and arrays of types, but I can't seem to get past the correct syntax. Would someone be able to put a minimal example of a definition of a tuple that contains one or more pointers to procedures (or procedural type as the manual calls it), and then create a variable that is an array of that type?
14:44:31disruptekjust post what you have to the playground and we'll fix it.
14:45:07*Hideki_ quit (Remote host closed the connection)
14:49:06*Hideki_ joined #nim
14:49:18Zevvdisruptek: fix this: https://play.nim-lang.org/#ix=25V4
14:49:35muffindrakehttps://play.nim-lang.org/#ix=25V5
14:49:40muffindrakeHere's a minimal example.
14:52:10muffindrakeWhat precisely is wrong there? Am I missing annotations that must be there?
14:53:31disrupteki don't see anything wrong.
14:53:43*Hideki_ quit (Ping timeout: 258 seconds)
14:54:01muffindrakeWell it won't compile
14:54:05muffindrakeSo there is an issue there
14:54:18disruptekuse object instead of tuple.
14:54:28narimiranit won't help, i tried
14:54:46disrupteknarimiran: lemme see.
14:54:47*marmotini_ quit (Remote host closed the connection)
14:55:05disruptekhttps://play.nim-lang.org/#ix=25V9
14:55:08disruptekworks with object.
14:55:16Araqhttps://play.nim-lang.org/#ix=25Va
14:55:33muffindrakeWhy does it not work with tuple?
14:55:37Araqclosure calling convention bites back :P
14:55:52narimiranthe fuck? i tried (1) changing to object, and (2) `{.nimcall.}`, and it didn't work
14:56:05Araq(yeah yeah, there is an RFC for improving this part of the language...)
14:57:02disruptekbecause index 1 cannot deduce that nil is a nimcall to the proc?
14:57:49FromDiscord<Clyybber> I think the issue is that the proc is global
14:58:21FromDiscord<Clyybber> Or maybe not \_/
14:58:32disruptekwell, it's not the nil.
14:59:02disruptekin a way, i guess that makes it an easier problem.
14:59:30disrupteki think the solution i want is object-constructor syntax for tuple types.
15:01:48disruptekjust stuff: typeof(dostuff) and call it good. 😉
15:03:52muffindrakeIt works if I sprinkle {.nimcall.} over all the procedure pointer fields, but it irks me a lot that this very trivial thing in C requires a _workaround_ to be written in nim
15:04:02muffindrakeIt's not even anything dangerous low level that is being attempted here
15:04:46*Hideki_ joined #nim
15:04:54*Hideki_ quit (Remote host closed the connection)
15:05:36*Hideki_ joined #nim
15:05:48*marmotini_ joined #nim
15:07:14*endragor joined #nim
15:07:30*ng0_ joined #nim
15:07:30*ng0_ quit (Changing host)
15:07:30*ng0_ joined #nim
15:07:34disruptekis the irk bad enough to make you fix the compiler?
15:07:44muffindrakeWhat
15:07:59muffindrakeI don't go out of my way to learn a new language and immediately start fixing their broken compiler
15:08:22disrupteki'm just trying to get a sense for how irksome it is.
15:08:40*ikan-keli_ quit (Ping timeout: 268 seconds)
15:08:51*dwdv quit (Ping timeout: 240 seconds)
15:09:07*ikan-keli_ joined #nim
15:09:32muffindrakeproc_ptr_field_xyz: proc (s: string, a: int): structure_boop {.nimcall.}
15:09:48muffindrakeI'd like you to imagine fields like this, over your entire screen
15:10:01muffindrakeand how much worse trying to parse them the {.nimcall.} makes them
15:10:03*marmotini_ quit (Remote host closed the connection)
15:10:24disrupteki just make types for my procs, but look...
15:10:28*Hideki_ quit (Ping timeout: 260 seconds)
15:10:29*ng0 quit (Ping timeout: 260 seconds)
15:10:34disruptekwhether you use it or not, nim doesn't owe you anything.
15:10:44disruptekit's a gift to us.
15:11:33FromGitter<alehander92> i agree that error messages should at least include some hint
15:11:42FromGitter<alehander92> i often forget how to actually workaround it
15:12:09muffindrakeI wouldn't even be here if the compiler explicitly told me 'yo, this calling convention doesn't match, fix yo code'
15:12:27disrupteki believe you'd be complaining about your entire screen.
15:12:40FromGitter<alehander92> yes, thats a good summary
15:13:19*ng0_ is now known as ng0
15:13:22FromGitter<alehander92> i am not sure i remember the rfc
15:13:45disruptek!rfc tuple calling
15:13:46disbothttps://github.com/nim-lang/RFCs/issues/1 -- 3[RFC] Better iterators syntax 7& 6 more...
15:17:41skrylar[m]@disru
15:17:51FromDiscord<Clyybber> ptek
15:17:54skrylar[m]disruptek: keeping us well stocked on hot takes i see
15:19:29disruptekdoin' the lord's work, here.
15:22:24Araqmuffindrake, most code isn't full of callbacks that are very hard to reason about anyway
15:23:22Araqand fixing the error message is almost as much work as fixing the type inference properly ;-)
15:30:02*dwdv joined #nim
15:32:39solitudesfdisruptek, `os error: could not find '/home/solitude/.gitconfig' to stat: No such file or directory` what the heck is that shit
15:40:01disruptekgot me, boss. it looks like an error thrown by libgit2.
15:40:24*Hideki_ joined #nim
15:43:13FromGitter<alehander92> guys
15:43:30FromGitter<alehander92> 2020 is coming, whats your proglang wishlist for it
15:43:50disruptekrust 2.0
15:44:45*sagax joined #nim
15:44:49muffindrakeDidn't Rust have like two users?
15:45:03*Hideki_ quit (Ping timeout: 268 seconds)
15:45:06disruptek2.3
15:45:07Zevvno that was Nim
15:45:26FromGitter<alehander92> nope its kinda popular
15:45:31solitudesfi want people to stop thinking that go is actual programming language
15:45:36FromGitter<alehander92> i expect nimz3 to take over
15:45:37disrupteklol
15:45:44FromGitter<alehander92> ohh go 2.0 would be
15:45:47FromGitter<alehander92> an interesting fit
15:45:57FromGitter<alehander92> no idea how far are they in the process
15:46:14federico3alehander92: a good concurrency model for Nim
15:46:31Zevvmratsim is almost done
15:47:11disruptekas minor projects, i'd like to fix the stdlib's http, add ryu.
15:47:59Araqfederico3, we now have a good one but no implementation :P
15:48:03Zevvso many new years resolutions.
15:49:31Araq Unhandled exception: Parsing error at #4: expected "boom" [NPegException]
15:49:33disbothttps://github.com/nim-lang/Nim/issues/4 -- 5high, len function with sequences
15:49:41AraqZevv, any idea?
15:50:19*marmotini_ joined #nim
15:51:11zedeusdisruptek: rewrite httpclient's multipartdata to support file streaming or.. something
15:51:25disrupteki thought you did that.
15:51:29zedeusi wish
15:51:48disruptek!issue author:disruptek http
15:51:49disbothttps://github.com/nim-lang/Nim/issues/12211 -- 3proposed changes to HttpHeaders as in HttpClient 7& 1 more...
15:51:53zedeusi cheated instead
15:52:07ZevvAraq: that test forcefully throws an exeption and the test expects it
15:52:30FromGitter<alehander92> i'd try to play with some of my projects next year maybe
15:52:58disruptek!repo disruptek/ndoc
15:52:59disbothttps://github.com/disruptek/ndoc -- 9ndoc: 11like pydoc but for nim 15 0⭐ 0🍴
15:53:18*d-nice2[m] quit (Quit: User has been idle for 30+ days.)
15:53:24FromGitter<alehander92> i'd love to see more mainstream dependent typing as well
15:53:40FromGitter<alehander92> to find out if its practical enough in some kind of subset
15:54:11disruptekmainstream dependent typing?
15:54:23ZevvAraq: the exception itself is ok, the "parsing error" is part of the exception message
15:55:23*macsek1911[m] quit (Quit: User has been idle for 30+ days.)
15:55:47*Balu[m] quit (Quit: User has been idle for 30+ days.)
15:57:04*marmotini_ quit (Remote host closed the connection)
15:57:06FromGitter<alehander92> maybe some form of dependent?
15:57:17*marmotini_ joined #nim
15:57:18Zevvit seems that unittests is confused, it should expect and catch this exception
15:57:32*marmotini_ quit (Read error: Connection reset by peer)
15:59:01AraqZevv, keep in mind that I'm on my new exception handling branch
15:59:20Araqso it's my fault yet I have to understand your code a bit :p
15:59:32disruptekoh snap
16:00:07Zevvsure. this is what the generated code looks like: http://ix.io/25Vt
16:00:28Zevvin the noise you see the generated proc which simply throws something right await in the first state
16:00:46disruptekdo other unittest expect statements work?
16:01:26Zevvso its basically a custom exception from a callback function
16:01:44Zevvdisruptek: afaik yes, I use that
16:01:50disruptekyou inherited?
16:01:53Zevvit *used* to anyway, until araq started breaking things
16:02:12disrupteki mean, do other unittest expect statements work in the new exception handling branch.
16:02:21Zevvah dunno
16:02:31disruptekthat's two possibilities, at least.
16:03:12Araqer...
16:03:24Araqdoes that mean I have to look inside unittest.nim?
16:03:31Araqseriously...
16:03:34disrupteklol
16:03:52AraqI don't understand why nobody understands my pain
16:04:13disrupteki was gonna absorb it into golden. then i'd understand your pain.
16:04:30disruptekbut nimterop/lmdb doesn't work on windows or osx.
16:05:14Araqha, it fails the same way without unittest
16:05:19*Miguelngel[m] quit (Quit: User has been idle for 30+ days.)
16:05:21Araqso I can ignore unittest
16:05:34disruptekdodged a bullet.
16:05:56disruptekactually, windows lacks registerProcess or something.
16:06:05federico3:-/
16:06:13disruptekyeah, it's dumb.
16:08:42*nc-x[m] quit (Quit: User has been idle for 30+ days.)
16:08:55AraqZevv, you are not catching index out of bounds errors, are you?
16:09:53federico3alehander92: also a drop-in replacement for unittest.nim
16:12:55lqdev[m]oh, you're speaking about new year's resolutions?
16:13:19*zielmicha[m]1 quit (Quit: User has been idle for 30+ days.)
16:13:30shashlickdisruptek: nice work with gittyup
16:13:35lqdev[m]I want to finish the two of my major projects the next year: rod, and Planet Overgamma
16:13:39shashlickWhy not merge it into nimgit2
16:13:48disruptekthanks, but it's terrible. that's why i broke it out.
16:13:48FromGitter<timotheecour> hi @araq I’m on a plane and for some reason github is not accessible, so I can’t file following new regression: this regression is also caused by the recent `reset` PR (system.reset is no longer magic (#12937)) (the 2nd regression i found although this one is more serious and points to what may be a bug in VM regarding moves/var variables): ⏎ ⏎ ```code paste, see link```
16:13:48FromGitter... [https://gitter.im/nim-lang/Nim?at=5e0a223c0fd3413f4c7c0679]
16:13:49disbothttps://github.com/nim-lang/Nim/pull/12937 -- 6system.reset is no longer magic
16:14:25*LEdoian[m] quit (Quit: User has been idle for 30+ days.)
16:14:25*spymasterd[m] quit (Quit: User has been idle for 30+ days.)
16:14:26disruptekwe can put it in nimgit2 if you want. but, i want to iterate quite quickly. it's not very good.
16:14:32ZevvAraq: some of them. is out of bounds special in any way?
16:14:50Araqyou cannot catch it. says the spec
16:15:05Araqand the new implementation exploits this...
16:15:34disruptektoo bad about Defect.
16:15:48Araqdunno, call me old fashioned but I expect a parser generator to produce code that can get the array indexing right
16:16:09disruptekzevv is really sensitive about that.
16:16:24Araqhow could this code ever work with -d:danger?
16:16:38disruptekmaybe you're not on 0.21.3+
16:17:14Araqtimotheecour: so report it later? not sure I understand the urgency
16:17:28FromGitter<timotheecour> k
16:18:03disruptekdude.
16:18:05disruptekhe's on a plane.
16:18:41disruptekof course it's urgent.
16:19:05ZevvAraq: sure, that's one of my pains I need to figure out before 1.0. Well formed captures should never cause an out of range, but this can happen in some cases. I have a branch that I'll merge one of these days that uses accessor functions instead
16:19:25Araqnever mind, it's something else I think
16:19:26ZevvI kept that waiting around until I have it "all figured out", but no need to wait for that
16:19:41narimirandisruptek: now i'm imagining scenes for "airplane 3", coding edition :D
16:19:42Zevvok, but still you're right
16:19:45Araqlet my captures crash, that's fine
16:20:03Zevvno way, now you'll get a fix, if you want it or not
16:20:10disruptekin araqlogic, sometimes a crash isn't a crash.
16:20:30narimiran(don't mention crashes, there are people on airplanes reading this!)
16:21:53FromGitter<timotheecour> lol
16:21:56FromDiscord<Clyybber> bb timothee
16:23:36FromDiscord<mratsim> People have internet on planes?
16:23:59FromDiscord<mratsim> In airplane mode?
16:24:00disruptekit's a series of tubes.
16:24:03Araqsure
16:24:14FromDiscord<mratsim> I have been lied to 😛
16:24:59*yglukhov[m] quit (Quit: User has been idle for 30+ days.)
16:25:59*Manny8888 left #nim ("Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days.")
16:29:42*gangstacat quit (Quit: Ĝis!)
16:34:19Araqer
16:34:45AraqI think my compiler "optimized" away the 'try' statement lol
16:35:21disruptekneat.
16:36:12disrupteka new way to `when not defined(danger):` that might slip past a macro.
16:36:48Araqyeah
16:36:56Araqdisabling this "optimization" makes it work wtf
16:37:31muffindrakeIf your airplane is inside a tube, you may want to stop bothering the aviation engineers and step out of the damn plane.
16:37:43disruptekhow do you optimize out the `raise`, too?
16:37:55disruptekdon't see how you can.
16:38:06disruptekdamn exceptions as control flow.
16:38:22disruptekmaybe you break the compile in that case.
16:39:37Araqomg
16:39:39*xomachine[m] quit (Quit: User has been idle for 30+ days.)
16:39:43Araqsuch a newbie mistake
16:39:58*endragor quit (Remote host closed the connection)
16:40:12Zevvhm how can I create a custom a `[]` for a (generic) seq type but make sure the `[]` call *inside* the proc does not recurse into itself?
16:40:27*gangstacat joined #nim
16:40:28*marmotini_ joined #nim
16:40:37Araqvia system.`[]`(a, i) and some blood and sweat
16:41:15Zevvgreat, thanks
16:41:23disrupteki think we may be past the sweat phase and deep into the blood.
16:41:49FromGitter<deech> When writing FFI bindings to C/C++ do `#define`'s need to be copied over? eg, given `#define FOO 1` can I do something like `const FOO {.header "foo.h", "FOO" .}`?
16:42:18Araqno, the compiler must know the const
16:42:20Zevvdisruptek: well, it was a 1.5 second excersise and it works
16:42:22Zevvno time to bleed
16:43:02FromGitter<deech> Araq, so it must be copied over explicitly and kept in sync with the C header, right?
16:43:27*Hideki_ joined #nim
16:44:07disruptekshashlick: see, i think i want a macro that takes the usual gittyup proc pattern and explodes it into 3-4 variants that are more nimish, raise exceptions, return a nim-result, turn a path into a repo, and so on.
16:44:26Araqdeech: yes
16:44:53leorizeAraq: I heard you've created deterministic exception handling, so what is it? :)
16:45:30AraqZevv, tests are red because of your memfiles usage, somehow
16:45:50Araqbut it's not --exceptoin:goto specific
16:45:55Araqthe rest is green :-)
16:46:06Araqimpressive, your project found 3 bugs in my new code
16:46:36Zevvsweet. Three beers for Zevv \o/
16:46:58narimiranbtw, guys, any new candidates for inclusion in important_packages.nim?
16:47:30Zevvthe out-of-bounds in npeg has been fixed as well. That was there but broke, but system.`[]` was the fix
16:47:36Araqleorize, it's simply 'if (*nimErr_) goto errorHandler'
16:48:15leorizethe C-style error handling? :P
16:48:15Araqwe also optimize it away in plenty of places (used to be buggy and optimized too much)
16:48:23FromGitter<timotheecour> @deech one way to do `const FOO` without duplicating the C code is via building nim with `-d:nimHasLibFFI` and using an auxiliary c proc that returns FOO, eg: `const FOO = FooAux()`
16:48:25Araqyeah but generated by a compiler
16:48:55Araqit's faster than setjmp, sometimes
16:49:11Araqand --gc:arc introduces dozens of try..finally statements
16:49:21Araqso it's a better fit for ARC
16:51:28leorizenice
16:51:43muffindrakeThe httpclient module says it wants you to compile the program with -d:ssl in order to have the tls library linked. Where would I add that to my .nimble file?
16:52:08ZevvAraq: how does the goto work with js then?
16:52:17disruptekyou don't; use project.nim.cfg instead.
16:52:24disruptek--define:ssl within
16:52:24leorizeor config.nims
16:52:28disruptekshhh
16:53:09leorizedisruptek: can nimph do config.nims? :)
16:53:15disruptekssshhhhhh
16:53:40disrupteknimph doesn't care about ssl.
16:53:55FromGitter<alehander92> wow planes
16:54:06FromGitter<alehander92> such connection
16:59:38*marmotini_ quit (Remote host closed the connection)
16:59:50*marmotini_ joined #nim
17:06:47*isaac[m]1 quit (Quit: User has been idle for 30+ days.)
17:09:19FromGitter<timotheecour> pff, not really, github doesn’t work :((
17:10:03*Hideki_ quit (Ping timeout: 260 seconds)
17:12:09leorizebelamenso: I've just fixed alaviss/nim.nvim#24 :)
17:12:31leorizethis does means that you'll have to rebase your PR, sorry for the inconvienence
17:12:40FromGitter<timotheecour> @araq could we move `since` from system/inclrtl to system.nim ? (ya i know, code bloat, but IMO that belongs there) ; I just found a new regression that this would fix: `nim js main.nim` used to work but now fails with `Error: invalid pragma: since: (1, 1)`; with simply: ⏎ ⏎ ```import std/strtabs``` ⏎ ⏎ likewise with other similar cases [https://gitter.im/nim-lang/Nim?at=5e0a3008eac8d1511e8470df]
17:14:31leorizebelamenso: thanks for your help though :)
17:19:23shashlickdisruptek: maybe iterate on gittyup for now and merge into nimgit2 when you are happy
17:19:34shashlickI can make you an owner as well
17:19:57disruptekit needs people with good ideas and strong opinions. 😁
17:20:31shashlickI know a guy
17:20:50disruptekhe sounds hot.
17:21:27*Hideki_ joined #nim
17:22:20muffindrakeWas there a reason the type of the status code in the response type in httpclient was chosen to be 'string'?
17:22:47disruptekthere's a code accessor that yields an int.
17:22:49*Hideki_ quit (Remote host closed the connection)
17:23:07muffindrakeD'oh. Thanks.
17:23:50*Kaivo quit (Quit: WeeChat 2.6)
17:24:29muffindrakeThe standard library implementation of httpclient seems to manually access the reponse status field and use 'startsWith' on it instead, though.
17:24:30disruptekAraq: is there a workaround for writing #12945 in 1.0?
17:24:32disbothttps://github.com/nim-lang/Nim/issues/12945 -- 5mutable iterator cannot yield named tuples ; snippet at 12https://play.nim-lang.org/#ix=25VT
17:24:44*Hideki_ joined #nim
17:25:08*Connor[m] left #nim ("Kicked by @appservice-irc:matrix.org : User has been idle for 30+ days.")
17:26:52*TheManiac[m] quit (Quit: User has been idle for 30+ days.)
17:27:38*leorize quit (Quit: WeeChat 2.6)
17:29:16*Hideki_ quit (Ping timeout: 268 seconds)
17:30:30disruptekissue #11081 crashes on gc:arc
17:30:31disbothttps://github.com/nim-lang/Nim/issues/11081 -- 3DateTime field on Exception produces inconsistent C/++ handling ; snippet at 12https://play.nim-lang.org/#ix=20PX
17:30:44disruptekduring compilation, i mean.
17:33:30disruptekand a codegen error with cpp --noCppExceptions
17:33:42disruptekit's, like, four bugs in one.
17:34:57disruptekfour more beers for zevv.
17:43:48*lasso[m] quit (Quit: User has been idle for 30+ days.)
17:58:56*Hideki_ joined #nim
18:11:33Zevvno, these were not bugs with my code
18:18:40*Vladar joined #nim
18:21:43*Hideki_ quit (Ping timeout: 265 seconds)
18:23:17Araqhttps://mlir.llvm.org/ new stuff for LLVM
18:23:54disruptekwhoa.
18:33:53Araqit's the old "X is too hard so let's focus on Y which is more generic" approach
18:34:27Zevvsounds like me procrastinating
18:34:48Araqreplace enum values by strings so that everything is "extensible", devoid of semantics
18:35:00disrupteki have a feeling zevv has three naked yaks following him around the house right now.
18:35:04FromGitter<zetashift> huh? Is it an IR for a machine learning compiler?
18:35:15Araqand then hope you'll get a fast compiler others want to use
18:35:17disruptekit's a T1000 neural network.
18:35:20disrupteka learning computer.
18:35:33AraqI'm trolling though, I'm sure they have some good ideas
18:35:48Araqit's just their slides were not convincing to me
18:35:58Araqbut hey what do I know about compiler development
18:36:25Zevvis araq-exceptions-v2 ready for abuse yet?
18:36:42disrupteknimph fork result
18:36:46disruptekoops
18:36:53AraqZevv, yeah, I'm about to merge it
18:37:15Araqit's enabled with --gc:arc because ARC is vaporware already
18:37:26Zevvyeah I noticed
18:37:38Araqbut the bugs I have seen seem easy enough to fix
18:37:59Araqmaybe I'll skip the daily Columbo session and work on it instead
18:38:08*nixfreak quit (Ping timeout: 260 seconds)
18:38:23disruptekpeter falk lived next door to my dad.
18:38:43muffindrakehttps://nim-lang.org/docs/json.html#%7B%7D%2CJsonNode%2Cvarargs%5Bstring%5D
18:38:51disruptekapparently, he smelled like radishes.
18:39:01muffindrakeDoes this operate in an expected fashion if an intermediate object is an array?
18:39:39Araqdisruptek, yeah, right... lol
18:40:06disruptekwell, i never smelled him. third-hand sniffing.
18:40:21Zevvs/apperently/allegedly/
18:40:42AraqHE DID NOT LIVE NEXT TO YOUR DAD!
18:40:48Araqliar!
18:41:21disruptekmy dad's dad was an oscar-winning hollywood director. true story.
18:41:40Araqwhat about your mum?
18:41:51Araq<insert mum joke here>
18:41:53Araqbbl
18:47:37FromDiscord<mratsim> @Araq, I know someone in the MLIR Open Design committee. It's me! https://docs.google.com/document/d/1y_9f1AbfgcoVdJh4_aM6-BaSHvrHl8zuA5G4jv_94K8/edit#heading=h.mcumyh9icsmh (see 2019-08-01 agenda for example)
18:49:22FromGitter<zetashift> you're everywhere!
18:50:07muffindrakeNevermind my question, I can just index json arrays with {}, so it's relatively clear.
18:50:13FromGitter<alehander92> i will look at the french league and i'll see mratsim between mbappe and neymar
18:50:15FromGitter<alehander92> somewhere
18:50:31Zevvat least his dad's dad wasn't an oscar-winning hollywood director
18:50:47FromGitter<alehander92> while Araq argues with Tuchel on the coach line
18:51:06FromGitter<zetashift> "linux was a mistake!"
18:52:19FromGitter<alehander92> look at the finish national team
18:52:45FromGitter<alehander92> first time on a big championship in 202
18:52:51FromGitter<alehander92> its the year of the linux soccer!
18:58:39lqdev[m]can't wait to optimize my software with ARC™
19:02:46ZevvI have a test case where --gc:arc is running 10% faster, but also one which is 400% slower :/
19:03:56shashlickdisruptek: I liked the go versioning link you posted
19:04:05shashlickI'm on board with minimal version
19:04:18disruptekomg seriously?
19:04:31shashlickBut this is probably why I don't think Nim is ready for it yet
19:04:32disruptektoo funny.
19:04:34shashlickhttps://illicitonion.blogspot.com/2018/06/rust-minimum-versions-semver-is-lie.html?m=1
19:04:55disruptekwhat do you think of this api:
19:04:58disruptekhttps://gist.github.com/disruptek/022cbdf0090cfdba6d61c65d2947bbcd
19:05:12disruptekit's a little bit implicit, but quite clean, i think.
19:05:23shashlickHaven't read that second one fully but feels like we need a concerted effort to educate the community about minimal version and skipping lock files
19:05:33shashlickNo cure for the lazy I guess
19:05:58disruptekwell, the whole reason i capitulated is because nimble is already teaching people that there's only one operator.
19:06:03disruptekthere's not much we can do about that.
19:07:32shashlickAgreed, I'm curious how Go expects requires statements
19:07:39shashlickIs it in code or a json file
19:07:50disruptekcode.
19:08:02shashlickPlus how did they migrate people from Dep to Go modules
19:08:35shashlickDid they reuse the same requires statements
19:08:35disrupteki thought about doing it that way and supporting urls in code, but decided it is less flexible.
19:08:36disrupteki don't think we want that stuff in the compiler per se.
19:09:41*NimBot joined #nim
19:11:10disruptekthoughts on the paste?
19:14:39disruptekthe thing with minimal versions is, it's a rising tide of work that lifts all boats.
19:16:02disruptekinstead of trying to forge ahead in versions with new features and breaking functionality, you're simply elevating minimal support everywhere, as needed.
19:18:00shashlickI'm on board, just need to help the community get there
19:18:02disruptekthere are two differences i see: 1) nimph lets you easily test the minimal versions with `nimph downgrade`, and 2) requiring a certain version of the compiler succeeds where the rust example failed.
19:18:06shashlickWill bbl
19:19:09*solitudesf quit (Remote host closed the connection)
19:19:32*solitudesf joined #nim
19:20:03disrupteksolitudesf: any opinion on this? https://gist.github.com/disruptek/022cbdf0090cfdba6d61c65d2947bbcd
19:21:17lqdev[m]is {.register.} broken?
19:21:31lqdev[m]it generates `register` after the type, and not before it
19:26:59lqdev[m]which trips up gcc
19:39:51lqdev[m]is it possible to get the address of the beginning of a seq without it having any elements?
19:40:09lqdev[m]right now I'm using `x[0].unsafeAddr`, which produces a "container out of bounds" error
19:42:26lqdev[m]s/container/container index/
19:43:16*zama quit (Ping timeout: 268 seconds)
19:43:58*zama joined #nim
19:45:06lqdev[m]is the only solution to disable bounds checks?
19:49:47FromDiscord<mratsim> if it has no elements it's not allocated
19:50:16FromDiscord<mratsim> if you know it was allocated before you ca cast it to PGenericSeq and get the pointer from there
19:51:35Araqthat article is hilarious
19:51:41Araq"But it seems strange that we bother to go through all of this writing down semvers of our dependencies, only for them to frequently be lies." ... no comment
19:52:25Araqmaybe a number detached from your code has no meaning? ever thought about that? geniuses
19:56:27Araqlol my recent bugfixes made --gc:arc way more unstable than it used to be...
19:59:29disruptekcongrats on arc v2.0.0
20:00:04disruptekbut seriously, we don't need semver.
20:00:18disrupteknimph will support saying things like ">= #someNiceTag"
20:00:55Araqit's a battle we won't win, it's like telling programmers that using a mouse really does make you more productive
20:01:03disrupteklol
20:01:12disrupteki gave up the mouse; now i just use symlinks.
20:03:22FromDiscord<Generic> I have a friend who once suggested graphics programs could be made so much more productive if they could be run from a command line
20:03:42FromDiscord<Generic> like 3d modelling
20:03:55skrylar[m]wot
20:04:33skrylar[m]admittedly i do like when things have a healthy cli available to them
20:05:00FromDiscord<Generic> haha, I use even for git a gui
20:05:20skrylar[m]magit is nice
20:05:46FromDiscord<Generic> never heard of it, I used to use kraken git
20:05:57FromDiscord<Generic> I knew it was commercial
20:06:15FromDiscord<Generic> but I thought it wasn't nice what they did
20:06:29FromDiscord<Generic> using me as a free beta tester
20:06:35FromDiscord<Generic> to then scare me off
20:07:00FromDiscord<Generic> now I'm using tortoise git
20:07:05FromDiscord<Generic> and find it better
20:07:40skrylar[m]i left a growing project because they did something like that
20:07:56skrylar[m]license changed at the last minute, and the bdfl is a prick
20:08:12skrylar[m]tells people to stop maintaining things so he can rewrite and sell the exact same thing
20:08:25FromDiscord<Generic> ah, sounds like a terrible story
20:09:00disruptekhey, selling that software kept me in coffee for 8 months.
20:09:07disruptekdon't judge me.
20:09:58FromDiscord<Generic> which one?
20:10:06FromDiscord<Generic> gitkraken?
20:22:29ZevvAraq: if I have a specific workload which runs 500% slower with --gc:arc, what would be the first place to look?
20:22:48disruptek`nim --fullhelp` shoulds several other gc options.
20:23:17Zevvsinks and lents is the way to go?
20:24:22disruptekchutes and ladders is the future, regardless of today's performance.
20:32:47FromGitter<deech> How do I use `choosenim` to build Nim docs locally? This isn't for any particular Nimble docs, just want compiler and std lib docs.
20:52:32*leorize joined #nim
20:57:38*narimiran quit (Ping timeout: 240 seconds)
21:02:26FromDiscord<Lantos> just use ``choosenim devel``
21:02:40FromDiscord<Lantos> or ``choosenim stable``
21:08:41*xet7 quit (Remote host closed the connection)
21:09:38*xet7 joined #nim
21:10:24*Trustable quit (Remote host closed the connection)
21:11:02*marmotini_ quit (Remote host closed the connection)
21:11:48*Trustable joined #nim
21:33:23*Vladar quit (Quit: Leaving)
21:34:08*leorize quit (Quit: WeeChat 2.6)
21:40:33disruptekAraq: Error: invalid package name: /home/adavidoff/git/nimph/deps/pkgs/gittyup-#head/deps/pkgs/nimgit2-0.1.1
21:41:20*belamenso quit (Ping timeout: 265 seconds)
21:48:51FromGitter<phillvancejr> Is there a way to emit code inside the main function? I want to use emit to write nsautorelease pool and drain for objective c code without having to wrap it.
21:52:30disruptekAraq: also, seems that arc is breaking nre.
22:00:50rockcaveraI have a curious case that I could not repeat the problem out of my code. I have a code where I open a thread. This thread executes a procedure that receives a seq[Int128] as the return value. So far so good. However, I wanted to do a test and changed the code to send the seq[Int128] already allocated with newSeqOfCap, in trhread, as a parameter and annotated as var seq[Int128] in the procedure,
22:00:51rockcaveraso that it can be modified in the procedure. It happens that when the thread ends the allocated memory is not returned. Is there any other problem with the GC not returning memory allocated with newSeqOfCap?
22:01:22rockcaveraI am using StInt package for Int128
22:04:46rockcaveraI tried to reproduce the problem out of my code like this: https://pastebin.com/p9HWPfg5, but couldn't
22:08:34rockcaveraThe code looks like this: https://pastebin.com/1s8dwd1r, no problem returning memory.
22:08:59rockcaveraRemembering that these two codes are pseudocodes that try to reproduce the problem.
22:18:36*Hideki_ joined #nim
22:22:03FromDiscord<mratsim> we do have issue with the GC hogging memory, but AFAIK no one checked on thread end
22:22:59*Hideki_ quit (Ping timeout: 258 seconds)
22:25:16FromGitter<aboisvert> @Araq looks like `deepCopy()` is not available with `--gc:arc`, is that temporary? is it planned to have it later?
22:28:42FromDiscord<mratsim> the goal of gc:arc is to avoid useless and slow copies. This is the first step 😄
22:29:13*qwertfisch quit (Quit: ZNC - http://znc.in)
22:30:05*qwertfisch joined #nim
22:32:09skrylar[m]that may not be the only reason someone needs a deep copy :wink:
22:35:33shashlick@deech just use koch docs
22:44:18*solitudesf quit (Ping timeout: 260 seconds)
22:53:35FromGitter<adammflax> I have a module with a new object type, is there a way to force people to initalise it using a init method rather then via new(Foo) or foo(data here)? I can make the type opaque however that means other modules cannot use the type as a parameter
22:58:11AraqZevv, benchmark it...
22:58:28Araqand yeah, 5x slowdowns definitely are bugs
22:59:26AraqZevv, do you use .shallow?
22:59:32Araqbecause arc ignores it :P
23:01:27Araqaboisvert: deepcopy could be supported, eventually.
23:01:56Araqfor now I'm busy with new+finalizer support as that's more common than I thought :P
23:02:42rockcaveramratsim thanks
23:05:15*belamenso joined #nim
23:06:38shashlickAraq: how do I print a full PNode tree like in macros
23:06:42kahiruperhaps a silly question, but what would be the best way to grow a seq? Adding zeroes to the end doesn't feel right
23:07:29shashlickI found debug() in astalgo but it prints it in json and I was hoping for something similar to dumpAstGen
23:09:45*belamenso quit (Ping timeout: 258 seconds)
23:13:37FromGitter<phillvancejr> I keep getting token expected: ; when using c2nim or nimgen, any ideas?
23:15:29shashlick@phillvancejr - share some output? paste please
23:18:05FromGitter<phillvancejr> ```code paste, see link``` ⏎ ⏎ running this on a copy of objc/message.h on macOs [https://gitter.im/nim-lang/Nim?at=5e0a85aceac8d1511e86a36c]
23:20:21shashlicksorry I don't have osx
23:20:30shashlickc2nim probably doesn't like something in that file
23:21:21FromGitter<phillvancejr> thanks for trying :)
23:21:45shashlickmaybe run the preprocessor on it first?
23:21:58shashlickif it is a preprocessor thing that's throwing c2nim off
23:22:18FromGitter<phillvancejr> I tried with gcc -E but it doesn't matter, I get the same error, just on a different line
23:23:43FromDiscord<mratsim> any idea why when nimsuggest is running 100%, anything I do multithreaded is slower than sequential even though I have 17 other cores? Could there be some weird interaction in some nimrt.dll?
23:26:04shashlickif it is pure C, maybe try with nimterop
23:28:09FromDiscord<mratsim> @Clyybber I give up on Weave / matmul improvements, the no backoff version is already at the speed of OpenMP based Laser and the Backoff version is decent and trying to spin loop before backing off brought down perf.
23:28:09FromDiscord<mratsim>
23:28:09FromDiscord<mratsim> If I reach the same perf as Intel MKL single-threaded (200 GFlops), even with backoff Weave current speedup is already 15.625 of 18 cores and so the total would be 3.1 TFlops
23:28:42FromDiscord<mratsim> I'd rather work on composability and then porting Laser/Arraymancer to Weave so that @brentp OpenMP woas are solved for good
23:28:45FromDiscord<mratsim> woes*
23:29:05*leorize joined #nim
23:29:23FromDiscord<mratsim> composability as in my sync() barrier is still not nestable so it can't be called within a parallel for loop :/
23:32:56FromDiscord<mratsim> @Araq I suppose there is no way for a {.discardable.} to know if it will be assigned right?
23:34:56skrylar[m]i would be surprised if there was
23:44:39*Trustable quit (Remote host closed the connection)
23:47:00*matic quit (Quit: Leaving)
23:53:22*Hideki_ joined #nim