<< 28-06-2018 >>

00:07:32*Gnjurac quit (Remote host closed the connection)
00:09:47*chopzwei quit (Ping timeout: 250 seconds)
00:10:20*gangstacat quit (Quit: Ĝis!)
00:15:29*mitai42 quit (Ping timeout: 248 seconds)
00:22:52*chopzwei joined #nim
00:27:42*gangstacat joined #nim
00:28:17*find0x90 quit (Quit: find0x90)
00:34:28*find0x90 joined #nim
00:37:57*leorize joined #nim
01:03:32*Jesin joined #nim
01:13:04*zahary quit (Quit: Leaving.)
01:13:22*fjvallarino quit (Remote host closed the connection)
01:13:48*fjvallarino joined #nim
01:14:10*donlzx joined #nim
01:18:25*fjvallarino quit (Ping timeout: 248 seconds)
01:22:15*find0x90 quit (Quit: find0x90)
01:33:22*find0x90 joined #nim
01:37:23*fjvallarino joined #nim
01:40:33*find0x90 quit (Quit: find0x90)
01:41:53*Lord_Nightmare quit (Ping timeout: 248 seconds)
01:48:40*ldlework quit (Ping timeout: 256 seconds)
01:50:14*Jesin quit (Quit: Leaving)
01:52:32*Jesin joined #nim
01:53:32*donlzx quit (Remote host closed the connection)
01:55:37*xkapastel quit (Quit: Connection closed for inactivity)
02:01:38*craigger quit (Quit: bye)
02:01:40*ldlework joined #nim
02:03:43*craigger joined #nim
02:19:23*ldlework quit (Quit: co'o ro do)
02:21:14*ldlework joined #nim
02:29:52*floppydh quit (Remote host closed the connection)
02:30:45*floppydh joined #nim
02:57:17*leorize quit (Quit: WeeChat 2.1)
03:33:43*Lord_Nightmare joined #nim
03:45:09*endragor joined #nim
03:46:16*yglukhov[i] joined #nim
03:46:37*fjvallarino quit (Remote host closed the connection)
03:47:03*fjvallarino joined #nim
03:49:27*yglukhov[i] quit (Remote host closed the connection)
03:51:05*fjvallarino quit (Ping timeout: 240 seconds)
03:53:32*Lord_Nightmare quit (Ping timeout: 268 seconds)
03:58:48*skrylar quit (Quit: Leaving)
04:02:15*Lord_Nightmare joined #nim
04:17:29*lompik joined #nim
04:17:48*mitai42 joined #nim
04:20:20*cspar_ quit (Ping timeout: 260 seconds)
04:27:30*mitai42 quit (Ping timeout: 260 seconds)
04:28:24*rockcavera quit (Remote host closed the connection)
04:32:37*NimBot joined #nim
04:38:58*fjvallarino joined #nim
04:41:17*JacobEdelman quit (Quit: The Lounge - https://thelounge.github.io)
04:55:48*chopzwei quit (Quit: Leaving)
04:57:43*miran joined #nim
05:07:20*rockcavera joined #nim
05:15:43FromGitter<GULPF> @kaushalmodi I can take a look at the regression from my PR later today, it would be helpful if you report it on github
05:19:17*bozaloshtsh quit (Quit: ZNC 1.7.0 - https://znc.in)
05:19:33*bozaloshtsh joined #nim
05:19:33*bozaloshtsh quit (Changing host)
05:19:33*bozaloshtsh joined #nim
05:20:15*bozaloshtsh quit (Client Quit)
05:21:44*lompik quit (Ping timeout: 256 seconds)
05:22:16*bozaloshtsh joined #nim
05:22:16*bozaloshtsh quit (Changing host)
05:22:16*bozaloshtsh joined #nim
05:37:06*nsf joined #nim
05:46:19*Vladar joined #nim
05:49:03*data-man joined #nim
05:58:36FromGitter<Varriount> Tanger: Are you around?
05:58:52TangerVarriount: Yeah mate
05:59:18FromGitter<Varriount> Tanger: It just so happens (by luck) that the "file size must not be 0" also applies to Windows: https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-createfilemappinga
05:59:39FromGitter<Varriount> "An attempt to map a file with a length of 0 (zero) fails with an error code of ERROR_FILE_INVALID. Applications should test for files with a length of 0 (zero) and reject those files."
06:00:00*Cthalupa quit (Read error: Connection reset by peer)
06:00:13*Cthalupa joined #nim
06:02:00TangerHaha, lucky! I was looking everywhere for the windows equivalent (and definition) of mmap, but I have no experience at all with MS stuff
06:02:16TangerCoded by coincidence for sure
06:02:47FromGitter<Varriount> Well, it kinda makes sense. A memory map of 0 bytes is mostly useless.
06:05:07FromGitter<Varriount> Tanger: My only concern (which is with the memory map module in general) is that it's very susceptible to race conditions, such as if the file size rapidly fluctuates.
06:06:00FromGitter<Varriount> Such as if, between the call to fstat and mmap, the file gets truncated to 0 (or goes from 0 to a positive number).
06:10:25FromGitter<Varriount> Tanger: The PR looks mostly ok, I just need to scan the Windows documentation a bit more.
06:10:38TangerFor sure
06:14:35*miran quit (Ping timeout: 265 seconds)
06:14:40TangerI see what you mean about the raceyness though. It's a shame that's just part and parcel of the module
06:16:49*Jesin quit (Ping timeout: 256 seconds)
06:27:21*gangstacat quit (Ping timeout: 240 seconds)
06:27:48*gangstacat joined #nim
06:29:13FromGitter<Varriount> It's a fault with filesystems in general. Generally speaking, there's no way to perform a "transactional" call that can execute a number of filesystem operations at once.
06:30:11FromGitter<Varriount> Tanger: Well, that's not quite true - Windows has a "Transactional NTFS" API that solves this problem, however it's been deprecated. (NTFS = The standard Windows filesystem).
06:37:23TangerAh, so similar to how DB transactions work?
06:38:47*gangstacat quit (Ping timeout: 276 seconds)
06:39:02*zielmicha[m] quit (Ping timeout: 260 seconds)
06:39:02*Jipok[m] quit (Ping timeout: 260 seconds)
06:39:06*endes[m] quit (Ping timeout: 260 seconds)
06:39:37*solitudesf quit (Ping timeout: 260 seconds)
06:40:58*byteflame quit (Ping timeout: 260 seconds)
06:41:36*solitudesf joined #nim
06:41:40*zielmicha[m] joined #nim
06:42:28*endes[m] joined #nim
06:43:18*planetis[m] quit (Ping timeout: 260 seconds)
06:44:25*Jipok[m] joined #nim
06:45:51*planetis[m] joined #nim
06:46:41FromGitter<Varriount> Tanger: Yeah
06:49:50*byteflame joined #nim
07:02:12*donlzx joined #nim
07:02:39*donlzx quit (Client Quit)
07:03:09*donlzx joined #nim
07:17:05*Cthalupa quit (Ping timeout: 255 seconds)
07:26:51*Cthalupa joined #nim
07:29:59*donlzx quit (Remote host closed the connection)
07:41:00*zahary joined #nim
07:50:29*zahary quit (Quit: Leaving.)
08:07:41*dddddd joined #nim
08:18:05*Cthalupa quit (Read error: Connection reset by peer)
08:18:08*Cthalupa- joined #nim
08:34:55*zahary joined #nim
09:01:33*rauss quit (Read error: Connection reset by peer)
09:03:05*rauss joined #nim
09:30:42*zahary quit (Quit: Leaving.)
09:58:13*xet7 joined #nim
10:04:10*gangstacat joined #nim
10:24:25*noonien joined #nim
10:26:09*pwntus quit (Ping timeout: 248 seconds)
11:03:26*smt_ quit (Ping timeout: 256 seconds)
11:20:58*gangstacat quit (Ping timeout: 260 seconds)
11:24:57*elrood joined #nim
11:33:31*gangstacat joined #nim
11:35:21*smt joined #nim
11:37:02*hylix joined #nim
11:39:49*arecaceae quit (Read error: Connection reset by peer)
11:40:14*arecaceae joined #nim
11:52:01*mitai42 joined #nim
11:53:19*xet7 quit (Quit: Leaving)
12:06:43*craigger quit (Quit: bye)
12:06:54*craigger joined #nim
12:40:09*cspar_ joined #nim
13:02:38*krux02 joined #nim
13:07:13FromGitter<alehander42> this python backend idea from the forum is not very useful, but funny indeed
13:09:36*cspar__ joined #nim
13:12:04*cspar_ quit (Ping timeout: 256 seconds)
13:13:42FromGitter<alehander42> I think with copying and tweaking jsffi / jsgen one can easily get something halfway there
13:14:34FromGitter<alehander42> even generalizing JsObject/PyObject to some kind of DynamicObject etc and reusing some more stuff
13:15:30FromGitter<alehander42> it would be very unproductive to have such a backend, but technically it seems straightforward
13:30:08FromGitter<qqtop> I get this ⏎ Warning: getDayOfWeek is deprecated [Deprecated] ⏎ So what should be used instead now ?
13:30:39*wintermu1ed left #nim (#nim)
13:30:42*fjvallarino quit (Remote host closed the connection)
13:30:49*fjvallarino joined #nim
13:33:36*DarkArctic joined #nim
13:34:30*hylix quit (Ping timeout: 260 seconds)
13:40:38*ashleyk joined #nim
13:41:09FromGitter<kaushalmodi> @GULPF Thank you. Done in https://github.com/nim-lang/Nim/issues/8142.
13:44:13*xkapastel joined #nim
13:53:09FromGitter<kaushalmodi> @qqtop That fn isn't deprecated.. but that fn with that particular signature is.
13:53:22FromGitter<kaushalmodi> It says in the docs: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b34e852ce3b0f268d4afc57]
13:53:42FromGitter<kaushalmodi> So .. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b34e866d2abe4668891cecd]
13:54:17FromGitter<kaushalmodi> See https://nim-lang.org/docs/times.html#getDayOfWeek,MonthdayRange,Month,int
13:55:21FromGitter<kaushalmodi> If you like, you can even do: ⏎ ⏎ ```import times ⏎ echo getDayOfWeek(28, 6.Month, 2018) # correct``` [https://gitter.im/nim-lang/Nim?at=5b34e8c97da8cd7c8c756b96]
13:58:11*endragor quit (Remote host closed the connection)
13:58:38*endragor joined #nim
14:03:40*endragor quit (Ping timeout: 260 seconds)
14:11:10*cryptocat1094 joined #nim
14:13:32FromGitter<qqtop> Aha, thanks that explains it , while I find the deprecated style usefull too .
14:15:56*Zevv joined #nim
14:18:23FromGitter<kaushalmodi> Earlier, you could set the month int to 1000 and it would still compile
14:18:35FromGitter<kaushalmodi> Now day and month are limited to valid values
14:19:08FromGitter<kaushalmodi> Try doing `echo getDayOfWeek(40, 6.Month, 2018)` :)
14:19:41FromGitter<kaushalmodi> The deprecated signature allowed compiling with day set to an invalid value.
14:20:11FromGitter<qqtop> Yep, I had my own validation routines for that , which now can be deprecated :)
14:32:23*Amun_Ra quit (Quit: Gdyby mi się chciało tak jak mi się nie chce...)
14:33:31*Amun_Ra joined #nim
14:35:14*wangzheng joined #nim
14:35:47wangzhengIs there anyone?
14:36:29*wangzheng left #nim ("WeeChat 2.1")
14:36:31Yardanicowangzheng, yes, there's a lot of people here
14:36:32Yardanicooops
14:36:34Yardanicohe already left :D
14:36:53Yardanicosome people don't know how IRC works it seems :)
14:39:53*rauss quit (Quit: WeeChat 2.1)
14:40:38*rauss joined #nim
14:55:28*miran joined #nim
15:05:09FromGitter<ephja> some just expect a reply in 2 minutes
15:07:33dom96Is anyone here?
15:07:34dom96No?
15:07:35dom96okay
15:07:36dom96bye
15:07:43ldleworkfine then!
15:07:56Yardanicobtw, @kaushalmodi you may want to also try "strscans" for this - https://scripter.co/notes/nim/#6-dot-3-dot-2-parsing-the-wikipedia-page-counts-format
15:09:55cryptocat1094They seem to expect us to be doing nothing other than staring at our irc clients obsessively.
15:14:47FromGitter<kaushalmodi> Yardanico: Someone is reading/reviewing? my notes, yay! :)
15:15:35FromGitter<kaushalmodi> I need to get back to Nim in Action book .. that snippet was from there. I will look at strscans. Thanks!
15:17:36*nsf quit (Quit: WeeChat 2.1)
15:37:18Yardanicodom96, btw, is offtopic allowed on nim forum - https://forum.nim-lang.org/t/3986 ? :)
15:41:35*nasusiro joined #nim
15:45:26*cspar__ quit (Ping timeout: 276 seconds)
15:55:09*cspar__ joined #nim
16:03:09*smt` joined #nim
16:04:27FromGitter<Quelklef> oh my god
16:04:31FromGitter<Quelklef> please tell me it's a troll
16:06:03*fjvallarino quit (Remote host closed the connection)
16:06:32*fjvallarino joined #nim
16:07:02*smt quit (Ping timeout: 260 seconds)
16:09:39*vivus joined #nim
16:11:09*fjvallarino quit (Ping timeout: 264 seconds)
16:14:14*vivus quit (Client Quit)
16:17:44cryptocat1094It obviously is. Machine translation results in better writing.
16:29:19*francisl joined #nim
16:29:31nasusiroquestion: what's tinyc's use in nim's root directory? https://github.com/nim-lang/Nim
16:37:02*hylix joined #nim
16:44:53FromDiscord<awr> is there a way to do weak linking in nim?
16:48:09*fjvallarino joined #nim
16:48:42*fjvallarino quit (Remote host closed the connection)
16:48:48*fjvallarino joined #nim
16:55:02FromGitter<Varriount> nasusiro: There has been work to use TinyC as a kind of REPL for Nim.
16:55:11FromGitter<Varriount> (Partial work)
16:55:26nasusiroVarriount: ah I see
16:55:57nasusiroI'm asking because I'm using tcc in place of gcc for most of my C89 and C99 project, that's why I was wondering
16:56:14dom96Yardanico: lol, my brain just filled in "nim" in there
16:56:18dom96Didn't even notice it was off-topic
16:56:22dom96just thought it was very poorly written
16:59:01FromDiscord<awr> i want to "optionally" link to a dynamic library but i don't want it to be the end of the world if the library can't be found. ideally i want delay loading/weak linking but i guess i can use `loadLib` and punch in all the symbols
17:01:16FromDiscord<awr> i figured something with `codegenDecl` pragma with a weak attribute, but idk how it would operate with `dynlib` and `importc`
17:05:46Yardanicodom96, btw, his issue probably was with windows 10 - "w10" :D
17:09:27*dorelix quit (Quit: Leaving)
17:11:50*Arrrr joined #nim
17:15:14*icebattle quit (Quit: leaving)
17:17:22FromGitter<ephja> awr: a compile-time/runtime variable bridge would allow the loading to be done automatically like now while also allowing for recovery. I think that's scheduled for 2.0 though
17:20:26*icebattle joined #nim
17:25:28*krux02 quit (Remote host closed the connection)
17:35:34*hylix quit (Read error: Connection reset by peer)
17:41:17*gangstacat quit (Ping timeout: 260 seconds)
17:43:04*DarkArctic quit (Read error: Connection reset by peer)
17:55:23FromGitter<codenoid> hi, i have oot question
17:55:40FromGitter<codenoid> how to execute query with curl and Postgres HTTP API
17:55:47FromGitter<codenoid> https://wiki.postgresql.org/wiki/HTTP_API
17:55:48*Arrrr quit (Quit: Arrrr)
17:58:25*fjvallarino quit (Remote host closed the connection)
17:58:53*fjvallarino joined #nim
17:59:31*fjvallarino quit (Remote host closed the connection)
17:59:38*fjvallarino joined #nim
18:03:28*gangstacat joined #nim
18:15:04*krux02 joined #nim
18:17:46FromGitter<kayabaNerve> @mratsim I'd like your help when you have a few
18:18:12FromGitter<kayabaNerve> It's about the Status-im SECP256K1 Wrapper. You did work on that, right?
18:23:47FromGitter<kayabaNerve> Never mind. I fixed that issue. More may come.
18:29:21*cspar__ quit (Ping timeout: 260 seconds)
18:32:22*cspar__ joined #nim
18:39:32*Ven`` joined #nim
18:41:59*Yaargh joined #nim
18:49:59FromGitter<kayabaNerve> If I have a string, and I need a ptr cuchar, can I directly cast that? Nim mainly just talks about string being passable to a cstring arg, which I know I could cast...
18:52:35*cspar__ quit (Ping timeout: 240 seconds)
18:53:40*francisl quit (Quit: francisl)
18:58:41*nsf joined #nim
19:05:13*cspar__ joined #nim
19:12:23*cryptoca1 joined #nim
19:13:14*cryptocat1094 quit (Ping timeout: 260 seconds)
19:19:50*Yaargh left #nim ("Closing Window")
19:21:02*francisl joined #nim
19:21:26FromGitter<Varriount> @kayabaNerve cuchar?
19:21:53FromGitter<Varriount> Do you mean a `ptr char`?
19:22:09FromGitter<ephja> it corresponds to "unsigned char" in C
19:22:28FromGitter<Varriount> How is that different from a regular char?
19:23:00FromGitter<Varriount> I mean, aren't chars in C unsigned by default?
19:23:10FromGitter<Varriount> Or rather, does the C code even care?
19:23:34FromGitter<ephja> I don't think it's specified
19:24:16FromGitter<ephja> why is the target type "ptr cuchar" rather than cstring?
19:34:07FromGitter<kayabaNerve> I have no idea why the hell uchar exists
19:34:19*cryptoca1 quit (Quit: WeeChat 1.6)
19:34:34*cryptocat1094 joined #nim
19:34:34FromGitter<kayabaNerve> It's a BS type only possibly explained by they may have used an int8 for simplicity as the core ASCII table only goes to 128
19:35:01FromGitter<kayabaNerve> But the code I'm using is C and demands uchar
19:35:06FromGitter<kayabaNerve> Or, in Nim, cuchar
19:35:17FromGitter<kayabaNerve> @mratsim Would love some feedback when you have a minute.
19:35:59FromGitter<ephja> anyway, if it's the same as cstring or char* then you can do castptr cuchar (str[0].addr), but only if it's null-terminated. don't do "str.addr" because a string in Nim is something like (capacity, length, pointer to buffer).
19:37:01FromGitter<kayabaNerve> I remembered you can get the char via [] so I just did castptr cuchar (addr msg[0]),
19:37:17FromGitter<ephja> if it's stored and used later in the C lib then you need to either make a copy or increment and decrement the reference count of the Nim string accordingly, with GC_ref and GC_unref, respectively. these aspects are mentioned in the cstring section of the manual
19:37:24FromGitter<kayabaNerve> It's Nim string -> ptr cuchar
19:37:26FromGitter<ephja> yeah
19:39:33FromGitter<kayabaNerve> Or in this case, Nim string -> First Char -> Its Address -> Ptr Cuchar
19:40:32FromGitter<ephja> does the interface expect the length to be specified since it doesn't take a char*?
19:40:41FromGitter<kayabaNerve> 32 chars exactly
19:43:54FromGitter<ephja> "ptr array[32, cuchar]" might make sense then
19:54:34*francisl quit (Quit: francisl)
20:11:46FromGitter<kaushalmodi> If I have a Nimble project that I intend to use as a library and not have a standalone binary, but if I still have tests in `when isMainModule:`, what would be the `nimble build` flow?
20:11:55FromGitter<kaushalmodi> `nimble build` gives: ⏎ ⏎ > Error: Nothing to build. Did you specify a module to build using the `bin` key in your .nimble file?
20:12:00*Vladar quit (Quit: Leaving)
20:12:13FromGitter<kaushalmodi> As it's a library, I don't want to specify a `bin`
20:12:23Yardanicoyes, then you should add tests
20:12:40FromGitter<kaushalmodi> i.e. not use `isMainModule`?
20:12:56Yardanicowell, you can still use them and compile/run your library file in some nimble task
20:12:59Yardanicoe.g. "nimble test"
20:13:29FromGitter<kaushalmodi> hmm, will need to finally look into nimble tasks then :)
20:13:52*noonien quit (Quit: Connection closed for inactivity)
20:13:53FromGitter<kaushalmodi> I didn't want to learn "one more" Makefile syntax :P
20:14:41*CodeVance joined #nim
20:15:36Yardanicowell, nimble files mostly have nim syntax
20:16:55federico3TIL https://github.com/trustable-code/NiGui
20:17:04FromGitter<kaushalmodi> So I added: ⏎ ⏎ ```task test, "Runs the tests in strfmt.nim": ⏎ exec "nim c -r strfmt.nim"``` [https://gitter.im/nim-lang/Nim?at=5b354240b9c2fb255714213e]
20:17:54FromGitter<kaushalmodi> should I run `nimble test` to run that task? But I see that `nimble` has an inbuilt `test` switch too..
20:19:39FromGitter<kaushalmodi> I see.. by doing above, I overrode the default `nimble test` behavior:https://github.com/nim-lang/nimble#tests
20:20:45*CodeVance quit (Ping timeout: 264 seconds)
20:20:58miranfederico3: i played a bit with nigui, seems quite nice
20:21:40federico3I wish it supported android and ios as well
20:22:02*CodeVance joined #nim
20:25:19Yardanicofederico3, firstly it should support more complicated win/gtk controls
20:25:44Yardanicoto be at least on par feature-wise with libui
20:26:34federico3ah but nimx does
20:27:46*krux02 quit (Remote host closed the connection)
20:27:58*cspar__ quit (Ping timeout: 264 seconds)
20:28:41*CodeVance1 joined #nim
20:28:51*CodeVance1 left #nim (#nim)
20:29:46*CodeVance quit (Ping timeout: 260 seconds)
20:31:36*CodeVance joined #nim
20:32:05Yardanicofederico3, but nimx support far more element types than nigui :)
20:32:22Yardanicothat's because nimx uses SDL2
20:32:30*miran quit (Ping timeout: 265 seconds)
20:34:34federico3but it has many build dependencies :(
20:36:52Yardanicofederico3, what do you mean?
20:37:10Yardanicosdl2, opengl are the main third-party libs
20:38:06federico3Yardanico: try nimble-installing it
20:40:02FromGitter<kaushalmodi> I am trying to revive lyro's strfmt module.. I will need help it seems: https://github.com/kaushalmodi/strfmt/commit/7270c207500264c091bfded2995f0228fb815c43
20:40:07Yardanicofederico3, but it's not bad, is it?
20:40:47Yardanicoit's ok that complicated libraries/apps depend on a lot of packages
20:49:49*cspar__ joined #nim
20:50:37*cryptocat1094 quit (Quit: WeeChat 1.6)
20:56:28FromGitter<ephja> @kaushalmodi it's a nice lib, but a lot of the features are available in the official strformat module now
20:57:13Yardanicoyeah, but strformat doesn't have some features strfmt has
20:57:28Yardanicobut they're not really commonly used
20:57:53federico3Yardanico: not ok for me, build dependencies don't come for free
20:58:14Yardanicofederico3, well, so you think it's better to copy all modules in another module?
20:58:18Yardaniconimble exists for a reason
20:58:55FromGitter<kaushalmodi> @ephja I have been quite thorough in understanding what `strformat` does: https://scripter.co/notes/nim-fmt/ :P
20:59:08federico3Yardanico: it's not that simple
20:59:15FromGitter<kaushalmodi> It's just that I don't want the awesome work done in `strfmt` be lost
20:59:49FromGitter<kaushalmodi> `strformat` is basically Python's f-string implementation and `strfmt` is Python's `.format` implementation.
20:59:57Yardanico"`strfmt` is Python's `.format` implementation." not really
21:00:13FromGitter<kaushalmodi> well.. sort of
21:00:34FromGitter<kaushalmodi> the .. `{}` syntax
21:05:31*nuknown joined #nim
21:16:01carterza[m]Is there a nim off topic discord channel?
21:16:35Yardanicocarterza[m], yes? it's linked to #nim-offtopic
21:19:52*cspar__ quit (Ping timeout: 265 seconds)
21:22:49*find0x90 joined #nim
21:25:33*nsf quit (Quit: WeeChat 2.1)
21:26:13*find0x90 quit (Client Quit)
21:35:45*ashleyk quit (Remote host closed the connection)
21:35:58*ashleyk joined #nim
21:44:49*Ven`` quit (Read error: Connection reset by peer)
21:45:11*Ven`` joined #nim
21:48:55*cspar__ joined #nim
22:17:38*Ven`` quit (Quit: q+)
22:18:47*elrood quit (Quit: Leaving)
22:21:41FromDiscord<awr> is there a way for a macro to modify the code of an imported module
22:28:32FromGitter<kaushalmodi> Success! All `strfmt` tests now pass :)
22:28:35FromGitter<kaushalmodi> https://github.com/kaushalmodi/strfmt
22:36:43dom96awr: only if you wrap an `include` in a macro call IIRC
22:40:24FromGitter<honewatson> @kaushalmodi thank you for your contribution
22:51:02FromDiscord<awr> thanks dom
23:03:11*zahary joined #nim
23:06:03*cspar__ quit (Ping timeout: 256 seconds)
23:06:49*find0x90 joined #nim
23:15:00*zahary quit (Quit: Leaving.)
23:27:29*Cthalupa- quit (Ping timeout: 248 seconds)
23:27:32*CodeVance_ joined #nim
23:30:05*CodeVance quit (Ping timeout: 260 seconds)
23:31:53FromGitter<Quelklef> There're languages that support types e.g. `seq[string | int]` like `@[1, 2, "three", 4, 5, "six"]`, right? What's this called?
23:35:47nasusirohash table (Perl), associative array (PHP), dictionary (Python)
23:36:54FromGitter<Quelklef> I mean, a statically typed language
23:37:15FromGitter<Quelklef> I swear I saw it somewhere, not sure where. Scala, maybe?
23:37:51*btbytes joined #nim
23:38:46FromGitter<Quelklef> The real reason I'm asking is that I have a `array[int]`, but I want some of the values to be allowed to be `func(): int` instead
23:39:00*arecaceae quit (Remote host closed the connection)
23:39:23FromGitter<Quelklef> i.e. all of the values may be static, but they may also be generated on every time I need them
23:39:24*arecaceae joined #nim
23:39:37FromGitter<Quelklef> this isn't to hard to solve, but it does require some bulky boilerplate
23:40:34FromGitter<Quelklef> what was once `[1, 2, 3, 4]` has to become `[constant(1), constant(2), constant(3), constant(4)]` but I can include e.g. `dynamic(someReference)` in it...
23:41:25FromGitter<Quelklef> so that if the dynamic one is accessed, it will be a function `proc(): auto = someReference`
23:41:43FromGitter<Quelklef> hopefully I've explained myself ok (?), if anyone has a good solution to this please tell me!
23:42:27FromGitter<Varriount> Quelklef: You can use object variants for that.
23:42:37nasusiroI wish I could help but I'm complete newbie with Nim
23:42:54FromGitter<Quelklef> @Varriount yeah, I solved it that way, but the boilerplate is ugly
23:43:26FromGitter<Varriount> I suppose some languages might create the variant type behind the scenes and automatically wrap/unwrap the contained types
23:45:09FromGitter<Quelklef> That'd make sense
23:45:55FromGitter<Quelklef> "static typing heterogeneous array" is not giving me much on Google, perhaps I'm misremembering...
23:48:10FromGitter<Varriount> You could probably almost achieve this in Nim through use of term rewriting macros.
23:49:17FromGitter<Quelklef> almost?
23:54:27*leorize joined #nim