00:09:02 | * | vlad1777d quit (Ping timeout: 250 seconds) |
00:12:33 | * | onionhammer joined #nim |
00:16:33 | * | wildlander quit (Quit: Konversation terminated!) |
00:19:25 | * | lritter joined #nim |
00:53:10 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
01:16:40 | * | endragor joined #nim |
01:18:35 | * | endragor quit (Remote host closed the connection) |
01:24:50 | * | theelous3 quit (Ping timeout: 246 seconds) |
01:32:17 | * | ftsf joined #nim |
01:52:13 | FromGitter | <zacharycarter> wasn't aware of - http://webserver2.tecgraf.puc-rio.br/iup/ |
01:52:24 | FromGitter | <zacharycarter> but it's good to know of its existence |
01:57:55 | FromGitter | <zetashift> @shashlick you there by any chance? |
02:00:30 | FromGitter | <zacharycarter> I think it's late for him |
02:00:49 | FromGitter | <zetashift> Yeah wanted to ask a quick question, I'll just go ahead and tinker around for a bit |
02:05:03 | FromGitter | <zacharycarter> gotcha - just wanted to make sure you weren't hanging on for a reply from him |
02:05:25 | FromGitter | <zacharycarter> I need to play with scopes more... |
02:07:20 | FromGitter | <gogolxdong> How to invoke async timer and its callback in Jester? |
02:07:21 | edcragg | today's aoc was glorious |
02:28:13 | * | kapil____ joined #nim |
02:39:52 | * | Tyresc quit (Quit: WeeChat 2.3-dev) |
03:08:49 | * | banc quit (Quit: Bye) |
03:12:19 | shashlick | Hey |
03:27:17 | * | banc joined #nim |
03:33:44 | FromGitter | <zacharycarter> @gogolxdong - do you mean how do you start the event loop? I'm not sure what timer you're referring to |
03:33:49 | FromGitter | <zacharycarter> shashlick: hi bud |
03:34:22 | FromGitter | <zacharycarter> I believe @zetashift was trying to get a hold of you earlier |
03:45:40 | * | dddddd quit (Remote host closed the connection) |
04:04:39 | FromGitter | <gogolxdong> timing for send email , async timer or async event something. |
04:06:02 | FromGitter | <zacharycarter> @gogolxdong - not sure... https://nim-lang.org/docs/asyncdispatch.html#addTimer%2Cint%2Cbool%2CCallback - maybe? |
04:06:34 | FromGitter | <zacharycarter> I'm not aware of any timer functionality built into Jester - but I've been wrong plenty of times before :) |
04:06:53 | FromGitter | <gogolxdong> frontend need responding asynchronously , backend take over the timing, thread is an option , but may cost more overhead , want to try selectors. |
04:06:54 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
04:08:55 | FromGitter | <zacharycarter> nim does have a selectors module - I have no experience with it |
04:09:12 | FromGitter | <zacharycarter> I think httpbeast uses it |
04:09:30 | FromGitter | <gogolxdong> I'm trying to combine them |
04:09:46 | * | nsf joined #nim |
04:10:32 | FromGitter | <zacharycarter> out of my wheel house - I've only ever used selectors with kqueues |
04:11:13 | shashlick | Looks like @zetashift is out - ping when you can, I'll check in the morning |
04:11:39 | FromGitter | <gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5c1721fb039551387fad4db0] |
04:22:31 | FromGitter | <gogolxdong> I am wondering it might be not quite proper to use IO multiplexing, timing duration is unknow and also usually long, it wastes a socket of system within the duration if the fd keeps hanging. |
04:31:07 | FromGitter | <gogolxdong> which raise a question is the file descriptor could be created the same with threads ?Is so there is no big difference between them. |
04:35:40 | FromGitter | <gogolxdong> file descriptors could be created is usually more than thread, does it mean uses selector for timing is more efficient? |
04:46:22 | * | lritter quit (Ping timeout: 250 seconds) |
04:47:04 | * | lritter joined #nim |
05:03:05 | * | endragor joined #nim |
05:10:44 | * | Notkea quit (Ping timeout: 268 seconds) |
05:24:55 | * | Notkea joined #nim |
05:55:45 | * | Notkea quit (Ping timeout: 268 seconds) |
06:08:38 | * | Notkea joined #nim |
06:15:26 | * | kinkinkijkin quit (Remote host closed the connection) |
06:19:50 | * | vlad1777d joined #nim |
06:55:05 | * | kinkinkijkin joined #nim |
07:00:02 | kinkinkijkin | hmm, can I make a seq of tuples containing a name and a proc reference ? |
07:00:59 | Araq | kinkinkijkin, yeah but it can indicate you don't use a macro where you should |
07:02:07 | * | krux02 joined #nim |
07:02:10 | Araq | all procs need to have the same signature and that's usually more burdensome than generating a 'case' statement or nnkStmtList |
07:03:43 | kinkinkijkin | the idea is to match command names to procs using as little and as readable code as I can |
07:05:43 | kinkinkijkin | plus to be able to make named thing |
07:05:49 | kinkinkijkin | euh words are hard |
07:08:02 | FromGitter | <timotheecour> @araq please take a look at https://github.com/nim-lang/Nim/pull/10018 |
07:09:42 | kinkinkijkin | instead of writing a multistage parser for this language, writing a simple parser that integrates its own expansion without increasing code complexity |
07:10:30 | kinkinkijkin | im spewing |
07:10:44 | kinkinkijkin | im having an extremely hard time explaining what i mean |
07:11:13 | kinkinkijkin | i know how it would work in code but not the words to describe the code that would work for it |
07:12:02 | Zevv | story of my life |
07:18:44 | kinkinkijkin | what i want to do is compare a piece of code against a large seq of all 50 or so possible commands, multiple of which are executional duplicates with only differing data, without writing a 50-entry case spanning more than a screen's worth of lines for what is ultimately a small part of the program, but instead writing a slightly more readable huge seq, which can also be formatted more before affecting the actual compiled code |
07:20:44 | FromGitter | <gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5c174e4c987052387efa9f55] |
07:21:21 | FromGitter | <gogolxdong> It's something like this, but needs to be correct. |
07:32:19 | * | ftsf quit (Quit: Leaving) |
07:48:24 | * | tdc joined #nim |
07:51:01 | * | tdc quit (Client Quit) |
08:36:53 | * | kapil____ quit (Quit: Connection closed for inactivity) |
08:43:08 | FromGitter | <gogolxdong> What does ⏎ ⏎ ```if fdi in s:``` ⏎ ⏎ mean ... [https://gitter.im/nim-lang/Nim?at=5c17619c0a145b0e24b27a77] |
08:44:11 | * | ng0 joined #nim |
08:47:04 | * | ftsf joined #nim |
08:48:23 | * | dddddd joined #nim |
08:48:58 | * | floppydh joined #nim |
08:57:03 | * | vegax87 quit (Ping timeout: 264 seconds) |
09:01:19 | FromGitter | <gogolxdong> ``` ⏎ proc setData*T (s: Selector[T], fd: SocketHandle|int, data: T): bool = ⏎ let fdi = int(fd) ⏎ s.checkFd(fdi) ⏎ if fdi in s: ... [https://gitter.im/nim-lang/Nim?at=5c1765df987052387efb3999] |
09:01:50 | FromGitter | <gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5c1765feb4c74555ccde9717] |
09:18:40 | FromGitter | <gogolxdong> I think minimal selector usage is as follows: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5c1769f0539aca60b22208dd] |
09:23:09 | FromGitter | <alehander42> kinkinkijkin, so you want to e.g. map commands to `call(data)` ? |
09:23:31 | FromGitter | <alehander42> how do you signify what is `data` |
09:26:30 | FromGitter | <gogolxdong> can selector register any file descriptor ? |
09:27:18 | FromGitter | <gogolxdong> Won't they overlay with system file descriptor in use? |
09:27:36 | * | ftsf quit (Ping timeout: 250 seconds) |
09:40:51 | * | PMunch joined #nim |
09:42:18 | * | lritter quit (Quit: Leaving) |
09:48:08 | * | vegax87 joined #nim |
09:54:31 | * | pbodev1 joined #nim |
10:00:22 | * | Vladar joined #nim |
10:00:57 | * | azuri5 joined #nim |
10:05:52 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
10:06:07 | PMunch | How can you call a procedure that's generic and takes a concept? |
10:06:09 | PMunch | http://ix.io/1wcF/Nim |
10:06:22 | PMunch | This fails with test.nim(12, 5) Error: cannot instantiate: 'test[int]'; got 1 type(s) but expected 2 |
10:07:04 | PMunch | So I'm guessing the concept adds a generic type somehow, and that doesn't combine with the one explicitly defined one? |
10:11:28 | FromGitter | <alehander42> hm, if you instead have `[int, seq[string]]` it works indeed |
10:12:10 | PMunch | Oh you're right |
10:12:44 | * | Perkol joined #nim |
10:12:51 | PMunch | So my suspicion was right, the use of concept overloads the generic mechanism |
10:12:58 | FromGitter | <alehander42> and even if you don't have T, you can actually pass `[seq[string]]` and it works |
10:13:00 | FromGitter | <alehander42> yeah probably |
10:13:45 | PMunch | Yeah but without T it doesn't require [seq[string]] |
10:14:09 | PMunch | But when you explicitly declare one generic type it can't infer the other |
10:15:43 | PMunch | So this fails in a similar way: http://ix.io/1wcG/Nim |
10:16:12 | PMunch | Because while U can be inferred you can't mix inferred with explicit |
10:17:35 | FromGitter | <alehander42> one workaround is to use type params instead |
10:17:36 | FromGitter | <alehander42> e.g. |
10:17:44 | FromGitter | <alehander42> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5c1777c8039551387faf5e9d] |
10:17:58 | FromGitter | <alehander42> but it's a good question anyway |
10:18:05 | FromGitter | <alehander42> open an issue I guess (or ping @zah) |
10:18:24 | Araq | it adds an implicit generic parameter indeed |
10:18:42 | Araq | best is to avoid explicit type instantiations via [] |
10:18:52 | PMunch | Yeah I can work around it like that, but that would look super strange with what I was actually using it for |
10:19:38 | PMunch | Araq, but how would you otherwise do the thing I showed. As in create an empty data structure that has a certain type? |
10:20:21 | FromGitter | <alehander42> var t: T; t |
10:20:53 | PMunch | Huh? |
10:21:16 | PMunch | So what I was trying to do is parse some data into a data structure |
10:21:42 | PMunch | Specifically I'm trying to load a texture atlas |
10:22:48 | PMunch | I need to get some string data, prefferably not by reading the entire string and passing it in, and return an atlas with numbers parsed into a numeric data type (this is the generic parameter) |
10:24:28 | PMunch | The current signature: proc loadAtlas*[T, Y](atlasIterable: IterableConcept, textureLoader: TextureLoader[Y] = defaultTextureLoader): TextureAtlas[T, Y] |
10:24:51 | PMunch | So T would be something like int, cint, or whatever integer kind you need for your graphics framework |
10:25:27 | PMunch | TextureLoader[Y] is proc (x: string): Y |
10:25:48 | PMunch | So a way to load the texture into the kind used by your graphics framework |
10:26:46 | PMunch | And the IterableConcept is similar to the concept from my first snippet (just with the .lines iterator) that will be something that can be read as input |
10:27:11 | FromGitter | <alehander42> cool |
10:27:57 | PMunch | Yeah I'm trying to convert my SDLGamelib into a generic gamelib that can be used with any engine |
10:27:58 | * | Perkol quit (Ping timeout: 245 seconds) |
10:28:15 | PMunch | Just something fun I tried during the weekend :P |
10:34:38 | PMunch | Hmm, can I get the type of whatever got passed in as the concept? |
10:37:15 | * | abm joined #nim |
10:40:01 | * | azuri5 quit (Ping timeout: 250 seconds) |
10:47:46 | FromGitter | <mratsim> type? |
10:48:21 | Araq | PMunch, the usual workaround is a 'typedesc' parameter for what cannot be inferred |
10:49:28 | PMunch | Yeah I would need to do the same call to a different procedure, so if I do the explicit generic with added concept type I would need to get that type somehow.. |
10:49:47 | PMunch | But since it's added automatically I don't have a name that I can use to pass it on with.. |
10:51:11 | * | dddddd quit (Remote host closed the connection) |
10:51:16 | FromGitter | <mratsim> macro and getTypeInst might help you. I will pray for you while you move in this labyrinth :P |
10:57:28 | PMunch | Hmm, I've been down that rabbit hole before. I think I'll just go with typedescs :P |
10:57:50 | PMunch | And create some wrappers that makes it nicer to use for specific libraries |
11:07:01 | * | Vladar quit (Remote host closed the connection) |
11:30:50 | * | ng0 joined #nim |
11:58:17 | * | stefanos82 joined #nim |
12:00:46 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
12:11:27 | PMunch | nimlsp is actually suprisingly helpful |
12:14:15 | FromGitter | <alehander42> does the sublime version work well now |
12:17:25 | * | Snircle joined #nim |
12:44:33 | PMunch | I think so |
12:44:40 | PMunch | The Vim versions at least works fine |
12:56:45 | * | jjido joined #nim |
13:16:25 | * | Tyresc joined #nim |
13:24:30 | * | azuri5 joined #nim |
13:52:25 | * | azuri5 quit (Quit: azuri5) |
14:12:28 | * | Redfoxmoon2 joined #nim |
14:13:52 | * | Redfoxmoon2 left #nim (#nim) |
14:29:25 | * | endragor quit (Remote host closed the connection) |
14:30:47 | * | narimiran joined #nim |
14:32:37 | * | leorize joined #nim |
14:35:29 | * | kapil____ joined #nim |
14:36:16 | * | nsf quit (Quit: WeeChat 2.3) |
14:39:43 | * | Vladar joined #nim |
14:41:56 | * | dddddd joined #nim |
14:44:37 | * | endragor joined #nim |
14:49:08 | * | endragor quit (Ping timeout: 250 seconds) |
15:08:34 | * | nsf joined #nim |
15:11:53 | * | azuri5 joined #nim |
15:21:46 | * | narimiran quit (Remote host closed the connection) |
15:32:53 | * | nif quit (Read error: Connection reset by peer) |
15:34:55 | * | nif joined #nim |
15:37:23 | * | azuri5 quit (Quit: azuri5) |
15:39:35 | * | azuri5 joined #nim |
15:43:57 | * | azuri5 quit (Quit: azuri5) |
15:43:58 | l1x | hey guys, what is the difference between? proc start_server()* = ; proc start_server* = ; proc start_server():* = ? |
15:44:24 | l1x | I am not sure how to export a function from a module and what is the schematic meaning between these |
15:45:54 | * | regtools quit (Ping timeout: 252 seconds) |
15:46:07 | FromGitter | <zacharycarter> ```proc start_server*() = ⏎ echo "foo"``` [https://gitter.im/nim-lang/Nim?at=5c17c4be539aca60b224589a] |
15:46:13 | * | azuri5 joined #nim |
15:46:15 | FromGitter | <zacharycarter> that will expose start_server / make it publich |
15:47:20 | Araq | you export the name so the star always comes after the name |
15:47:31 | l1x | thanks! |
15:47:35 | Araq | and there are no variations so it's pretty easy to remember |
15:47:48 | l1x | and what is the difference between blah blah() and blah(): |
15:48:24 | FromGitter | <dandevelo> Is there anyone here that studied the karax dsl code? I've noticed it doesn't have any comments but I am trying to understand the buildHtml macro: `macro buildHtml*(tag, children: untyped): VNode = ⏎ let kids = newProc(procType=nnkDo, body=children) ⏎ expectKind kids, nnkDo ⏎ var call: NimNode ⏎ if tag.kind in nnkCallKinds: ... [https://gitter.im/nim-lang/Nim?at=5c17c548c428e9539d526084] |
15:48:42 | FromGitter | <mratsim> blah is the proc, blah() is a proc call, blah(): is a proc call with an argument equal to the expression or statement in the following block |
15:49:23 | FromGitter | <dandevelo> A link might be better. I am trying to understand what this line does: https://github.com/pragmagic/karax/blob/bd69de9f146b850ca5ba61397d59a18782af0366/karax/karaxdsl.nim#L181 |
15:49:38 | l1x | thanks mratsim! |
15:49:42 | FromGitter | <mratsim> it steals the body of your kids |
15:50:18 | FromGitter | <dandevelo> > it steals the body of your kids haha |
15:50:54 | FromGitter | <alehander42> body is a helper in macros.nim |
15:51:07 | FromGitter | <alehander42> which returns the body node of a proc node iirc |
15:53:18 | FromGitter | <dandevelo> Thanks @alehander42 |
16:06:31 | FromGitter | <brentp> hi all. I depend on my fork of an apparently abandoned nim project. is there a way to point to my fork in my $project.nimble file? |
16:07:48 | FromGitter | <brentp> here's the project: https://github.com/manguluka/duktape-nim/ |
16:07:55 | FromGitter | <alehander42> you can point to the github link |
16:07:58 | FromGitter | <Vindaar> @brentp hey! you can just write e.g. `requires "https://github.com/brentp/duktape-nim"` |
16:08:37 | FromGitter | <brentp> oh. well, that's delightfully straight-forward. |
16:08:40 | FromGitter | <alehander42> and iirc add `#head` or `#<tag>` etc |
16:08:46 | FromGitter | <alehander42> if you need |
16:08:58 | FromGitter | <brentp> cheers |
16:10:30 | shashlick | How do you know the author abandoned it? |
16:11:04 | FromGitter | <brentp> I don't, but he has no activity on github since august and doesn't respond to PR. |
16:11:18 | FromGitter | <brentp> he/she (/shrug) |
16:13:11 | PMunch | Which project? |
16:13:35 | FromGitter | <brentp> project and PR here: https://github.com/manguluka/duktape-nim/pull/2 |
16:15:34 | PMunch | Hmm, last edited 5 months ago.. |
16:17:20 | PMunch | Hm, I think it should be possible |
16:17:25 | PMunch | But no idea how or if |
16:18:55 | l1x | how do I use the $ thing with logging? |
16:19:43 | l1x | info("$datetime Starting web server...") does not work |
16:23:12 | PMunch | What are you trying to do? |
16:23:34 | l1x | trying to log date + time + message like you would normally do with logging? |
16:24:21 | PMunch | Well you could do `info($datetime & " Starting web server...")` assuming info is declared somewhere |
16:24:28 | l1x | thanks |
16:24:33 | l1x | so you need to do & |
16:24:41 | PMunch | Or you could use the strformat module: nim-lang.org/docs/strformat.html |
16:24:43 | l1x | it would be nice addition here: https://nim-lang.org/docs/logging.html |
16:25:08 | PMunch | $ in nim is "convert to string", & is concatenate strings |
16:25:38 | l1x | this does not work though -> info($datetime & "Starting web server...") |
16:25:50 | l1x | Error: undeclared identifier: 'datetime' |
16:26:34 | PMunch | Oh wait |
16:26:49 | PMunch | Sorry, I didn't know you were using the logging module |
16:27:39 | * | endragor joined #nim |
16:29:38 | * | regtools joined #nim |
16:29:43 | * | azuri5 quit (Quit: azuri5) |
16:30:39 | shashlick | @brentp: well let me know if you need any help - that's a nimgen based project |
16:31:22 | FromGitter | <brentp> @shashlick will do. is your new project doing to replace nimgen? |
16:32:08 | * | endragor quit (Ping timeout: 245 seconds) |
16:33:30 | PMunch | l1x, http://ix.io/1wef/Nim |
16:33:33 | * | pbodev1 left #nim (#nim) |
16:33:47 | PMunch | It wasn't particularily clear from the documentation, but format strings have to be set for the logger |
16:35:03 | PMunch | So everything that's logged will follow the same log pattern |
16:42:08 | * | vlad1777d quit (Ping timeout: 245 seconds) |
16:47:12 | * | PMunch quit (Remote host closed the connection) |
16:49:14 | * | floppydh quit (Quit: WeeChat 2.3) |
16:51:44 | * | tdc joined #nim |
16:52:50 | * | whaletechho joined #nim |
16:54:06 | * | azuri5 joined #nim |
16:55:07 | * | Trustable joined #nim |
16:58:24 | * | zahary quit (Quit: Connection closed for inactivity) |
16:59:46 | * | endragor joined #nim |
17:03:18 | * | endragor quit (Remote host closed the connection) |
17:11:00 | * | krux02 quit (Remote host closed the connection) |
17:29:45 | * | azuri5 quit (Quit: azuri5) |
17:34:15 | FromGitter | <zetashift> @shashlick I had had a weird error installing your x64 windows patch for choosenim, but it worked out thanks! |
17:36:07 | * | jjido quit (Ping timeout: 240 seconds) |
17:37:49 | * | azuri5 joined #nim |
17:37:55 | * | quipa joined #nim |
17:41:00 | * | endragor joined #nim |
17:42:20 | * | endragor_ joined #nim |
17:45:03 | * | endrago__ joined #nim |
17:45:56 | * | endragor quit (Ping timeout: 272 seconds) |
17:46:43 | * | endragor_ quit (Ping timeout: 245 seconds) |
17:53:25 | shashlick | @brentp: nimgen will live on for the near term |
17:53:42 | shashlick | To maintain existing wrappers |
17:54:07 | shashlick | And anyone wanting to use c2nim |
17:54:30 | shashlick | Nimterop will absorb more of the functionality over time though |
17:55:31 | FromGitter | <arnetheduck> l1x check out https://github.com/status-im/nim-chronicles if you want a more structured approach to logging |
17:55:34 | shashlick | @zetashift: still have to fix up per dom96 feedback - please let me know what you found |
17:58:11 | * | nsf quit (Quit: WeeChat 2.3) |
18:02:13 | FromGitter | <zetashift> so far smooth sailing, the error was on my part |
18:04:57 | * | quipa quit (Read error: Connection reset by peer) |
18:07:59 | * | endrago__ quit (Remote host closed the connection) |
18:10:34 | shashlick | I hope we get to a point where you can simply download a binary build for Linux with musl and osx as well |
18:10:57 | * | craigger_ quit (Quit: bye) |
18:10:59 | shashlick | Perhaps we can get there with @kaushalmodi's help |
18:13:17 | FromGitter | <kaushalmodi> shasklick: You make it sound like I am good at Linux binary packaging |
18:13:35 | * | craigger joined #nim |
18:13:37 | shashlick | You're good at musl :) |
18:13:46 | FromGitter | <kaushalmodi> All I have is https://github.com/kaushalmodi/hello_musl, which is a distillation of everything that works(TM), after a lot of failed experiments |
18:14:17 | FromGitter | <kaushalmodi> I got a lot of help from folks here to pick the right switches :) |
18:16:13 | shashlick | Do you think it's possible to have all Linux Nim binaries built with musl? |
18:16:43 | FromGitter | <kaushalmodi> I haven't attempted that |
18:17:03 | FromGitter | <kaushalmodi> before I even venture into that, need to tackle the Travis failures when building Nim nightlies |
18:17:36 | FromGitter | <kaushalmodi> *just thinking of that gives me creeps* - I hate Travis |
18:17:45 | l1x | thanks! |
18:17:55 | * | azuri5 quit (Quit: azuri5) |
18:18:40 | FromGitter | <kaushalmodi> shashlick: before we get to static binaries for Nim, would like to get the static binary of choosenim |
18:21:31 | shashlick | Agreed |
18:21:53 | shashlick | And nimble which should eventually become independent of Nim |
18:25:25 | FromGitter | <arnetheduck> just pushed an update to `nlvm` to do `llvm` 7.0 which technically includes a linker - once `nlvm` uses that, nim could be used without a c compiler as well |
18:25:53 | FromGitter | <arnetheduck> (right now, nlvm calls gcc to do linking because it's easier to get the linking options right that way) |
18:26:09 | FromGitter | <kaushalmodi> shashlick: yes, nimble too |
18:36:40 | * | druonysus joined #nim |
18:36:40 | * | druonysus quit (Changing host) |
18:36:40 | * | druonysus joined #nim |
18:42:21 | * | azuri5 joined #nim |
18:47:02 | * | dddddd quit (Ping timeout: 250 seconds) |
18:47:04 | FromGitter | <Varriount> @arnetheduck Nice! |
18:50:27 | FromGitter | <zacharycarter> @arnetheduck - sweeeeet |
18:51:06 | kinkinkijkin | sorry, I went to bed shortly after sending my last thing, @alehander42 yeah call(data) |
19:27:17 | * | azuri5 quit (Quit: azuri5) |
19:27:17 | * | Cthalupa quit (Ping timeout: 268 seconds) |
19:28:02 | * | Cthalupa joined #nim |
19:48:48 | Araq | so ... if I say --import: "module" in a config.nims file does that mean other config.nims files should try to import this module implicitly? |
19:49:34 | Araq | that's a switch for Nim, not for NimScript, right? and yet that's what Nimble uses it for, albeit via the compiler API |
19:49:43 | * | Araq hates --import |
20:02:00 | FromGitter | <arnetheduck> declarative config files don't have such issues :) |
20:07:18 | Araq | well they are simpler for sure, on the other hand, they also had their own bugs |
20:08:07 | Araq | phase ordering problems, if file A says --debugger:on and file B says --debugger:off who wins |
20:08:14 | FromGitter | <arnetheduck> I'm not smart enough for anything else than simple |
20:08:46 | Araq | my favourite solution is a Nim program that constructs the command line for the Nim compiler. ;-) |
20:09:15 | FromGitter | <arnetheduck> command likes are very declarative, works for me :) |
20:09:26 | Araq | simpler than NimScript, more powerful too |
20:09:37 | Araq | and in the end you can look at the command line to see where the shit happens |
20:10:28 | FromGitter | <arnetheduck> and you have to fit everything in 65k characters which is a bonus on its own.. good incentive that you're doing something wrong, once you hit it |
20:10:59 | Araq | the limit is 8K on windows but fortunately "response files" are a very common workaround |
20:13:18 | FromGitter | <arnetheduck> btw, a feature req for testament if you happen to be working on it: a response file with a test blacklist, so I can disable a bunch of hopeless tests in nlvm (those that emit c code and the like).. if I do that, nlvm is probably at some 98% test success right now, meaning I could actually do a release |
20:16:14 | * | kapil____ quit (Quit: Connection closed for inactivity) |
20:26:22 | l1x | hmm how is osproc.execProcess supposed to be working? |
20:26:45 | l1x | let outp = execProcess(command = "echo 1") this returns a TaintedString |
20:26:52 | l1x | according to the doc |
20:27:51 | FromGitter | <zacharycarter> Araq: what you're describing (I think) is what Zig does |
20:28:14 | FromGitter | <zacharycarter> https://github.com/zacharycarter/zeal_zig/blob/master/build.zig |
20:28:23 | FromGitter | <zacharycarter> in fact build is a module in the stdlib |
20:33:29 | * | dddddd joined #nim |
20:37:01 | * | Trustable quit (Remote host closed the connection) |
20:42:47 | Araq | zacharycarter: ok, well, good to see others learn from my mistakes |
20:43:18 | * | Jesin quit (Quit: Leaving) |
20:43:57 | Araq | though for your example it's probably wrong because then it's tied to the package and clients of your code need to copy&paste your link commands |
20:44:26 | FromGitter | <zacharycarter> yeah - that's a good point |
20:44:47 | Araq | that's why most of this stuff should be in pragmas |
20:44:55 | Araq | because then it composes well |
20:45:50 | * | Jesin joined #nim |
20:46:45 | Araq | arnetheduck: that should be covered by 'disabled: nlvm' in the spec section IMO |
20:51:34 | FromGitter | <arnetheduck> it could but that's kind of messy since we work in separate repos |
20:54:52 | * | zachk joined #nim |
20:55:57 | * | zachk quit (Changing host) |
20:55:57 | * | zachk joined #nim |
21:05:31 | * | theelous3 joined #nim |
21:08:54 | * | stefanos82 quit (Remote host closed the connection) |
21:37:48 | Araq | well a blacklist doesn't offer much over copying the tests/ dir and leaving out certain files |
21:41:03 | * | Jesin quit (Quit: Leaving) |
22:21:20 | * | Vladar quit (Remote host closed the connection) |
22:42:23 | FromGitter | <arnetheduck> true, I could rsync the tests somewhere, it's just an extra step (right now I just run testament on the Nim folder but with nlvm instead of nim - very convenient).. |
22:43:23 | * | smitop joined #nim |
22:43:47 | FromGitter | <arnetheduck> hm wonder if I can make that depend on the git submodule version, then it could even be part of the makefile I use.. hm |
22:44:37 | FromGitter | <arnetheduck> ... but that won't work on windows ... sigh |
23:07:26 | * | xet7 quit (Ping timeout: 268 seconds) |
23:07:33 | * | abm quit (Quit: Leaving) |
23:14:06 | * | xet7 joined #nim |
23:30:39 | * | Jesin joined #nim |
23:51:49 | shashlick | I prefer pragmas too, but it will help to have per file vs global pragmas |
23:52:02 | shashlick | Like a passC that only applies to the current file |
23:52:22 | shashlick | I really would also like a define and undefine pragma |