| 00:01:45 | * | coryg joined #nim |
| 00:12:26 | * | coryg quit (Ping timeout: 246 seconds) |
| 00:13:11 | * | Kingsquee joined #nim |
| 00:13:42 | desophos | hey Araq, did you see my discussion with cazov and gmpreussner yesterday about unqualified imports? i'd like to hear your take/opinion |
| 00:15:13 | Araq | my opinion is that Nim is not Python. |
| 00:15:31 | * | coryg joined #nim |
| 00:20:59 | desophos | let 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:14 | Araq | sorry, was away. |
| 00:37:23 | Araq | my reasoning? contrary to what you claim, there is no wide-spread language that requires you to list everything that you import |
| 00:38:53 | Araq | they all have obj.foo rather than module.foo(obj) |
| 00:40:11 | Araq | now 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:21 | Araq | and 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:24 | desophos | hmm, 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:50 | desophos | on the other hand... being able to control what's exported does help significantly, i think |
| 00:49:16 | Araq | from time to time I try "from foo import bar, boo, baz" |
| 00:49:43 | Araq | most of the time it ends up to be an annoyance |
| 00:50:19 | Araq | if 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:21 | Araq | and 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:34 | Araq | and Nim is actually already really flexible in its import mechanism. Want to enforce module.foo syntax? use 'from module import nil'. |
| 00:52:55 | Araq | want to get rid of a nasty name? use "import module except evil". |
| 00:53:38 | desophos | and with export control, a module author can ensure that users don't accidentally import anything they don't need |
| 00:55:01 | desophos | Nim gives users a lot of control over imports and exports |
| 00:55:26 | Araq | yeah 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:42 | desophos | that would be cool |
| 00:55:55 | Araq | which would be a reasonable additon to the module system I guess, but my fear is that it would quickly be overused |
| 00:57:23 | Araq | also the policy is that the importer gets to decide, not the exporter. |
| 00:59:16 | Araq | we have module in the stdlib that scream "please use from module import nil" to import it. IMO that's fine. |
| 00:59:42 | Araq | and interestingly this module uses .immediate macros *everywhere*. |
| 01:00:11 | Araq | and you know what .immediate macros do? circumvent the overloading mechanism. Quite telling. |
| 01:00:27 | desophos | interesting |
| 01:00:34 | desophos | which module is that? |
| 01:00:40 | Araq | htmlgen |
| 01:00:49 | desophos | ah |
| 01:00:55 | desophos | sounds useful haha |
| 01:00:59 | Araq | it is so old that it predates overloading for macros. |
| 01:04:23 | desophos | thanks for the discussion |
| 01:04:47 | * | nande quit (Remote host closed the connection) |
| 01:05:42 | desophos | it's great to be able to talk to the language designer! |
| 01:07:12 | Araq | he he, thanks. |
| 01:08:32 | Araq | many just want a more beautiful "sanctionized" way to write "from foo import nil" (which enforces full qualification) |
| 01:09:25 | Araq | but 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:40 | Araq | template use(x) = from x import nil |
| 01:11:06 | Araq | use strutils |
| 01:12:19 | Araq | you can then use --import in your project configuration to make every module understand 'use' without having to import 'use' ... |
| 01:13:41 | Araq | good night. |
| 01:13:57 | desophos | good 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:38 | desophos | i'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:59 | desophos | huh, weird. it had something to do with using `let` instead of `var` |
| 02:42:43 | desophos | i 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:50 | desophos | something 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:24 | cncl | well i'm kind of a nim newbie but don't you need to expose the fields on your object types with a *? |
| 11:27:20 | cncl | oh he's gone |
| 11:28:00 | cncl | in sdl2.nim there is a WMinfo type, with a field like, |
| 11:28:03 | cncl | padding*: array[0.. <24, byte] |
| 11:28:32 | * | Sornaensis joined #nim |
| 11:28:36 | cncl | it 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:40 | cncl | i 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:04 | cncl | (i'm trying to take a 64-bit pointer from the beginning of padding) |
| 11:30:19 | dom96 | cast[pointer](x.padding[0]) |
| 11:30:22 | dom96 | Don't need the slice. |
| 11:31:17 | * | Sornaensis joined #nim |
| 11:31:18 | * | Sornaensis quit (Excess Flood) |
| 11:33:00 | cncl | awesome! thanks |
| 11:34:01 | * | Sornaensis joined #nim |
| 11:34:12 | cncl | hm, looks like it's only taking the first byte of padding |
| 11:35:57 | dom96 | you may want to cast it into a typed pointer |
| 11:36:06 | dom96 | cast[ptr int64](x.padding[0]) |
| 11:36:53 | cncl | oh i figured it out |
| 11:37:09 | cncl | cast[array[3, pointer]](x.padding)[0] |
| 11:37:10 | * | bjz_ quit (Ping timeout: 240 seconds) |
| 11:37:12 | * | Sornaensis quit (Excess Flood) |
| 11:37:20 | cncl | i think i just explained it badly, sorry |
| 11:37:36 | * | Sornaensis joined #nim |
| 11:37:37 | * | Sornaensis quit (Excess Flood) |
| 11:37:48 | cncl | (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:47 | dom96 | cncl, what are you doing with that after? |
| 11:40:42 | cncl | passing it to a c api. the padding contains a handle to a win32 gui window |
| 11:41:08 | cncl | it's a union declared in a sdl2 .h file, but didn't receive any types in the sdl2.nim wrapper |
| 11:41:25 | cncl | a 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:38 | desophos | is it conventional to name constructors/initializers the same as the TypeName except in pascalCase? |
| 18:06:55 | desophos | i 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:54 | Araq | OnO: 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:04 | OnO | you mean order of compile time echo is screwed with compiler messages? |
| 20:26:16 | Araq | yes |
| 20:26:22 | Araq | er no. |
| 20:26:27 | Araq | not compile-time echo. |
| 20:26:42 | Araq | but my debug echos. |
| 20:28:27 | OnO | then VM time echos? |
| 20:33:48 | OnO | why not debug output to stderr then, both VM time and compile time? |
| 20:34:09 | OnO | (I know it is echo without side effects) |
| 20:39:06 | * | Jesin joined #nim |
| 20:39:46 | Araq | i'm not using VM time echos when I edit and run the compiler itself with debug echos. |
| 20:39:57 | Araq | the VM time echos are fine. |
| 20:40:42 | Araq | but the ordinary echo is now detached from the "Processing" compiler output, confusing me. |
| 20:45:14 | OnO | okay, 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:35 | OnO | or use msgWriteln instead to emit your diagnostics |
| 20:48:32 | Araq | well 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:10 | Araq | maybe I could gitignore the config but then I would have my personal gitignore. |
| 20:49:28 | Araq | can I gitignore my gitignore? I think so. |
| 20:53:09 | OnO | yeah, 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:12 | joobus | Are there any good nim talks to watch online? |
| 20:57:58 | * | desophos joined #nim |
| 20:58:46 | Araq | joobus: 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:20 | joobus | got a link? |
| 20:59:29 | * | desophos joined #nim |
| 20:59:30 | * | bjz_ quit (Ping timeout: 240 seconds) |
| 20:59:52 | edaaa_ | http://www.infoq.com/presentations/nimrod |
| 21:00:56 | * | desophos quit (Remote host closed the connection) |
| 21:01:02 | joobus | is the first nim conference over now? |
| 21:01:11 | * | desophos joined #nim |
| 21:04:33 | Araq | no. it hasn't even started. |
| 21:04:59 | Araq | desophos: it's not common, but I suspect it will become common. |
| 21:05:49 | joobus | oh, i see now, just the announcement was posted on oct 16 |
| 21:05:52 | joobus | my bad |
| 21:05:56 | edaaa_ | guys, how does nim compare to crystal? |
| 21:06:21 | edaaa_ | 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:49 | edaaa_ | i see it has macros and low-level stuff as well |
| 21:06:51 | * | strcmp1 joined #nim |
| 21:06:59 | joobus | crystal's page says "The project is in alpha stage: we are still tweaking the language and standard library. |
| 21:07:12 | joobus | but nim might be too |
| 21:08:04 | reactormonk | edaaa_, macros? I don't see any mention of macros in crystal from a first glance. |
| 21:08:34 | edaaa_ | 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:29 | reactormonk | ah, found it. |
| 21:09:31 | reactormonk | yup ^^ |
| 21:12:03 | reactormonk | edaaa_, 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:10 | reactormonk | edaaa_, also, write tracking/effects - althoug they're WIP in nim |
| 21:13:46 | edaaa_ | reactormonk, yes i see |
| 21:14:13 | reactormonk | edaaa_, 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:15 | edaaa_ | reactormonk, i like nim as well |
| 21:16:57 | edaaa_ | reactormonk, it seems to me that nim and crystal are similar in a lot of ways |
| 21:17:17 | reactormonk | edaaa_, the macro system of nim might be a bit more powerful |
| 21:17:18 | edaaa_ | reactormonk, and crystal trying to look as ruby as much as possible |
| 21:17:30 | edaaa_ | reactormonk, i agree |
| 21:19:38 | edaaa_ | reactormonk, i am not sure i like crystal's type inference |
| 21:20:01 | edaaa_ | reactormonk, it looks like it's not possible to specify type explicitly at all |
| 21:21:23 | reactormonk | edaaa_, wouldn't look like ruby with types in there :-) |
| 21:23:06 | edaaa_ | reactormonk, true that :) but it already diverges from ruby quite a lot macros, pointers and it even has structs |
| 21:25:10 | edaaa_ | where can i find more info about nim's read/write effects? |
| 21:25:48 | joobus | is Araq the king of nim right now? |
| 21:25:49 | * | brson quit (Ping timeout: 252 seconds) |
| 21:25:53 | reactormonk | joobus, still is. |
| 21:25:56 | reactormonk | always was. |
| 21:26:11 | reactormonk | edaaa_, there's the effects system and write tracking. Not sure about documentation :-/ |
| 21:26:22 | reactormonk | but you can see the tags on some methods. |
| 21:26:27 | Araq | the effect system is documented. |
| 21:26:47 | reactormonk | edaaa_, http://nim-lang.org/docs/manual.html#effect-system |
| 21:26:52 | Araq | the write tracking is still in development but I think it will have to wait for Nim 2. |
| 21:27:05 | reactormonk | edaaa_, "Note: Read/write tracking is not yet implemented!" |
| 21:27:46 | reactormonk | joobus, although he was king of nimrod a while ago. |
| 21:28:17 | Araq | I'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:43 | edaaa_ | Araq, and how stable is the language right now? i mean, is it known what will end up in v1? |
| 21:32:10 | edaaa_ | Araq, when i say stable i mean in terms of language design, not bugs |
| 21:32:23 | Araq | yes, the language is stable since years now |
| 21:32:45 | Araq | getting all these bugs eliminated is lots of hard work though. |
| 21:33:01 | Araq | and responsible for all the delays I can think of. |
| 21:33:14 | Araq | often a fix also introduces nasty regressions. |
| 21:33:29 | * | irrequietus_ quit () |
| 21:36:00 | Araq | a 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:27 | Araq | but 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:13 | edaaa_ | ok, i see. but that wasn't such a bad idea imo |
| 21:37:24 | Araq | it took decades for C++ compilers to adhere to the standard. and there were lots of more resources put into C++. |
| 21:39:47 | Araq | yeah, 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:11 | joobus | Araq, which companies? |
| 21:41:04 | joobus | also, nim would likely get more exposure with a 1.0 release. Seeing 0.11 makes people think it is alpha. |
| 21:41:23 | edaaa_ | 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:52 | edaaa_ | 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:59 | Araq | joobus: Onecodex, 3dicc, Zeo Alliance and others. (Yes, I know, Amazon, Google, Microsoft and Apple is still missing in this list ;-) ) |
| 21:58:26 | joobus | you dream big :) |
| 21:58:30 | joobus | i like it |
| 21:58:57 | reactormonk | Araq, amazon maybe, everyone else has their own language to push :-/ |
| 21:59:15 | edaaa_ | language gaining traction takes time |
| 21:59:29 | edaaa_ | it took around 10 years for ruby and python |
| 21:59:49 | edaaa_ | but i think if the language is good (like nim is), people will use it to solve their problems |
| 21:59:51 | ldlework | Araq: we were in production of huuuuuuge corporations like Yandex and others I wont mention long before we were 1.0 |
| 22:00:09 | ldlework | You shouldn't let it go to your head. |
| 22:00:38 | joobus | ldlework: who is the 'we' you are referring to? |
| 22:00:44 | ldlework | Docker |
| 22:01:09 | edaaa_ | ldlework, you guys had money before 1.0 |
| 22:01:17 | edaaa_ | ldlework, :) |
| 22:01:22 | ldlework | How is that relevant? |
| 22:02:05 | * | Trustable quit (Remote host closed the connection) |
| 22:02:07 | edaaa_ | ldlework, it helps. more resources to work on stuff and ship features faster |
| 22:02:29 | ldlework | Sure, but how is that revlevant to whether your product is 1.0 and whether you advocate its production use? |
| 22:02:36 | ldlework | It seems totally unrelated. |
| 22:03:13 | edaaa_ | ldlework, might be, but so is docker to programming languages |
| 22:03:15 | joobus | does docker use nim? just curious. |
| 22:03:41 | edaaa_ | ldlework, programming languages are a totally different beast |
| 22:03:46 | ldlework | edaaa_: 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:04 | ldlework | I thought that production recommendation sort of worked the same way for software of all kinds. |
| 22:04:21 | ldlework | I 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:12 | edaaa_ | ldlework, with programming languages everything moves a lot slower. there are numerous obstacles to language adoption. especially when there are no resources |
| 22:06:32 | ldlework | No doubt. I'm *still* not sure how that is relevant to shipping 1.0 |
| 22:06:47 | ldlework | We've observed that programming languages and specific software are different. |
| 22:07:05 | ldlework | In what ways are they different in their qualifications for recommending for production use? |
| 22:07:10 | * | vendethiel quit (Ping timeout: 240 seconds) |
| 22:07:27 | Araq | the 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:53 | ldlework | Which is what most people are looking at for when they consider whether to put something into production. |
| 22:08:04 | ldlework | And I'd argue that for a programming language it is _more_ severe. |
| 22:08:50 | ldlework | Not that I'm saying if Nim is there, delay a 1.0 longer for whatever reason |
| 22:09:20 | ldlework | I was just saying, a small thing, about not letting the actions of your customers effect your disposition about the product is all. |
| 22:09:43 | Araq | sure, fair enough. |
| 22:09:44 | ldlework | Its a bit like, not understanding your own capabilities in terms of your fans. |
| 22:10:36 | ldlework | Araq: Nim has been stable for quite a long time now hasn't it? |
| 22:11:26 | Araq | yes. (ignoring annoying regressions) |
| 22:11:26 | ldlework | One 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:52 | ldlework | joobus: nope, golang of all things :( |
| 22:13:22 | ldlework | Nim would be an excellent language for something like it though |
| 22:13:24 | joobus | we started using go at my office too. |
| 22:13:36 | ldlework | my condolences |
| 22:13:43 | edaaa_ | lol |
| 22:15:33 | * | desophos joined #nim |
| 22:16:23 | desophos | Araq: if that's not common, what is the usual convention? |
| 22:16:37 | desophos | for initializers |
| 22:16:47 | Araq | desophos: the style guide says initT for value types, newT for ref/ptrs |
| 22:16:57 | * | joobus quit (Quit: leaving) |
| 22:17:54 | desophos | oh? i've only seen http://nim-lang.org/docs/nep1.html |
| 22:18:03 | desophos | was not aware there's another one |
| 22:18:16 | desophos | i mean if you're referring to another one |
| 22:18:49 | desophos | thanks, i'll use that convention |
| 22:19:07 | * | johnsoft joined #nim |
| 22:19:44 | Araq | isnt' that part of nep1? |
| 22:19:50 | desophos | it doesn't mention that |
| 22:20:10 | Araq | anyway there is also this: http://nim-lang.org/docs/apis.html |
| 22:21:08 | * | Kingsquee joined #nim |
| 22:21:27 | desophos | oh, nice |
| 22:43:37 | * | edaaa_ quit (Quit: leaving) |
| 22:44:21 | Araq | yeah, it works really well, IMO. I can really guess the names. |
| 22:45:10 | * | jefus quit (Ping timeout: 244 seconds) |
| 22:51:57 | gmpreussner|work | that's a really page, Araq |
| 22:52:01 | gmpreussner|work | *cool |
| 22:52:17 | Araq | it's a well kept secret. |
| 22:52:26 | Araq | even though it exists since forever. |
| 22:52:40 | * | jefus joined #nim |
| 22:53:23 | Araq | we could extend it a bit, of course. feel free. |
| 22:54:10 | gmpreussner|work | wish 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:48 | desophos | where 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:21 | Araq | er oops. nobody uses that convention. |
| 23:07:30 | Araq | let me get rid of this in tut2. |
| 23:07:39 | * | vqrs quit (Max SendQ exceeded) |
| 23:08:27 | * | vqrs joined #nim |
| 23:09:56 | Araq | hrm 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:16 | desophos | nice |
| 23:40:23 | desophos | well that takes care of that then :) |
| 23:48:47 | * | yglukhov joined #nim |
| 23:53:06 | * | yglukhov quit (Ping timeout: 240 seconds) |
| 23:54:23 | desophos | in 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:50 | desophos | https://bpaste.net/show/ed6feac2d768 |