00:11:21 | * | tane quit (Quit: Leaving) |
00:37:44 | * | Hideki_ joined #nim |
00:42:15 | * | Hideki_ quit (Ping timeout: 268 seconds) |
01:44:39 | FromGitter | <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:13 | FromDiscord | <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:00 | Araq | http://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:08 | FromDiscord | <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:47 | FromGitter | <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:19 | FromGitter | <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:01 | FromGitter | <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:06 | FromGitter | <mratsim> My overhead per task is 256 bytes not 1kB |
09:43:34 | FromGitter | <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:01 | Araq | that'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:25 | Araq | aww nobody cheers for https://github.com/nim-lang/Nim/pull/12977 |
10:29:25 | disbot | ➥ --exception:goto switch for deterministic exception handling |
10:29:27 | * | krux02 joined #nim |
10:30:48 | * | krux02 quit (Client Quit) |
10:33:59 | FromGitter | <mratsim> Our main issue at Status is the cost of stacktraces not the cost of exceptions |
10:35:18 | Araq | with --gc:arc the implicit 'try finallys' around destructors surely are expensive :P |
10:36:28 | FromGitter | <sheerluck> Personally I am waiting for the lib/pure/distros.nim |
10:38:53 | Araq | distros.nim actually worked fine until a contributor broke it and we didn't notice :-( |
10:39:11 | Araq | good 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:45 | FromGitter | <bung87> can I detect a object has method in template? if dont have that method call other object method |
11:08:33 | FromGitter | <mratsim> when compiles(method(Obj))? |
11:08:52 | FromGitter | <mratsim> but this is done at compile time |
11:09:02 | FromGitter | <mratsim> if you want runtime dispatch just use a method |
11:09:27 | FromGitter | <bung87> let me try it |
11:11:18 | * | marmotini_ quit (Ping timeout: 260 seconds) |
11:12:44 | * | krux02 joined #nim |
11:16:57 | FromGitter | <bung87> ```code paste, see link``` ⏎ ⏎ not work [https://gitter.im/nim-lang/Nim?at=5e09dca807a1a67d1d81f877] |
11:18:36 | * | marmotini_ joined #nim |
11:19:34 | FromGitter | <mratsim> combining dot operator + when compiles + generics, you sure want to live dangerously :P |
11:22:44 | FromGitter | <bung87> yeah, otherwise I need write a.methodB = b.methodB a.methodC = c.methodC |
11:23:04 | FromGitter | <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:04 | FromGitter | ... [https://gitter.im/nim-lang/Nim?at=5e09de178ba16b107cf31da7] |
11:23:22 | FromGitter | <mratsim> see https://github.com/mratsim/weave/issues/68#issuecomment-569410844 |
11:23:24 | disbot | ➥ [Performance] BLAS matmul vs Laser ; snippet at 12https://play.nim-lang.org/#ix=25Ub |
11:24:01 | Araq | mratsim: distinguished threads are a work around for a non-shared heap and I have no plans of using them ever again :-) |
11:25:12 | FromGitter | <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:41 | FromGitter | <mratsim> adding epoll, kqueue and what not to Weave will spread it thin |
11:26:25 | FromGitter | <mratsim> so if we can reach a task primitive (a continuation?) |
11:26:56 | FromGitter | <mratsim> that both a IO/CPU runtime can resume from, and yield primitive |
11:27:06 | FromGitter | <mratsim> that would allow everyone to focus on their use cases |
11:30:45 | Araq | with --exceptions:goto I inject C code that looks close to the beginning of a task system... |
11:33:40 | Araq | but I still don't understand the problem well enough for a proposal nor an implementation |
11:34:28 | FromGitter | <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:17 | FromGitter | <mratsim> The main issue is that, IO-bound scheduling is a huge undertaking (see libuv, asyncdispatch, tokio) |
11:35:45 | FromGitter | <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:10 | FromGitter | <mratsim> the set of skils for both is, besides concurrency and debugging non-determinism, very different |
11:36:25 | FromGitter | <mratsim> networking, OS primitives for one |
11:36:40 | FromDiscord | <Clyybber> mratsim: Btw, why do you need seperate macros for `parrallelFor` and `parallelForStrided` |
11:36:41 | FromDiscord | <Clyybber> ? |
11:36:44 | FromGitter | <mratsim> CPU, caching for the other |
11:37:23 | FromGitter | <mratsim> @clyyber, you can't overload untyped template or macros unless the untyped arguments are in the exact same positions |
11:37:41 | FromGitter | <mratsim> and in the strided case, the untyped body is not in the same place |
11:37:45 | Araq | mratsim: 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:30 | Araq | I long for exokernels, the OS/App split is a legacy |
11:38:38 | FromDiscord | <Clyybber> I think its better to focus weave on CPU-bound scheduling |
11:38:48 | FromGitter | <mratsim> well OS primitives like sockets, event queues |
11:39:10 | Araq | and the lovely switches into kernel mode |
11:39:34 | FromGitter | <mratsim> did you see that I found a bug in glibc and musl condition variable? |
11:39:47 | FromGitter | <mratsim> Had to use raw linux futex instead |
11:40:11 | FromGitter | <mratsim> when you signal them they don't always wakeup |
11:40:29 | Araq | I've seen it, yes, impressive |
11:42:51 | * | sagax quit (Quit: Konversation terminated!) |
11:43:01 | FromGitter | <bung87> @mratsim oh ,it works, I just call it as property , so that doest work before |
11:44:19 | FromGitter | <bung87> that’s magic, I can simply attach more proxy object |
11:49:53 | * | dddddd joined #nim |
11:50:12 | Araq | clyybber: https://github.com/nim-lang/Nim/issues/12978 |
11:50:14 | disbot | ➥ cdt, crash with --gc:arc, works fine with default gc ; snippet at 12https://play.nim-lang.org/#ix=25Uf |
11:50:24 | Araq | and others, where are the bugfixes? :P |
11:55:38 | FromDiscord | <Clyybber> family'n stuff 😛 |
11:58:19 | * | krux02 quit (Remote host closed the connection) |
12:00:47 | FromGitter | <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:48 | disbot | ➥ Template 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:05 | Araq | disruptek, nimble install nimph fails for me |
12:56:19 | Araq | "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:40 | Araq | https://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:25 | FromGitter | <alehander92> hey |
13:16:11 | * | marmotini_ joined #nim |
13:23:17 | * | narimiran quit (Quit: leaving) |
13:23:36 | Araq | hi |
13:28:49 | FromDiscord | <mratsim> ho |
13:29:33 | FromGitter | <alehander92> oh yeah time to put my french in practice |
13:29:34 | FromGitter | <alehander92> um |
13:31:10 | FromGitter | <alehander92> ok, i really should try to limit myself to 2 languages from my duolingo, now i forgot most of my french |
13:32:06 | skrylar[m] | @sealmove spoders are not bugs. they eat bugs. 😇 |
13:32:48 | skrylar[m] | @potatotot yep i had that issue with the forum too; did a password reset and cant log in. |
13:41:02 | Araq | yay npeg's tests create a 100_000 loc C file, great |
13:43:13 | * | narimiran joined #nim |
13:47:00 | Zevv | cool right |
13:47:36 | Zevv | imagine having to need to type all of that by hand |
13:47:43 | * | Kaivo joined #nim |
13:49:40 | Araq | imagine the code has an error |
13:49:56 | Araq | and your compiler produced it and it's your fault and you have to dig inside |
13:50:50 | FromDiscord | <Lantos> Sounds like a job for the intern |
13:51:02 | Zevv | good point |
13:51:13 | Araq | do you use computed goto? |
13:51:29 | Zevv | yes sir |
13:51:52 | Zevv | great stuff, the whole inner loop just evaporates |
13:52:01 | Zevv | but it tends to break 100klines of code every now and then though |
13:52:26 | Zevv | anyhing I can do to help? |
13:52:45 | Araq | __2.Field1 = tX60gensym600811_.si; |
13:52:52 | Araq | what's this? |
13:53:05 | Araq | doesn't look like output from my compiler |
13:53:50 | Araq | look at https://ci.appveyor.com/project/dom96/nim/builds/29803990/job/5qpxvw06e9lxh7yk/tests |
13:55:45 | * | tane joined #nim |
13:56:13 | Zevv | need to finish something up here, I'll take a peek in a minute |
13:57:04 | FromDiscord | <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:27 | Araq | yes |
13:57:34 | FromDiscord | <mratsim> I'm pretty sure Laser will also create huge C files once the compiler is used in Arraymancer 😛 |
13:58:03 | Araq | good thing you can never run out of instruction cache... |
13:58:45 | FromDiscord | <mratsim> Soon I'll be able to remove those pesky BLAS and OpenMP dependencies! |
14:03:16 | Zevv | Araq: 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:33 | Zevv | it's a multiple assignment through tuples |
14:03:57 | Zevv | in a quote do |
14:07:48 | Zevv | https://github.com/zevv/npeg/blob/master/src/npeg/codegen.nim#L333 |
14:11:11 | FromGitter | <zetashift> I used the bootstrap script to install nimph rather than through nimble |
14:12:03 | disruptek | you might be a badass. |
14:12:33 | disruptek | mratsim: i have a criterion fork. |
14:13:14 | disruptek | golden will be able to interpret criterion output to record "stages". |
14:15:09 | disruptek | araq: there are installation instructions for nimph in the README. |
14:15:38 | Araq | you don't get far in life by reading |
14:17:09 | Zevv | I think you'll find people which different opinions about that |
14:17:35 | disruptek | perhaps that's how i named nimph before discovering that a nimph already existed in nimble. |
14:18:18 | FromGitter | <alehander92> i dont like the name :O |
14:18:36 | disruptek | no? |
14:18:58 | FromGitter | <alehander92> no bonito |
14:19:12 | disruptek | what do you suggest? |
14:19:40 | FromGitter | <alehander92> bonito |
14:21:29 | disruptek | make 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:10 | FromDiscord | <exelotl> kero kero bonito |
14:23:38 | FromDiscord | <mratsim> numpf |
14:23:52 | disruptek | heh |
14:23:56 | FromGitter | <alehander92> mui bueno las disrupteko |
14:24:26 | disruptek | disruptekon was a very troublesome transformer. |
14:24:37 | FromGitter | <alehander92> interrumpireko* |
14:25:16 | FromGitter | <alehander92> no seriously i think we can use names which are not nim-based |
14:25:26 | disruptek | i don't believe it. |
14:25:46 | FromGitter | <alehander92> look at all other managers, rust/cargo ruby/bundle/gem python/pip/poetry php/composer java/maven c++/<n random managers> |
14:25:55 | FromGitter | <alehander92> LOOK AT DATA |
14:26:11 | disruptek | NIMPH: Nimph; It Manages Package Hierarchies |
14:26:37 | FromGitter | <alehander92> bonito: brother, one nim installation trannnqqqquillooo oo |
14:27:14 | muffindrake | I'm slightly confused with instantiation of tuples. Is it specifically required to put in all fields when using a constructor? |
14:27:23 | disruptek | yes. |
14:27:52 | FromGitter | <alehander92> one `l` sorry it seems this `ll` stuff is important |
14:28:07 | FromDiscord | <mratsim> python -> Anaconda -> conda, too bad 😉 |
14:29:12 | disruptek | if there's a pattern to package manager names, i'm not seeing it. |
14:31:44 | disruptek | fwiw, i split nimph's git-handling code out into a little package for more rapid iteration. |
14:31:49 | disruptek | !repo gittyup |
14:31:50 | disbot | https://github.com/disruptek/gittyup -- 9gittyup: 11comfort for nimgit2 15 0⭐ 0🍴 |
14:32:23 | disruptek | it will become more nimish and you should pick it up and make lots of git tools with it. |
14:32:55 | disruptek | remember, |
14:33:02 | disruptek | hearts and minds, people; hearts and minds! |
14:35:47 | * | Hideki_ quit (Remote host closed the connection) |
14:36:30 | * | Hideki_ joined #nim |
14:40:47 | Zevv | is that a cron job? |
14:40:51 | * | Hideki_ quit (Ping timeout: 240 seconds) |
14:41:24 | disruptek | yeah, i have a bell that goes off and reminds me to remind you about hearts and minds. |
14:41:30 | Zevv | good job! |
14:43:49 | * | Hideki_ joined #nim |
14:43:59 | muffindrake | I'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:31 | disruptek | just 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:18 | Zevv | disruptek: fix this: https://play.nim-lang.org/#ix=25V4 |
14:49:35 | muffindrake | https://play.nim-lang.org/#ix=25V5 |
14:49:40 | muffindrake | Here's a minimal example. |
14:52:10 | muffindrake | What precisely is wrong there? Am I missing annotations that must be there? |
14:53:31 | disruptek | i don't see anything wrong. |
14:53:43 | * | Hideki_ quit (Ping timeout: 258 seconds) |
14:54:01 | muffindrake | Well it won't compile |
14:54:05 | muffindrake | So there is an issue there |
14:54:18 | disruptek | use object instead of tuple. |
14:54:28 | narimiran | it won't help, i tried |
14:54:46 | disruptek | narimiran: lemme see. |
14:54:47 | * | marmotini_ quit (Remote host closed the connection) |
14:55:05 | disruptek | https://play.nim-lang.org/#ix=25V9 |
14:55:08 | disruptek | works with object. |
14:55:16 | Araq | https://play.nim-lang.org/#ix=25Va |
14:55:33 | muffindrake | Why does it not work with tuple? |
14:55:37 | Araq | closure calling convention bites back :P |
14:55:52 | narimiran | the fuck? i tried (1) changing to object, and (2) `{.nimcall.}`, and it didn't work |
14:56:05 | Araq | (yeah yeah, there is an RFC for improving this part of the language...) |
14:57:02 | disruptek | because index 1 cannot deduce that nil is a nimcall to the proc? |
14:57:49 | FromDiscord | <Clyybber> I think the issue is that the proc is global |
14:58:21 | FromDiscord | <Clyybber> Or maybe not \_/ |
14:58:32 | disruptek | well, it's not the nil. |
14:59:02 | disruptek | in a way, i guess that makes it an easier problem. |
14:59:30 | disruptek | i think the solution i want is object-constructor syntax for tuple types. |
15:01:48 | disruptek | just stuff: typeof(dostuff) and call it good. 😉 |
15:03:52 | muffindrake | It 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:02 | muffindrake | It'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:34 | disruptek | is the irk bad enough to make you fix the compiler? |
15:07:44 | muffindrake | What |
15:07:59 | muffindrake | I don't go out of my way to learn a new language and immediately start fixing their broken compiler |
15:08:22 | disruptek | i'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:32 | muffindrake | proc_ptr_field_xyz: proc (s: string, a: int): structure_boop {.nimcall.} |
15:09:48 | muffindrake | I'd like you to imagine fields like this, over your entire screen |
15:10:01 | muffindrake | and how much worse trying to parse them the {.nimcall.} makes them |
15:10:03 | * | marmotini_ quit (Remote host closed the connection) |
15:10:24 | disruptek | i 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:34 | disruptek | whether you use it or not, nim doesn't owe you anything. |
15:10:44 | disruptek | it's a gift to us. |
15:11:33 | FromGitter | <alehander92> i agree that error messages should at least include some hint |
15:11:42 | FromGitter | <alehander92> i often forget how to actually workaround it |
15:12:09 | muffindrake | I wouldn't even be here if the compiler explicitly told me 'yo, this calling convention doesn't match, fix yo code' |
15:12:27 | disruptek | i believe you'd be complaining about your entire screen. |
15:12:40 | FromGitter | <alehander92> yes, thats a good summary |
15:13:19 | * | ng0_ is now known as ng0 |
15:13:22 | FromGitter | <alehander92> i am not sure i remember the rfc |
15:13:45 | disruptek | !rfc tuple calling |
15:13:46 | disbot | https://github.com/nim-lang/RFCs/issues/1 -- 3[RFC] Better iterators syntax 7& 6 more... |
15:17:41 | skrylar[m] | @disru |
15:17:51 | FromDiscord | <Clyybber> ptek |
15:17:54 | skrylar[m] | disruptek: keeping us well stocked on hot takes i see |
15:19:29 | disruptek | doin' the lord's work, here. |
15:22:24 | Araq | muffindrake, most code isn't full of callbacks that are very hard to reason about anyway |
15:23:22 | Araq | and fixing the error message is almost as much work as fixing the type inference properly ;-) |
15:30:02 | * | dwdv joined #nim |
15:32:39 | solitudesf | disruptek, `os error: could not find '/home/solitude/.gitconfig' to stat: No such file or directory` what the heck is that shit |
15:40:01 | disruptek | got me, boss. it looks like an error thrown by libgit2. |
15:40:24 | * | Hideki_ joined #nim |
15:43:13 | FromGitter | <alehander92> guys |
15:43:30 | FromGitter | <alehander92> 2020 is coming, whats your proglang wishlist for it |
15:43:50 | disruptek | rust 2.0 |
15:44:45 | * | sagax joined #nim |
15:44:49 | muffindrake | Didn't Rust have like two users? |
15:45:03 | * | Hideki_ quit (Ping timeout: 268 seconds) |
15:45:06 | disruptek | 2.3 |
15:45:07 | Zevv | no that was Nim |
15:45:26 | FromGitter | <alehander92> nope its kinda popular |
15:45:31 | solitudesf | i want people to stop thinking that go is actual programming language |
15:45:36 | FromGitter | <alehander92> i expect nimz3 to take over |
15:45:37 | disruptek | lol |
15:45:44 | FromGitter | <alehander92> ohh go 2.0 would be |
15:45:47 | FromGitter | <alehander92> an interesting fit |
15:45:57 | FromGitter | <alehander92> no idea how far are they in the process |
15:46:14 | federico3 | alehander92: a good concurrency model for Nim |
15:46:31 | Zevv | mratsim is almost done |
15:47:11 | disruptek | as minor projects, i'd like to fix the stdlib's http, add ryu. |
15:47:59 | Araq | federico3, we now have a good one but no implementation :P |
15:48:03 | Zevv | so many new years resolutions. |
15:49:31 | Araq | Unhandled exception: Parsing error at #4: expected "boom" [NPegException] |
15:49:33 | disbot | https://github.com/nim-lang/Nim/issues/4 -- 5high, len function with sequences |
15:49:41 | Araq | Zevv, any idea? |
15:50:19 | * | marmotini_ joined #nim |
15:51:11 | zedeus | disruptek: rewrite httpclient's multipartdata to support file streaming or.. something |
15:51:25 | disruptek | i thought you did that. |
15:51:29 | zedeus | i wish |
15:51:48 | disruptek | !issue author:disruptek http |
15:51:49 | disbot | https://github.com/nim-lang/Nim/issues/12211 -- 3proposed changes to HttpHeaders as in HttpClient 7& 1 more... |
15:51:53 | zedeus | i cheated instead |
15:52:07 | Zevv | Araq: that test forcefully throws an exeption and the test expects it |
15:52:30 | FromGitter | <alehander92> i'd try to play with some of my projects next year maybe |
15:52:58 | disruptek | !repo disruptek/ndoc |
15:52:59 | disbot | https://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:24 | FromGitter | <alehander92> i'd love to see more mainstream dependent typing as well |
15:53:40 | FromGitter | <alehander92> to find out if its practical enough in some kind of subset |
15:54:11 | disruptek | mainstream dependent typing? |
15:54:23 | Zevv | Araq: 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:06 | FromGitter | <alehander92> maybe some form of dependent? |
15:57:17 | * | marmotini_ joined #nim |
15:57:18 | Zevv | it 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:01 | Araq | Zevv, keep in mind that I'm on my new exception handling branch |
15:59:20 | Araq | so it's my fault yet I have to understand your code a bit :p |
15:59:32 | disruptek | oh snap |
16:00:07 | Zevv | sure. this is what the generated code looks like: http://ix.io/25Vt |
16:00:28 | Zevv | in the noise you see the generated proc which simply throws something right await in the first state |
16:00:46 | disruptek | do other unittest expect statements work? |
16:01:26 | Zevv | so its basically a custom exception from a callback function |
16:01:44 | Zevv | disruptek: afaik yes, I use that |
16:01:50 | disruptek | you inherited? |
16:01:53 | Zevv | it *used* to anyway, until araq started breaking things |
16:02:12 | disruptek | i mean, do other unittest expect statements work in the new exception handling branch. |
16:02:21 | Zevv | ah dunno |
16:02:31 | disruptek | that's two possibilities, at least. |
16:03:12 | Araq | er... |
16:03:24 | Araq | does that mean I have to look inside unittest.nim? |
16:03:31 | Araq | seriously... |
16:03:34 | disruptek | lol |
16:03:52 | Araq | I don't understand why nobody understands my pain |
16:04:13 | disruptek | i was gonna absorb it into golden. then i'd understand your pain. |
16:04:30 | disruptek | but nimterop/lmdb doesn't work on windows or osx. |
16:05:14 | Araq | ha, it fails the same way without unittest |
16:05:19 | * | Miguelngel[m] quit (Quit: User has been idle for 30+ days.) |
16:05:21 | Araq | so I can ignore unittest |
16:05:34 | disruptek | dodged a bullet. |
16:05:56 | disruptek | actually, windows lacks registerProcess or something. |
16:06:05 | federico3 | :-/ |
16:06:13 | disruptek | yeah, it's dumb. |
16:08:42 | * | nc-x[m] quit (Quit: User has been idle for 30+ days.) |
16:08:55 | Araq | Zevv, you are not catching index out of bounds errors, are you? |
16:09:53 | federico3 | alehander92: also a drop-in replacement for unittest.nim |
16:12:55 | lqdev[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:30 | shashlick | disruptek: nice work with gittyup |
16:13:35 | lqdev[m] | I want to finish the two of my major projects the next year: rod, and Planet Overgamma |
16:13:39 | shashlick | Why not merge it into nimgit2 |
16:13:48 | disruptek | thanks, but it's terrible. that's why i broke it out. |
16:13:48 | FromGitter | <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:48 | FromGitter | ... [https://gitter.im/nim-lang/Nim?at=5e0a223c0fd3413f4c7c0679] |
16:13:49 | disbot | https://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:26 | disruptek | we can put it in nimgit2 if you want. but, i want to iterate quite quickly. it's not very good. |
16:14:32 | Zevv | Araq: some of them. is out of bounds special in any way? |
16:14:50 | Araq | you cannot catch it. says the spec |
16:15:05 | Araq | and the new implementation exploits this... |
16:15:34 | disruptek | too bad about Defect. |
16:15:48 | Araq | dunno, call me old fashioned but I expect a parser generator to produce code that can get the array indexing right |
16:16:09 | disruptek | zevv is really sensitive about that. |
16:16:24 | Araq | how could this code ever work with -d:danger? |
16:16:38 | disruptek | maybe you're not on 0.21.3+ |
16:17:14 | Araq | timotheecour: so report it later? not sure I understand the urgency |
16:17:28 | FromGitter | <timotheecour> k |
16:18:03 | disruptek | dude. |
16:18:05 | disruptek | he's on a plane. |
16:18:41 | disruptek | of course it's urgent. |
16:19:05 | Zevv | Araq: 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:25 | Araq | never mind, it's something else I think |
16:19:26 | Zevv | I kept that waiting around until I have it "all figured out", but no need to wait for that |
16:19:41 | narimiran | disruptek: now i'm imagining scenes for "airplane 3", coding edition :D |
16:19:42 | Zevv | ok, but still you're right |
16:19:45 | Araq | let my captures crash, that's fine |
16:20:03 | Zevv | no way, now you'll get a fix, if you want it or not |
16:20:10 | disruptek | in araqlogic, sometimes a crash isn't a crash. |
16:20:30 | narimiran | (don't mention crashes, there are people on airplanes reading this!) |
16:21:53 | FromGitter | <timotheecour> lol |
16:21:56 | FromDiscord | <Clyybber> bb timothee |
16:23:36 | FromDiscord | <mratsim> People have internet on planes? |
16:23:59 | FromDiscord | <mratsim> In airplane mode? |
16:24:00 | disruptek | it's a series of tubes. |
16:24:03 | Araq | sure |
16:24:14 | FromDiscord | <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:19 | Araq | er |
16:34:45 | Araq | I think my compiler "optimized" away the 'try' statement lol |
16:35:21 | disruptek | neat. |
16:36:12 | disruptek | a new way to `when not defined(danger):` that might slip past a macro. |
16:36:48 | Araq | yeah |
16:36:56 | Araq | disabling this "optimization" makes it work wtf |
16:37:31 | muffindrake | If your airplane is inside a tube, you may want to stop bothering the aviation engineers and step out of the damn plane. |
16:37:43 | disruptek | how do you optimize out the `raise`, too? |
16:37:55 | disruptek | don't see how you can. |
16:38:06 | disruptek | damn exceptions as control flow. |
16:38:22 | disruptek | maybe you break the compile in that case. |
16:39:37 | Araq | omg |
16:39:39 | * | xomachine[m] quit (Quit: User has been idle for 30+ days.) |
16:39:43 | Araq | such a newbie mistake |
16:39:58 | * | endragor quit (Remote host closed the connection) |
16:40:12 | Zevv | hm 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:37 | Araq | via system.`[]`(a, i) and some blood and sweat |
16:41:15 | Zevv | great, thanks |
16:41:23 | disruptek | i think we may be past the sweat phase and deep into the blood. |
16:41:49 | FromGitter | <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:18 | Araq | no, the compiler must know the const |
16:42:20 | Zevv | disruptek: well, it was a 1.5 second excersise and it works |
16:42:22 | Zevv | no time to bleed |
16:43:02 | FromGitter | <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:07 | disruptek | shashlick: 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:26 | Araq | deech: yes |
16:44:53 | leorize | Araq: I heard you've created deterministic exception handling, so what is it? :) |
16:45:30 | Araq | Zevv, tests are red because of your memfiles usage, somehow |
16:45:50 | Araq | but it's not --exceptoin:goto specific |
16:45:55 | Araq | the rest is green :-) |
16:46:06 | Araq | impressive, your project found 3 bugs in my new code |
16:46:36 | Zevv | sweet. Three beers for Zevv \o/ |
16:46:58 | narimiran | btw, guys, any new candidates for inclusion in important_packages.nim? |
16:47:30 | Zevv | the out-of-bounds in npeg has been fixed as well. That was there but broke, but system.`[]` was the fix |
16:47:36 | Araq | leorize, it's simply 'if (*nimErr_) goto errorHandler' |
16:48:15 | leorize | the C-style error handling? :P |
16:48:15 | Araq | we also optimize it away in plenty of places (used to be buggy and optimized too much) |
16:48:23 | FromGitter | <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:25 | Araq | yeah but generated by a compiler |
16:48:55 | Araq | it's faster than setjmp, sometimes |
16:49:11 | Araq | and --gc:arc introduces dozens of try..finally statements |
16:49:21 | Araq | so it's a better fit for ARC |
16:51:28 | leorize | nice |
16:51:43 | muffindrake | The 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:08 | Zevv | Araq: how does the goto work with js then? |
16:52:17 | disruptek | you don't; use project.nim.cfg instead. |
16:52:24 | disruptek | --define:ssl within |
16:52:24 | leorize | or config.nims |
16:52:28 | disruptek | shhh |
16:53:09 | leorize | disruptek: can nimph do config.nims? :) |
16:53:15 | disruptek | ssshhhhhh |
16:53:40 | disruptek | nimph doesn't care about ssl. |
16:53:55 | FromGitter | <alehander92> wow planes |
16:54:06 | FromGitter | <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:19 | FromGitter | <timotheecour> pff, not really, github doesn’t work :(( |
17:10:03 | * | Hideki_ quit (Ping timeout: 260 seconds) |
17:12:09 | leorize | belamenso: I've just fixed alaviss/nim.nvim#24 :) |
17:12:31 | leorize | this does means that you'll have to rebase your PR, sorry for the inconvienence |
17:12:40 | FromGitter | <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:31 | leorize | belamenso: thanks for your help though :) |
17:19:23 | shashlick | disruptek: maybe iterate on gittyup for now and merge into nimgit2 when you are happy |
17:19:34 | shashlick | I can make you an owner as well |
17:19:57 | disruptek | it needs people with good ideas and strong opinions. 😁 |
17:20:31 | shashlick | I know a guy |
17:20:50 | disruptek | he sounds hot. |
17:21:27 | * | Hideki_ joined #nim |
17:22:20 | muffindrake | Was there a reason the type of the status code in the response type in httpclient was chosen to be 'string'? |
17:22:47 | disruptek | there's a code accessor that yields an int. |
17:22:49 | * | Hideki_ quit (Remote host closed the connection) |
17:23:07 | muffindrake | D'oh. Thanks. |
17:23:50 | * | Kaivo quit (Quit: WeeChat 2.6) |
17:24:29 | muffindrake | The standard library implementation of httpclient seems to manually access the reponse status field and use 'startsWith' on it instead, though. |
17:24:30 | disruptek | Araq: is there a workaround for writing #12945 in 1.0? |
17:24:32 | disbot | https://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:30 | disruptek | issue #11081 crashes on gc:arc |
17:30:31 | disbot | https://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:44 | disruptek | during compilation, i mean. |
17:33:30 | disruptek | and a codegen error with cpp --noCppExceptions |
17:33:42 | disruptek | it's, like, four bugs in one. |
17:34:57 | disruptek | four 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:33 | Zevv | no, these were not bugs with my code |
18:18:40 | * | Vladar joined #nim |
18:21:43 | * | Hideki_ quit (Ping timeout: 265 seconds) |
18:23:17 | Araq | https://mlir.llvm.org/ new stuff for LLVM |
18:23:54 | disruptek | whoa. |
18:33:53 | Araq | it's the old "X is too hard so let's focus on Y which is more generic" approach |
18:34:27 | Zevv | sounds like me procrastinating |
18:34:48 | Araq | replace enum values by strings so that everything is "extensible", devoid of semantics |
18:35:00 | disruptek | i have a feeling zevv has three naked yaks following him around the house right now. |
18:35:04 | FromGitter | <zetashift> huh? Is it an IR for a machine learning compiler? |
18:35:15 | Araq | and then hope you'll get a fast compiler others want to use |
18:35:17 | disruptek | it's a T1000 neural network. |
18:35:20 | disruptek | a learning computer. |
18:35:33 | Araq | I'm trolling though, I'm sure they have some good ideas |
18:35:48 | Araq | it's just their slides were not convincing to me |
18:35:58 | Araq | but hey what do I know about compiler development |
18:36:25 | Zevv | is araq-exceptions-v2 ready for abuse yet? |
18:36:42 | disruptek | nimph fork result |
18:36:46 | disruptek | oops |
18:36:53 | Araq | Zevv, yeah, I'm about to merge it |
18:37:15 | Araq | it's enabled with --gc:arc because ARC is vaporware already |
18:37:26 | Zevv | yeah I noticed |
18:37:38 | Araq | but the bugs I have seen seem easy enough to fix |
18:37:59 | Araq | maybe I'll skip the daily Columbo session and work on it instead |
18:38:08 | * | nixfreak quit (Ping timeout: 260 seconds) |
18:38:23 | disruptek | peter falk lived next door to my dad. |
18:38:43 | muffindrake | https://nim-lang.org/docs/json.html#%7B%7D%2CJsonNode%2Cvarargs%5Bstring%5D |
18:38:51 | disruptek | apparently, he smelled like radishes. |
18:39:01 | muffindrake | Does this operate in an expected fashion if an intermediate object is an array? |
18:39:39 | Araq | disruptek, yeah, right... lol |
18:40:06 | disruptek | well, i never smelled him. third-hand sniffing. |
18:40:21 | Zevv | s/apperently/allegedly/ |
18:40:42 | Araq | HE DID NOT LIVE NEXT TO YOUR DAD! |
18:40:48 | Araq | liar! |
18:41:21 | disruptek | my dad's dad was an oscar-winning hollywood director. true story. |
18:41:40 | Araq | what about your mum? |
18:41:51 | Araq | <insert mum joke here> |
18:41:53 | Araq | bbl |
18:47:37 | FromDiscord | <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:22 | FromGitter | <zetashift> you're everywhere! |
18:50:07 | muffindrake | Nevermind my question, I can just index json arrays with {}, so it's relatively clear. |
18:50:13 | FromGitter | <alehander92> i will look at the french league and i'll see mratsim between mbappe and neymar |
18:50:15 | FromGitter | <alehander92> somewhere |
18:50:31 | Zevv | at least his dad's dad wasn't an oscar-winning hollywood director |
18:50:47 | FromGitter | <alehander92> while Araq argues with Tuchel on the coach line |
18:51:06 | FromGitter | <zetashift> "linux was a mistake!" |
18:52:19 | FromGitter | <alehander92> look at the finish national team |
18:52:45 | FromGitter | <alehander92> first time on a big championship in 202 |
18:52:51 | FromGitter | <alehander92> its the year of the linux soccer! |
18:58:39 | lqdev[m] | can't wait to optimize my software with ARC™ |
19:02:46 | Zevv | I have a test case where --gc:arc is running 10% faster, but also one which is 400% slower :/ |
19:03:56 | shashlick | disruptek: I liked the go versioning link you posted |
19:04:05 | shashlick | I'm on board with minimal version |
19:04:18 | disruptek | omg seriously? |
19:04:31 | shashlick | But this is probably why I don't think Nim is ready for it yet |
19:04:32 | disruptek | too funny. |
19:04:34 | shashlick | https://illicitonion.blogspot.com/2018/06/rust-minimum-versions-semver-is-lie.html?m=1 |
19:04:55 | disruptek | what do you think of this api: |
19:04:58 | disruptek | https://gist.github.com/disruptek/022cbdf0090cfdba6d61c65d2947bbcd |
19:05:12 | disruptek | it's a little bit implicit, but quite clean, i think. |
19:05:23 | shashlick | Haven'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:33 | shashlick | No cure for the lazy I guess |
19:05:58 | disruptek | well, the whole reason i capitulated is because nimble is already teaching people that there's only one operator. |
19:06:03 | disruptek | there's not much we can do about that. |
19:07:32 | shashlick | Agreed, I'm curious how Go expects requires statements |
19:07:39 | shashlick | Is it in code or a json file |
19:07:50 | disruptek | code. |
19:08:02 | shashlick | Plus how did they migrate people from Dep to Go modules |
19:08:35 | shashlick | Did they reuse the same requires statements |
19:08:35 | disruptek | i thought about doing it that way and supporting urls in code, but decided it is less flexible. |
19:08:36 | disruptek | i don't think we want that stuff in the compiler per se. |
19:09:41 | * | NimBot joined #nim |
19:11:10 | disruptek | thoughts on the paste? |
19:14:39 | disruptek | the thing with minimal versions is, it's a rising tide of work that lifts all boats. |
19:16:02 | disruptek | instead of trying to forge ahead in versions with new features and breaking functionality, you're simply elevating minimal support everywhere, as needed. |
19:18:00 | shashlick | I'm on board, just need to help the community get there |
19:18:02 | disruptek | there 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:06 | shashlick | Will bbl |
19:19:09 | * | solitudesf quit (Remote host closed the connection) |
19:19:32 | * | solitudesf joined #nim |
19:20:03 | disruptek | solitudesf: any opinion on this? https://gist.github.com/disruptek/022cbdf0090cfdba6d61c65d2947bbcd |
19:21:17 | lqdev[m] | is {.register.} broken? |
19:21:31 | lqdev[m] | it generates `register` after the type, and not before it |
19:26:59 | lqdev[m] | which trips up gcc |
19:39:51 | lqdev[m] | is it possible to get the address of the beginning of a seq without it having any elements? |
19:40:09 | lqdev[m] | right now I'm using `x[0].unsafeAddr`, which produces a "container out of bounds" error |
19:42:26 | lqdev[m] | s/container/container index/ |
19:43:16 | * | zama quit (Ping timeout: 268 seconds) |
19:43:58 | * | zama joined #nim |
19:45:06 | lqdev[m] | is the only solution to disable bounds checks? |
19:49:47 | FromDiscord | <mratsim> if it has no elements it's not allocated |
19:50:16 | FromDiscord | <mratsim> if you know it was allocated before you ca cast it to PGenericSeq and get the pointer from there |
19:51:35 | Araq | that article is hilarious |
19:51:41 | Araq | "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:25 | Araq | maybe a number detached from your code has no meaning? ever thought about that? geniuses |
19:56:27 | Araq | lol my recent bugfixes made --gc:arc way more unstable than it used to be... |
19:59:29 | disruptek | congrats on arc v2.0.0 |
20:00:04 | disruptek | but seriously, we don't need semver. |
20:00:18 | disruptek | nimph will support saying things like ">= #someNiceTag" |
20:00:55 | Araq | it's a battle we won't win, it's like telling programmers that using a mouse really does make you more productive |
20:01:03 | disruptek | lol |
20:01:12 | disruptek | i gave up the mouse; now i just use symlinks. |
20:03:22 | FromDiscord | <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:42 | FromDiscord | <Generic> like 3d modelling |
20:03:55 | skrylar[m] | wot |
20:04:33 | skrylar[m] | admittedly i do like when things have a healthy cli available to them |
20:05:00 | FromDiscord | <Generic> haha, I use even for git a gui |
20:05:20 | skrylar[m] | magit is nice |
20:05:46 | FromDiscord | <Generic> never heard of it, I used to use kraken git |
20:05:57 | FromDiscord | <Generic> I knew it was commercial |
20:06:15 | FromDiscord | <Generic> but I thought it wasn't nice what they did |
20:06:29 | FromDiscord | <Generic> using me as a free beta tester |
20:06:35 | FromDiscord | <Generic> to then scare me off |
20:07:00 | FromDiscord | <Generic> now I'm using tortoise git |
20:07:05 | FromDiscord | <Generic> and find it better |
20:07:40 | skrylar[m] | i left a growing project because they did something like that |
20:07:56 | skrylar[m] | license changed at the last minute, and the bdfl is a prick |
20:08:12 | skrylar[m] | tells people to stop maintaining things so he can rewrite and sell the exact same thing |
20:08:25 | FromDiscord | <Generic> ah, sounds like a terrible story |
20:09:00 | disruptek | hey, selling that software kept me in coffee for 8 months. |
20:09:07 | disruptek | don't judge me. |
20:09:58 | FromDiscord | <Generic> which one? |
20:10:06 | FromDiscord | <Generic> gitkraken? |
20:22:29 | Zevv | Araq: if I have a specific workload which runs 500% slower with --gc:arc, what would be the first place to look? |
20:22:48 | disruptek | `nim --fullhelp` shoulds several other gc options. |
20:23:17 | Zevv | sinks and lents is the way to go? |
20:24:22 | disruptek | chutes and ladders is the future, regardless of today's performance. |
20:32:47 | FromGitter | <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:26 | FromDiscord | <Lantos> just use ``choosenim devel`` |
21:02:40 | FromDiscord | <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:33 | disruptek | Araq: 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:51 | FromGitter | <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:30 | disruptek | Araq: also, seems that arc is breaking nre. |
22:00:50 | rockcavera | I 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:51 | rockcavera | so 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:22 | rockcavera | I am using StInt package for Int128 |
22:04:46 | rockcavera | I tried to reproduce the problem out of my code like this: https://pastebin.com/p9HWPfg5, but couldn't |
22:08:34 | rockcavera | The code looks like this: https://pastebin.com/1s8dwd1r, no problem returning memory. |
22:08:59 | rockcavera | Remembering that these two codes are pseudocodes that try to reproduce the problem. |
22:18:36 | * | Hideki_ joined #nim |
22:22:03 | FromDiscord | <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:16 | FromGitter | <aboisvert> @Araq looks like `deepCopy()` is not available with `--gc:arc`, is that temporary? is it planned to have it later? |
22:28:42 | FromDiscord | <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:09 | skrylar[m] | that may not be the only reason someone needs a deep copy :wink: |
22:35:33 | shashlick | @deech just use koch docs |
22:44:18 | * | solitudesf quit (Ping timeout: 260 seconds) |
22:53:35 | FromGitter | <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:11 | Araq | Zevv, benchmark it... |
22:58:28 | Araq | and yeah, 5x slowdowns definitely are bugs |
22:59:26 | Araq | Zevv, do you use .shallow? |
22:59:32 | Araq | because arc ignores it :P |
23:01:27 | Araq | aboisvert: deepcopy could be supported, eventually. |
23:01:56 | Araq | for now I'm busy with new+finalizer support as that's more common than I thought :P |
23:02:42 | rockcavera | mratsim thanks |
23:05:15 | * | belamenso joined #nim |
23:06:38 | shashlick | Araq: how do I print a full PNode tree like in macros |
23:06:42 | kahiru | perhaps 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:29 | shashlick | I 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:37 | FromGitter | <phillvancejr> I keep getting token expected: ; when using c2nim or nimgen, any ideas? |
23:15:29 | shashlick | @phillvancejr - share some output? paste please |
23:18:05 | FromGitter | <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:21 | shashlick | sorry I don't have osx |
23:20:30 | shashlick | c2nim probably doesn't like something in that file |
23:21:21 | FromGitter | <phillvancejr> thanks for trying :) |
23:21:45 | shashlick | maybe run the preprocessor on it first? |
23:21:58 | shashlick | if it is a preprocessor thing that's throwing c2nim off |
23:22:18 | FromGitter | <phillvancejr> I tried with gcc -E but it doesn't matter, I get the same error, just on a different line |
23:23:43 | FromDiscord | <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:04 | shashlick | if it is pure C, maybe try with nimterop |
23:28:09 | FromDiscord | <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:09 | FromDiscord | <mratsim> |
23:28:09 | FromDiscord | <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:42 | FromDiscord | <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:45 | FromDiscord | <mratsim> woes* |
23:29:05 | * | leorize joined #nim |
23:29:23 | FromDiscord | <mratsim> composability as in my sync() barrier is still not nestable so it can't be called within a parallel for loop :/ |
23:32:56 | FromDiscord | <mratsim> @Araq I suppose there is no way for a {.discardable.} to know if it will be assigned right? |
23:34:56 | skrylar[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 |