<< 20-10-2015 >>

00:01:45*coryg joined #nim
00:12:26*coryg quit (Ping timeout: 246 seconds)
00:13:11*Kingsquee joined #nim
00:13:42desophoshey Araq, did you see my discussion with cazov and gmpreussner yesterday about unqualified imports? i'd like to hear your take/opinion
00:15:13Araqmy opinion is that Nim is not Python.
00:15:31*coryg joined #nim
00:20:59desophoslet me rephrase: i'd like to hear your reasoning for choosing to import symbols as unqualified by default, and your opinion on a hypothetical whole-type import ability
00:21:25*SianaGea1z is now known as SianaGearz
00:36:14Araqsorry, was away.
00:37:23Araqmy reasoning? contrary to what you claim, there is no wide-spread language that requires you to list everything that you import
00:38:53Araqthey all have obj.foo rather than module.foo(obj)
00:40:11Araqnow you say, ok, but it's in that lovely type based subscope. well ok, but Nim accomplishes the same with overloading resolution
00:40:39*coryg quit (Ping timeout: 240 seconds)
00:42:03*coryg joined #nim
00:44:21Araqand if you want "from pegs import Peg and its operations" -- why does escapeForPeg(s: string): string hurt you and escapeForPeg(p: string): Peg doesn't?
00:47:24desophoshmm, i guess my concern is more with code encapsulation; i like to know where all my code lives. if escapeFromPeg is in the pegs module but doesn't affect a Peg directly, i suppose it would be a utility method, in which case it probably shouldn't be exported anyway unless it's a common utility, in which case it should be in a utility module
00:48:50desophoson the other hand... being able to control what's exported does help significantly, i think
00:49:16Araqfrom time to time I try "from foo import bar, boo, baz"
00:49:43Araqmost of the time it ends up to be an annoyance
00:50:19Araqif you want to know where the identifier comes from, press F2 and jump to its definition. nimsuggest is editor-agnostic for this reason.
00:51:21Araqand if you think that it's bad to require IDE-based solutions for language design problems, then please think again: Every language out there has this support, no matter how the imports are handled.
00:51:39*jaco60 quit (Ping timeout: 240 seconds)
00:52:34Araqand Nim is actually already really flexible in its import mechanism. Want to enforce module.foo syntax? use 'from module import nil'.
00:52:55Araqwant to get rid of a nasty name? use "import module except evil".
00:53:38desophosand with export control, a module author can ensure that users don't accidentally import anything they don't need
00:55:01desophosNim gives users a lot of control over imports and exports
00:55:26Araqyeah but this would be something like: proc foo+(a, b: int) # + means you can access it, but you need to ask for it.
00:55:42desophosthat would be cool
00:55:55Araqwhich would be a reasonable additon to the module system I guess, but my fear is that it would quickly be overused
00:57:23Araqalso the policy is that the importer gets to decide, not the exporter.
00:59:16Araqwe have module in the stdlib that scream "please use from module import nil" to import it. IMO that's fine.
00:59:42Araqand interestingly this module uses .immediate macros *everywhere*.
01:00:11Araqand you know what .immediate macros do? circumvent the overloading mechanism. Quite telling.
01:00:27desophosinteresting
01:00:34desophoswhich module is that?
01:00:40Araqhtmlgen
01:00:49desophosah
01:00:55desophossounds useful haha
01:00:59Araqit is so old that it predates overloading for macros.
01:04:23desophosthanks for the discussion
01:04:47*nande quit (Remote host closed the connection)
01:05:42desophosit's great to be able to talk to the language designer!
01:07:12Araqhe he, thanks.
01:08:32Araqmany just want a more beautiful "sanctionized" way to write "from foo import nil" (which enforces full qualification)
01:09:25Araqbut this is a template away and a shorter syntax for something that enforces the longer syntax everywhere else is a weird thing too.
01:10:40Araqtemplate use(x) = from x import nil
01:11:06Araquse strutils
01:12:19Araqyou can then use --import in your project configuration to make every module understand 'use' without having to import 'use' ...
01:13:41Araqgood night.
01:13:57desophosgood night!
01:26:18*dashed joined #nim
01:34:33*brson quit (Quit: leaving)
01:35:02*coryg quit (Ping timeout: 246 seconds)
01:38:18*coryg joined #nim
01:46:30*desophos_ joined #nim
01:50:59*desophos_ quit (Ping timeout: 265 seconds)
01:53:35*coryg quit (Ping timeout: 246 seconds)
01:54:41*coryg joined #nim
01:58:36*Jesin joined #nim
02:00:36*\u quit (Quit: ZNC - http://znc.in)
02:22:38*coryg quit (Ping timeout: 246 seconds)
02:23:46*coryg joined #nim
02:30:19*coryg quit (Ping timeout: 240 seconds)
02:31:41*coryg joined #nim
02:35:38desophosi'm getting a confusing "undeclared field" error when i've clearly declared the field on the object. i believe this is some sort of module-related error because when i move the object declarations into the same file, the error goes away (well, changes): https://bpaste.net/show/b122fa9bb2a0
02:41:59desophoshuh, weird. it had something to do with using `let` instead of `var`
02:42:43desophosi have no idea why
02:50:38*coryg quit (Ping timeout: 246 seconds)
02:52:29*darkf joined #nim
02:53:45*coryg joined #nim
02:57:50desophossomething about expressions and the way `let` declarations work
02:59:39*coryg quit (Ping timeout: 240 seconds)
03:00:44*coryg joined #nim
03:12:41*coryg quit (Ping timeout: 246 seconds)
03:15:48*coryg joined #nim
03:37:07*strcmp1 joined #nim
03:44:11*coryg quit (Ping timeout: 246 seconds)
03:51:01*tymat quit (Ping timeout: 268 seconds)
03:53:24*tymat joined #nim
04:11:45*THE_LORD quit (Ping timeout: 250 seconds)
04:13:35*strcmp2 joined #nim
04:16:06*strcmp1 quit (Ping timeout: 240 seconds)
04:28:44*Sornaensis joined #nim
04:30:24*mrkishi joined #nim
04:37:21*Sornaensis quit (Max SendQ exceeded)
04:38:01*Sornaensis joined #nim
04:44:15*Sornaensis quit (Ping timeout: 250 seconds)
04:50:50*Jesin quit (Ping timeout: 260 seconds)
04:56:45*Sornaensis joined #nim
04:56:45*Sornaensis quit (Excess Flood)
04:56:52*Sornaensis joined #nim
05:01:59*desophos_ joined #nim
05:03:45*Sornaensis quit (Ping timeout: 250 seconds)
05:04:39*Sornaensis joined #nim
05:06:14*desophos_ quit (Ping timeout: 260 seconds)
05:07:04*Sornaensis quit (Max SendQ exceeded)
05:10:23*mrkishi quit (Remote host closed the connection)
05:11:14*mrkishi joined #nim
05:13:56*Sornaensis joined #nim
05:19:21*Sornaensis quit (Ping timeout: 250 seconds)
05:20:17*Sornaensis joined #nim
05:25:51*Sornaensis quit (Ping timeout: 250 seconds)
05:43:54*gsingh93 quit (Quit: ZNC - http://znc.in)
05:44:16*gsingh93 joined #nim
05:44:58*Sornaensis joined #nim
05:50:09*vqrs quit (Ping timeout: 256 seconds)
05:51:53*Sornaensis quit (Max SendQ exceeded)
05:53:54*Sornaensis joined #nim
05:55:18*Sornaensis quit (Excess Flood)
05:55:27*Sornaensis joined #nim
05:57:07*Sornaensis quit (Excess Flood)
05:58:18*vqrs joined #nim
06:12:46*gmpreussner_ joined #nim
06:21:57*gmpreussner_ quit (Ping timeout: 244 seconds)
06:22:13*gmpreussner_ joined #nim
06:36:32*bjz joined #nim
06:36:45*Sornaensis joined #nim
06:41:15*Sornaensis quit (Ping timeout: 250 seconds)
06:42:50*bjz quit (Ping timeout: 240 seconds)
06:43:50*Sornaensis joined #nim
06:45:17*Ven joined #nim
06:48:49*gmpreussner_ quit (Ping timeout: 244 seconds)
06:49:29*Sornaensis quit (Ping timeout: 250 seconds)
06:49:57*Sornaensis joined #nim
06:54:15*Sornaensis quit (Ping timeout: 250 seconds)
07:01:40*desophos quit (Read error: Connection reset by peer)
07:02:08*bjz joined #nim
07:05:21*Sornaensis joined #nim
07:07:16*gokr joined #nim
07:13:45*Sornaensis quit (Ping timeout: 250 seconds)
07:13:48*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:15:08*Ven joined #nim
07:15:23*Sornaensis joined #nim
07:19:41*yglukhov joined #nim
07:20:15*Sornaensis quit (Ping timeout: 250 seconds)
07:25:02*bjz_ joined #nim
07:25:14*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:26:38*bjz quit (Ping timeout: 250 seconds)
07:30:45*MyMind joined #nim
07:31:02*bjz joined #nim
07:32:26*Sembei quit (Ping timeout: 272 seconds)
07:32:47*bjz_ quit (Ping timeout: 260 seconds)
07:34:43*bjz_ joined #nim
07:35:21*Sornaensis joined #nim
07:36:43*bjz quit (Ping timeout: 250 seconds)
07:40:11*Sornaensis quit (Ping timeout: 250 seconds)
07:41:58*Sornaensis joined #nim
07:46:15*Sornaensis quit (Ping timeout: 250 seconds)
07:47:23*Sornaensis joined #nim
07:52:45*Sornaensis quit (Ping timeout: 250 seconds)
07:57:48*Ven joined #nim
08:02:22*coffeepot joined #nim
08:09:44*Sornaensis joined #nim
08:13:02*PyHedgehog-work quit (*.net *.split)
08:16:35*Sornaensis quit (Ping timeout: 250 seconds)
08:18:04*Sornaensis joined #nim
08:26:32*Ven quit (Read error: Connection reset by peer)
08:26:41*Ven joined #nim
08:27:56*Ven quit (Read error: Connection reset by peer)
08:30:53*Sornaensis quit (Ping timeout: 250 seconds)
08:34:00*Ven joined #nim
08:35:18*Sornaensis joined #nim
08:36:52*Trustable joined #nim
08:43:53*Sornaensis quit (Ping timeout: 250 seconds)
08:44:39*lokulin quit (Ping timeout: 240 seconds)
08:48:55*lokulin joined #nim
08:53:03*elrood joined #nim
09:00:15*yomiel quit (Remote host closed the connection)
09:00:39*Sornaensis joined #nim
09:04:42*yglukhov quit (Ping timeout: 244 seconds)
09:05:33*Sornaensis quit (Ping timeout: 250 seconds)
09:06:44*yglukhov joined #nim
09:11:54*Ven quit (Read error: Connection reset by peer)
09:12:05*Ven joined #nim
09:13:58*Sornaensis joined #nim
09:21:09*Sornaensis quit (Ping timeout: 250 seconds)
09:30:59*Sornaensis joined #nim
09:35:53*Sornaensis quit (Ping timeout: 250 seconds)
09:43:33*yglukhov quit (Remote host closed the connection)
09:43:35*irrequietus joined #nim
09:45:08*Sornaensis joined #nim
09:50:11*Sornaensis quit (Ping timeout: 250 seconds)
09:52:59*Sornaensis joined #nim
10:02:20*dashed quit (Quit: Connection closed for inactivity)
10:03:37*Sornaensis quit (Ping timeout: 250 seconds)
10:07:02*Ven quit (Read error: Connection reset by peer)
10:07:16*Ven joined #nim
10:09:38*Ven quit (Read error: Connection reset by peer)
10:09:38*Sornaensis joined #nim
10:13:54*strcmp2 quit (Ping timeout: 260 seconds)
10:15:19*Sornaensis quit (Ping timeout: 250 seconds)
10:16:19*Sornaensis joined #nim
10:16:34*Ven joined #nim
10:26:48*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:28:39*Kingsquee quit (Remote host closed the connection)
10:35:15*Sornaensis quit (Ping timeout: 250 seconds)
10:36:28*Sornaensis joined #nim
10:40:53*Sornaensis quit (Ping timeout: 250 seconds)
10:46:19*Sornaensis joined #nim
10:58:51*yglukhov joined #nim
11:00:34*yglukhov quit (Remote host closed the connection)
11:00:46*yglukhov joined #nim
11:00:59*yglukhov quit (Remote host closed the connection)
11:01:52*yglukhov joined #nim
11:02:33*Sornaensis quit (Ping timeout: 250 seconds)
11:09:38*Sornaensis joined #nim
11:10:44*BitPuffin joined #nim
11:13:12*Ven joined #nim
11:14:54*razaaa joined #nim
11:15:07*Sornaensis quit (Ping timeout: 250 seconds)
11:19:25*Ven quit (Read error: Connection reset by peer)
11:19:47*Ven joined #nim
11:21:12*Ven quit (Read error: Connection reset by peer)
11:21:47*Ven joined #nim
11:23:15*Ven quit (Read error: Connection reset by peer)
11:23:44*Ven joined #nim
11:25:24cnclwell i'm kind of a nim newbie but don't you need to expose the fields on your object types with a *?
11:27:20cncloh he's gone
11:28:00cnclin sdl2.nim there is a WMinfo type, with a field like,
11:28:03cnclpadding*: array[0.. <24, byte]
11:28:32*Sornaensis joined #nim
11:28:36cnclit says to cast it manually to the type i need if i want to get the data from it (it's a c union in the sdl2 .h file)
11:29:40cncli haven't been able to figure out how to do that. cast[pointer](x.padding[0..<8]) gives me very wrong results, so i think that is probably just grabbing some part of the slice/range
11:29:46*Sornaensis quit (Max SendQ exceeded)
11:30:04cncl(i'm trying to take a 64-bit pointer from the beginning of padding)
11:30:19dom96cast[pointer](x.padding[0])
11:30:22dom96Don't need the slice.
11:31:17*Sornaensis joined #nim
11:31:18*Sornaensis quit (Excess Flood)
11:33:00cnclawesome! thanks
11:34:01*Sornaensis joined #nim
11:34:12cnclhm, looks like it's only taking the first byte of padding
11:35:57dom96you may want to cast it into a typed pointer
11:36:06dom96cast[ptr int64](x.padding[0])
11:36:53cncloh i figured it out
11:37:09cnclcast[array[3, pointer]](x.padding)[0]
11:37:10*bjz_ quit (Ping timeout: 240 seconds)
11:37:12*Sornaensis quit (Excess Flood)
11:37:20cncli think i just explained it badly, sorry
11:37:36*Sornaensis joined #nim
11:37:37*Sornaensis quit (Excess Flood)
11:37:48cncl(and it's interfacing with a c api so it needs to be an untyped pointer)
11:37:57*Sornaensis joined #nim
11:37:58*Sornaensis quit (Excess Flood)
11:38:58*Sornaensis joined #nim
11:39:47dom96cncl, what are you doing with that after?
11:40:42cnclpassing it to a c api. the padding contains a handle to a win32 gui window
11:41:08cnclit's a union declared in a sdl2 .h file, but didn't receive any types in the sdl2.nim wrapper
11:41:25cncla comment in the nim wrapper says to just cast it to whatever you need
11:44:51*bjz joined #nim
11:48:03*Sornaensis quit (Ping timeout: 250 seconds)
11:57:41*bjz quit (Ping timeout: 246 seconds)
12:01:49*bjz joined #nim
12:03:56*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:12:18*Sornaensis joined #nim
12:25:38*bjz_ joined #nim
12:26:12*bjz quit (Ping timeout: 244 seconds)
12:26:54*Ven joined #nim
12:45:01*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:53:02*Ven joined #nim
13:25:05*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:30:25*bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
13:32:15*Ven joined #nim
13:32:19*nchambers quit (Ping timeout: 240 seconds)
13:35:16*nchambers joined #nim
13:37:19*UberLambda joined #nim
13:37:25*gmpreussner_ joined #nim
13:37:35*bjz joined #nim
13:42:05*bjz_ joined #nim
13:42:30*bjz quit (Ping timeout: 260 seconds)
13:47:06*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:49:40*yglukhov_ joined #nim
13:49:42*yglukhov quit (Ping timeout: 265 seconds)
13:53:00*Sornaensis is now known as THE_LORD
13:55:21*pregressive joined #nim
13:56:00*pregressive quit (Client Quit)
13:57:06*pregressive joined #nim
14:06:28*irrequietus_ joined #nim
14:07:40*irrequietus quit (Ping timeout: 252 seconds)
14:27:09*Ven joined #nim
14:35:47*pregressive quit (Remote host closed the connection)
14:36:46*pregressive joined #nim
14:39:26*pigmej quit (Ping timeout: 240 seconds)
14:58:14*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:07:55*gmpreussner_ quit (Ping timeout: 244 seconds)
15:10:59*benaiah quit (Ping timeout: 240 seconds)
15:12:33*Ven joined #nim
15:15:13*benaiah joined #nim
15:18:06*Jesin joined #nim
15:18:35*jaco60 joined #nim
15:33:09*yglukhov joined #nim
15:35:09*smodo joined #nim
15:36:06*yglukhov_ quit (Ping timeout: 255 seconds)
15:37:29*desophos joined #nim
15:37:38*yglukhov quit (Ping timeout: 260 seconds)
15:45:33*PyHedgehog-work joined #nim
15:45:59*Xe is now known as shadowh511
15:46:03*shadowh511 is now known as Xe
15:48:24*edaaa_ joined #nim
16:05:30*coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
16:09:38*edaaa_ quit (Quit: leaving)
16:30:41*Matthias247 joined #nim
16:45:48*Guest46705isaway is now known as Guest46705
16:46:30*PyHedgehog-work quit (Ping timeout: 246 seconds)
16:46:45*brson joined #nim
16:52:35*strcmp1 joined #nim
16:57:21*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:00:59*yglukhov joined #nim
17:08:16*darkf quit (Quit: Leaving)
17:23:29*yglukhov quit (Remote host closed the connection)
17:28:50*desophos quit (Remote host closed the connection)
17:29:02*yglukhov joined #nim
17:33:09*desophos joined #nim
17:37:55*strcmp1 quit (Ping timeout: 256 seconds)
17:40:07*johnsoft quit (Quit: Leaving)
17:40:08*strcmp1 joined #nim
17:40:27*johnsoft joined #nim
17:50:47*strcmp2 joined #nim
17:53:47*strcmp1 quit (Ping timeout: 256 seconds)
17:57:27*THE_LORD quit (Excess Flood)
17:58:47*Sornaensis joined #nim
18:03:57*Sornaensis quit (Excess Flood)
18:05:17*Sornaensis joined #nim
18:06:38desophosis it conventional to name constructors/initializers the same as the TypeName except in pascalCase?
18:06:55desophosi saw that in SDL2 but not sure if that's the usual convention
18:10:23*Sornaensis quit (Excess Flood)
18:11:42*Sornaensis joined #nim
18:14:47*UberLambda quit (Quit: GTG)
18:17:48*Sornaensis quit (Excess Flood)
18:18:52*Sornaensis joined #nim
18:21:38*BitPuffin quit (Ping timeout: 246 seconds)
18:27:21*yglukhov quit (Remote host closed the connection)
18:30:31*Sornaensis quit (Quit: No.)
18:32:21*razaaa quit (Read error: Connection reset by peer)
18:32:28*razaaa____ joined #nim
18:38:19*yglukhov joined #nim
18:41:53*smodo quit (Remote host closed the connection)
18:44:01*xificurC quit (Remote host closed the connection)
18:44:52*xificurC joined #nim
18:47:26*xificurC quit (Remote host closed the connection)
18:47:42*yglukhov quit (Remote host closed the connection)
18:49:09*xificurC joined #nim
18:50:56*desophos quit (Remote host closed the connection)
18:56:04*desophos joined #nim
19:07:59*vendethiel joined #nim
19:15:09*xificurC quit (Remote host closed the connection)
19:15:42*xificurC joined #nim
19:32:36*Sornaensis joined #nim
19:34:18*Sornaensis is now known as THE_LORD
19:38:26*Jesin quit (Quit: Leaving)
20:04:57*desophos quit (Remote host closed the connection)
20:07:14*desophos joined #nim
20:18:09*dashed joined #nim
20:19:48*edaaa_ joined #nim
20:21:01*desophos quit (Remote host closed the connection)
20:24:54AraqOnO: just fyi I really dislike the stderr behaviour of the compiler now. I often use something like debug(t); echo t and now the output order is screwed up since debug uses stderr and echo stdout.
20:26:04OnOyou mean order of compile time echo is screwed with compiler messages?
20:26:16Araqyes
20:26:22Araqer no.
20:26:27Araqnot compile-time echo.
20:26:42Araqbut my debug echos.
20:28:27OnOthen VM time echos?
20:33:48OnOwhy not debug output to stderr then, both VM time and compile time?
20:34:09OnO(I know it is echo without side effects)
20:39:06*Jesin joined #nim
20:39:46Araqi'm not using VM time echos when I edit and run the compiler itself with debug echos.
20:39:57Araqthe VM time echos are fine.
20:40:42Araqbut the ordinary echo is now detached from the "Processing" compiler output, confusing me.
20:45:14OnOokay, you mean ordinary echo in the compiler itself, I understand it just it works bad with your habits, what can I say, maybe we can have a setting of stdout is default or sthing
20:45:22*razaaa____ quit (Quit: Leaving)
20:45:35OnOor use msgWriteln instead to emit your diagnostics
20:48:32Araqwell the real problem is that I'm lazy and cannot set --stdout in my config since my config needs to be the official config on github
20:49:10Araqmaybe I could gitignore the config but then I would have my personal gitignore.
20:49:28Araqcan I gitignore my gitignore? I think so.
20:53:09OnOyeah, you can .gitignore a compiler/.gitignore
20:55:06*xificurC quit (Remote host closed the connection)
20:55:42*xificurC joined #nim
20:56:09*joobus joined #nim
20:57:12joobusAre there any good nim talks to watch online?
20:57:58*desophos joined #nim
20:58:46Araqjoobus: well there is myy strange loop talk
20:58:47*bjz joined #nim
20:59:00*desophos quit (Read error: Connection reset by peer)
20:59:20joobusgot a link?
20:59:29*desophos joined #nim
20:59:30*bjz_ quit (Ping timeout: 240 seconds)
20:59:52edaaa_http://www.infoq.com/presentations/nimrod
21:00:56*desophos quit (Remote host closed the connection)
21:01:02joobusis the first nim conference over now?
21:01:11*desophos joined #nim
21:04:33Araqno. it hasn't even started.
21:04:59Araqdesophos: it's not common, but I suspect it will become common.
21:05:49joobusoh, i see now, just the announcement was posted on oct 16
21:05:52joobusmy bad
21:05:56edaaa_guys, how does nim compare to crystal?
21:06:21edaaa_is it more mature than nim?
21:06:23*strcmp2 quit (Remote host closed the connection)
21:06:46*Roin quit (Ping timeout: 252 seconds)
21:06:49edaaa_i see it has macros and low-level stuff as well
21:06:51*strcmp1 joined #nim
21:06:59joobuscrystal's page says "The project is in alpha stage: we are still tweaking the language and standard library.
21:07:12joobusbut nim might be too
21:08:04reactormonkedaaa_, macros? I don't see any mention of macros in crystal from a first glance.
21:08:34edaaa_the docs mention it, here's the link: http://crystal-lang.org/docs/syntax_and_semantics/macros.html
21:09:06*desophos quit (Ping timeout: 250 seconds)
21:09:29reactormonkah, found it.
21:09:31reactormonkyup ^^
21:12:03reactormonkedaaa_, nim has namespace per file, and you can have OO via unified calling syntax, although dynamic dispatch has to be explicitly declared.
21:12:39*pigmej joined #nim
21:13:10reactormonkedaaa_, also, write tracking/effects - althoug they're WIP in nim
21:13:46edaaa_reactormonk, yes i see
21:14:13reactormonkedaaa_, I've come from ruby as my first language too, and I like nim so far - although I haven't used it lately :-(
21:16:15edaaa_reactormonk, i like nim as well
21:16:57edaaa_reactormonk, it seems to me that nim and crystal are similar in a lot of ways
21:17:17reactormonkedaaa_, the macro system of nim might be a bit more powerful
21:17:18edaaa_reactormonk, and crystal trying to look as ruby as much as possible
21:17:30edaaa_reactormonk, i agree
21:19:38edaaa_reactormonk, i am not sure i like crystal's type inference
21:20:01edaaa_reactormonk, it looks like it's not possible to specify type explicitly at all
21:21:23reactormonkedaaa_, wouldn't look like ruby with types in there :-)
21:23:06edaaa_reactormonk, true that :) but it already diverges from ruby quite a lot macros, pointers and it even has structs
21:25:10edaaa_where can i find more info about nim's read/write effects?
21:25:48joobusis Araq the king of nim right now?
21:25:49*brson quit (Ping timeout: 252 seconds)
21:25:53reactormonkjoobus, still is.
21:25:56reactormonkalways was.
21:26:11reactormonkedaaa_, there's the effects system and write tracking. Not sure about documentation :-/
21:26:22reactormonkbut you can see the tags on some methods.
21:26:27Araqthe effect system is documented.
21:26:47reactormonkedaaa_, http://nim-lang.org/docs/manual.html#effect-system
21:26:52Araqthe write tracking is still in development but I think it will have to wait for Nim 2.
21:27:05reactormonkedaaa_, "Note: Read/write tracking is not yet implemented!"
21:27:46reactormonkjoobus, although he was king of nimrod a while ago.
21:28:17AraqI'm fixing bugs as we speak. bugs always have higher priority than experimental language features unless I get too frustrated with bugs and then rather than watching TV work on the experimental stuff
21:31:43edaaa_Araq, and how stable is the language right now? i mean, is it known what will end up in v1?
21:32:10edaaa_Araq, when i say stable i mean in terms of language design, not bugs
21:32:23Araqyes, the language is stable since years now
21:32:45Araqgetting all these bugs eliminated is lots of hard work though.
21:33:01Araqand responsible for all the delays I can think of.
21:33:14Araqoften a fix also introduces nasty regressions.
21:33:29*irrequietus_ quit ()
21:36:00Araqa couple of months ago I wanted to release a version 1 which clearly communicates "language at version 1, implemention slowly catching up and usable"
21:36:12*strcmp2 joined #nim
21:36:27Araqbut the community was against it and so we crawl to 0.12.0, 0.13.0, ...
21:36:32*pregressive quit (Remote host closed the connection)
21:36:59*strcmp1 quit (Ping timeout: 240 seconds)
21:37:00*nande joined #nim
21:37:13edaaa_ok, i see. but that wasn't such a bad idea imo
21:37:24Araqit took decades for C++ compilers to adhere to the standard. and there were lots of more resources put into C++.
21:39:47Araqyeah, might have to revive this idea. it's just insane to claim we're not 1.0 when a couple of companies use it in production for their flagship products.
21:40:11joobusAraq, which companies?
21:41:04joobusalso, nim would likely get more exposure with a 1.0 release. Seeing 0.11 makes people think it is alpha.
21:41:23edaaa_Araq, yeah, not having v1 is a showstopper for lots of companies
21:41:43*pregressive joined #nim
21:41:47*pregressive quit (Remote host closed the connection)
21:41:52edaaa_Araq, especially if the language itself is 1.0 already
21:42:13*pregressive joined #nim
21:43:12*Guest46705 is now known as Guest46705isaway
21:46:25*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:46:53*brson joined #nim
21:47:49*johnsoft quit (Ping timeout: 244 seconds)
21:48:16*johnsoft joined #nim
21:49:58*pregressive quit (Remote host closed the connection)
21:53:02*johnsoft quit (Ping timeout: 265 seconds)
21:57:59Araqjoobus: Onecodex, 3dicc, Zeo Alliance and others. (Yes, I know, Amazon, Google, Microsoft and Apple is still missing in this list ;-) )
21:58:26joobusyou dream big :)
21:58:30joobusi like it
21:58:57reactormonkAraq, amazon maybe, everyone else has their own language to push :-/
21:59:15edaaa_language gaining traction takes time
21:59:29edaaa_it took around 10 years for ruby and python
21:59:49edaaa_but i think if the language is good (like nim is), people will use it to solve their problems
21:59:51ldleworkAraq: we were in production of huuuuuuge corporations like Yandex and others I wont mention long before we were 1.0
22:00:09ldleworkYou shouldn't let it go to your head.
22:00:38joobusldlework: who is the 'we' you are referring to?
22:00:44ldleworkDocker
22:01:09edaaa_ldlework, you guys had money before 1.0
22:01:17edaaa_ldlework, :)
22:01:22ldleworkHow is that relevant?
22:02:05*Trustable quit (Remote host closed the connection)
22:02:07edaaa_ldlework, it helps. more resources to work on stuff and ship features faster
22:02:29ldleworkSure, but how is that revlevant to whether your product is 1.0 and whether you advocate its production use?
22:02:36ldleworkIt seems totally unrelated.
22:03:13edaaa_ldlework, might be, but so is docker to programming languages
22:03:15joobusdoes docker use nim? just curious.
22:03:41edaaa_ldlework, programming languages are a totally different beast
22:03:46ldleworkedaaa_: Are you saying the determinination of 1.0 and the recommendation of production use is predicated on money in some cases and in some cases other?
22:04:04ldleworkI thought that production recommendation sort of worked the same way for software of all kinds.
22:04:21ldleworkI made a small comment about how you shouldn't let your customer's actions determine your own disposition.
22:05:56*elrood quit (Quit: Leaving)
22:06:12edaaa_ldlework, with programming languages everything moves a lot slower. there are numerous obstacles to language adoption. especially when there are no resources
22:06:32ldleworkNo doubt. I'm *still* not sure how that is relevant to shipping 1.0
22:06:47ldleworkWe've observed that programming languages and specific software are different.
22:07:05ldleworkIn what ways are they different in their qualifications for recommending for production use?
22:07:10*vendethiel quit (Ping timeout: 240 seconds)
22:07:27Araqthe 1.0 would convey you can count on a viable migration path should we break things. And of course we intend to break nothing.
22:07:53ldleworkWhich is what most people are looking at for when they consider whether to put something into production.
22:08:04ldleworkAnd I'd argue that for a programming language it is _more_ severe.
22:08:50ldleworkNot that I'm saying if Nim is there, delay a 1.0 longer for whatever reason
22:09:20ldleworkI was just saying, a small thing, about not letting the actions of your customers effect your disposition about the product is all.
22:09:43Araqsure, fair enough.
22:09:44ldleworkIts a bit like, not understanding your own capabilities in terms of your fans.
22:10:36ldleworkAraq: Nim has been stable for quite a long time now hasn't it?
22:11:26Araqyes. (ignoring annoying regressions)
22:11:26ldleworkOne of the last memories I have of interacting was riding the wave of fanfare when HN was informed 1.0 was around the corner :)
22:12:52ldleworkjoobus: nope, golang of all things :(
22:13:22ldleworkNim would be an excellent language for something like it though
22:13:24joobuswe started using go at my office too.
22:13:36ldleworkmy condolences
22:13:43edaaa_lol
22:15:33*desophos joined #nim
22:16:23desophosAraq: if that's not common, what is the usual convention?
22:16:37desophosfor initializers
22:16:47Araqdesophos: the style guide says initT for value types, newT for ref/ptrs
22:16:57*joobus quit (Quit: leaving)
22:17:54desophosoh? i've only seen http://nim-lang.org/docs/nep1.html
22:18:03desophoswas not aware there's another one
22:18:16desophosi mean if you're referring to another one
22:18:49desophosthanks, i'll use that convention
22:19:07*johnsoft joined #nim
22:19:44Araqisnt' that part of nep1?
22:19:50desophosit doesn't mention that
22:20:10Araqanyway there is also this: http://nim-lang.org/docs/apis.html
22:21:08*Kingsquee joined #nim
22:21:27desophosoh, nice
22:43:37*edaaa_ quit (Quit: leaving)
22:44:21Araqyeah, it works really well, IMO. I can really guess the names.
22:45:10*jefus quit (Ping timeout: 244 seconds)
22:51:57gmpreussner|workthat's a really page, Araq
22:52:01gmpreussner|work*cool
22:52:17Araqit's a well kept secret.
22:52:26Araqeven though it exists since forever.
22:52:40*jefus joined #nim
22:53:23Araqwe could extend it a bit, of course. feel free.
22:54:10gmpreussner|workwish i had time. i just barely get to feed the cat and do laundry at home :)
23:02:21*dashed quit (Quit: Connection closed for inactivity)
23:03:48desophoswhere does the FMember convention come from? http://nim-lang.org/docs/tut2.html#object-oriented-programming-properties says it's to avoid naming clashes with setter methods
23:07:21Araqer oops. nobody uses that convention.
23:07:30Araqlet me get rid of this in tut2.
23:07:39*vqrs quit (Max SendQ exceeded)
23:08:27*vqrs joined #nim
23:09:56Araqhrm it's already gone.
23:11:23*Jesin quit (Quit: Leaving)
23:14:56*Matthias247 quit (Read error: Connection reset by peer)
23:19:46*ephja joined #nim
23:24:20*gokr quit (Ping timeout: 272 seconds)
23:32:02*brson quit (Quit: leaving)
23:40:16desophosnice
23:40:23desophoswell that takes care of that then :)
23:48:47*yglukhov joined #nim
23:53:06*yglukhov quit (Ping timeout: 240 seconds)
23:54:23desophosin nim sdl2, how do i access fields of an Event object? KeyboardEventObj has a bunch of fields that i'd like to access but i can't seem to access them. my guess is that it's because the event i pass to pollEvent is treated as a "generic" Event object instead of any specific one
23:57:50desophoshttps://bpaste.net/show/ed6feac2d768