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 |