00:01:20 | * | DAddYE__ quit (Remote host closed the connection) |
01:02:12 | * | DAddYE joined #nimrod |
01:08:27 | * | DAddYE quit (Ping timeout: 250 seconds) |
01:10:55 | * | DAddYE joined #nimrod |
01:40:32 | * | Zuchto joined #nimrod |
01:48:17 | * | Zuchto left #nimrod ("Leaving") |
02:14:08 | * | shodan45 quit (Read error: Connection reset by peer) |
02:14:17 | * | shodan45 joined #nimrod |
02:16:21 | * | shodan45 quit (Read error: Connection reset by peer) |
02:16:30 | * | shodan45 joined #nimrod |
02:24:18 | * | shodan45 quit (Ping timeout: 245 seconds) |
02:25:15 | * | DAddYE quit (Remote host closed the connection) |
02:25:41 | * | DAddYE joined #nimrod |
02:29:50 | * | DAddYE quit (Ping timeout: 240 seconds) |
02:35:02 | * | Zuchto joined #nimrod |
02:37:10 | * | DAddYE joined #nimrod |
02:45:26 | * | chat1 quit (Quit: WeeChat 0.4.0) |
03:00:40 | * | DAddYE quit (Remote host closed the connection) |
03:01:20 | * | dymk quit (Ping timeout: 260 seconds) |
03:07:28 | * | dymk joined #nimrod |
03:08:46 | * | DAddYE joined #nimrod |
03:08:55 | * | DAddYE quit (Remote host closed the connection) |
03:09:03 | * | DAddYE joined #nimrod |
03:11:51 | * | dymk quit (Ping timeout: 240 seconds) |
03:20:28 | * | dymk joined #nimrod |
03:25:07 | * | dymk quit (Ping timeout: 260 seconds) |
03:26:28 | * | dymk joined #nimrod |
03:30:45 | * | dymk quit (Ping timeout: 245 seconds) |
03:32:59 | * | dymk joined #nimrod |
03:37:26 | * | dymk quit (Ping timeout: 264 seconds) |
03:37:58 | * | dymk joined #nimrod |
03:42:23 | * | dymk quit (Ping timeout: 260 seconds) |
03:43:58 | * | dymk joined #nimrod |
03:48:15 | * | dymk quit (Ping timeout: 245 seconds) |
03:49:28 | * | dymk joined #nimrod |
03:54:03 | * | dymk quit (Ping timeout: 260 seconds) |
03:58:16 | * | DAddYE quit (Remote host closed the connection) |
03:58:43 | * | DAddYE joined #nimrod |
04:03:17 | * | DAddYE quit (Ping timeout: 248 seconds) |
04:03:28 | * | dymk joined #nimrod |
04:20:40 | * | dymk quit (Ping timeout: 260 seconds) |
04:28:06 | * | DAddYE joined #nimrod |
04:31:31 | * | dymk joined #nimrod |
04:54:32 | * | Demos joined #nimrod |
04:55:50 | * | dymk quit (Ping timeout: 240 seconds) |
05:05:03 | * | dymk joined #nimrod |
05:09:39 | * | dymk quit (Ping timeout: 260 seconds) |
05:16:03 | * | dymk joined #nimrod |
05:31:39 | * | aftershave quit (Quit: Textual IRC Client: www.textualapp.com) |
05:46:51 | * | xenagi joined #nimrod |
05:50:25 | * | xenagi quit (Client Quit) |
05:53:06 | * | ddl_smurf quit (Quit: ddl_smurf) |
06:03:35 | * | hoverbear joined #nimrod |
06:03:39 | * | DAddYE quit (Remote host closed the connection) |
06:04:06 | * | DAddYE joined #nimrod |
06:08:39 | * | DAddYE quit (Ping timeout: 264 seconds) |
06:10:14 | * | Zuchto quit (Ping timeout: 240 seconds) |
06:13:03 | * | Zuchto joined #nimrod |
06:20:39 | * | dymk quit (Ping timeout: 264 seconds) |
06:30:30 | * | Demos quit (Quit: Leaving) |
06:30:33 | * | dymk joined #nimrod |
06:32:30 | * | mal`` quit (Ping timeout: 245 seconds) |
06:34:31 | * | mal`` joined #nimrod |
06:35:02 | * | dymk quit (Client Quit) |
06:35:37 | * | dymk joined #nimrod |
06:40:26 | * | dymk quit (Ping timeout: 264 seconds) |
06:42:54 | * | DAddYE joined #nimrod |
06:44:02 | * | dymk joined #nimrod |
06:48:15 | * | dymk quit (Ping timeout: 240 seconds) |
06:49:04 | * | dymk joined #nimrod |
06:53:44 | * | dymk quit (Ping timeout: 260 seconds) |
06:53:57 | * | Mordecai joined #nimrod |
06:54:43 | * | psquid quit (Ping timeout: 245 seconds) |
06:55:58 | * | Mordecai is now known as psquid |
07:02:03 | * | DAddYE quit (Read error: Connection reset by peer) |
07:02:27 | * | DAddYE joined #nimrod |
07:17:04 | * | dymk joined #nimrod |
07:27:06 | * | dymk quit (Ping timeout: 252 seconds) |
07:28:03 | * | dymk joined #nimrod |
07:34:40 | * | dymk quit (Ping timeout: 240 seconds) |
07:38:33 | * | dymk joined #nimrod |
07:45:50 | * | dymk quit (Ping timeout: 264 seconds) |
07:49:32 | * | hoverbear quit (Quit: Hibernating, be back soon.) |
07:54:39 | * | dymk joined #nimrod |
07:59:05 | * | dymk quit (Ping timeout: 245 seconds) |
08:00:34 | * | dymk joined #nimrod |
08:04:45 | * | achim joined #nimrod |
08:06:33 | * | _dymk joined #nimrod |
08:06:45 | * | dymk quit (Read error: Connection reset by peer) |
08:11:06 | * | dymk joined #nimrod |
08:11:11 | * | _dymk quit (Ping timeout: 260 seconds) |
08:15:52 | * | dymk quit (Ping timeout: 260 seconds) |
08:29:40 | * | dymk joined #nimrod |
08:34:26 | * | dymk quit (Ping timeout: 264 seconds) |
08:35:04 | * | dymk joined #nimrod |
08:36:17 | * | DAddYE quit (Remote host closed the connection) |
08:37:29 | * | DAddYE joined #nimrod |
08:39:40 | * | dymk quit (Ping timeout: 260 seconds) |
08:41:04 | * | dymk joined #nimrod |
08:44:36 | * | achim quit (Quit: Computer has gone to sleep.) |
08:45:35 | * | dymk quit (Client Quit) |
08:47:04 | * | dymk joined #nimrod |
08:51:19 | * | DAddYE quit () |
08:51:21 | * | achim joined #nimrod |
08:51:50 | * | dymk quit (Ping timeout: 264 seconds) |
08:52:34 | * | dymk joined #nimrod |
08:57:15 | * | achim quit (Quit: Computer has gone to sleep.) |
08:59:16 | * | dymk quit (Ping timeout: 267 seconds) |
08:59:33 | * | zahary_ quit (Read error: Connection reset by peer) |
09:09:11 | * | dymk joined #nimrod |
09:13:26 | * | dymk quit (Ping timeout: 240 seconds) |
09:21:58 | * | psquid quit (Quit: brb) |
09:23:11 | * | psquid joined #nimrod |
09:23:11 | * | psquid quit (Changing host) |
09:23:11 | * | psquid joined #nimrod |
09:32:06 | * | dymk joined #nimrod |
09:36:50 | * | dymk quit (Ping timeout: 264 seconds) |
09:38:05 | * | dymk joined #nimrod |
09:38:37 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
09:42:10 | * | dymk quit (Client Quit) |
09:43:06 | * | dymk joined #nimrod |
09:47:38 | * | dymk quit (Ping timeout: 264 seconds) |
09:49:36 | * | dymk joined #nimrod |
09:51:35 | * | faassen joined #nimrod |
09:52:13 | * | CarpNet joined #nimrod |
09:57:48 | * | dymk quit (Ping timeout: 251 seconds) |
09:59:42 | * | ics joined #nimrod |
10:00:47 | * | joelmo left #nimrod (#nimrod) |
10:00:51 | * | joelmo joined #nimrod |
10:05:38 | * | dymk joined #nimrod |
10:15:42 | * | dymk quit (Quit: ZNC Bouncer Quitting) |
10:17:07 | * | dymk joined #nimrod |
10:18:30 | * | BitPuffin joined #nimrod |
10:27:10 | * | dymk quit (Read error: Connection reset by peer) |
10:28:02 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
10:28:08 | * | dymk joined #nimrod |
10:42:14 | * | dymk quit (Ping timeout: 264 seconds) |
10:42:37 | * | dymk joined #nimrod |
10:48:43 | * | dymk quit (Read error: Connection reset by peer) |
10:49:07 | * | _dymk joined #nimrod |
10:51:15 | * | Mordecai joined #nimrod |
10:51:31 | * | psquid quit (Disconnected by services) |
10:51:35 | * | Mordecai is now known as psquid |
10:53:15 | * | _dymk quit (Ping timeout: 245 seconds) |
10:56:47 | * | BitPuffin joined #nimrod |
10:57:07 | * | dymk joined #nimrod |
11:09:24 | * | Araq_ joined #nimrod |
11:15:14 | * | dirkk0 joined #nimrod |
11:15:26 | NimBot | Araq/Nimrod master 4b26b3c Michał Zieliński [+0 ±1 -0]: Expand gitignore to include all binaries built by ./koch test. |
11:15:26 | NimBot | Araq/Nimrod master bc95cc4 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Merge pull request #752 from zielmicha/expand-gitignore... 2 more lines |
11:16:04 | NimBot | Araq/Nimrod master 8f854bb Grzegorz Adam Hankiewicz [+0 ±1 -0]: Mentions static alternatives to quit(). |
11:16:04 | NimBot | Araq/Nimrod master 01b5cc7 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds example to fatal pragma. |
11:16:04 | NimBot | Araq/Nimrod master 208e2f1 Grzegorz Adam Hankiewicz [+0 ±2 -0]: Merge pull request #739 from gradha/pr_adds_to_quit_docs... 2 more lines |
11:28:40 | * | dymk quit (Ping timeout: 245 seconds) |
11:28:49 | * | dirkk0 quit (Quit: This computer has gone to sleep) |
11:30:51 | * | dirkk0 joined #nimrod |
11:31:37 | * | dymk joined #nimrod |
11:36:04 | * | dymk quit (Ping timeout: 260 seconds) |
11:40:58 | * | achim joined #nimrod |
11:41:46 | * | dymk joined #nimrod |
11:41:47 | * | dymk quit (Excess Flood) |
11:42:37 | * | dymk joined #nimrod |
11:44:06 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0.1/20131112160018]) |
11:45:27 | * | BitPuffin quit (Ping timeout: 240 seconds) |
11:47:15 | * | dymk quit (Ping timeout: 260 seconds) |
11:54:50 | faassen | Araq: that mitems issue yesterday, should I add something to the issue tracker? |
11:55:50 | * | BitPuffin joined #nimrod |
12:00:39 | * | dymk joined #nimrod |
12:05:27 | * | dymk quit (Ping timeout: 260 seconds) |
12:06:13 | * | dymk joined #nimrod |
12:10:35 | * | dymk quit (Ping timeout: 260 seconds) |
12:12:57 | * | achim quit (Quit: Computer has gone to sleep.) |
12:16:18 | * | dymk joined #nimrod |
12:16:19 | * | dymk quit (Excess Flood) |
12:16:42 | fowlmouth | faassen, whats the issue |
12:17:13 | * | dymk joined #nimrod |
12:30:42 | * | achim joined #nimrod |
12:36:06 | * | q66 quit (Quit: Leaving) |
12:41:50 | * | achim quit (Quit: Computer has gone to sleep.) |
12:44:33 | * | achim joined #nimrod |
12:46:05 | faassen | fowlmouth: C compiler errors out when you try to compile this: https://gist.github.com/faassen/7994609 |
12:47:47 | * | dymk quit (Read error: Connection reset by peer) |
12:47:55 | * | q66 joined #nimrod |
12:48:10 | * | dymk joined #nimrod |
12:53:02 | * | dymk quit (Ping timeout: 264 seconds) |
12:54:40 | * | dymk joined #nimrod |
12:59:02 | * | eigenlicht quit (Ping timeout: 264 seconds) |
13:00:40 | * | eigenlicht joined #nimrod |
13:07:25 | * | dymk quit (Ping timeout: 245 seconds) |
13:16:11 | * | dymk joined #nimrod |
13:24:03 | * | achim quit (Quit: Computer has gone to sleep.) |
13:25:12 | * | dymk quit (Quit: ZNC Bouncer Quitting) |
13:25:41 | * | dymk joined #nimrod |
13:33:11 | * | dymk quit (Ping timeout: 260 seconds) |
13:37:41 | * | dymk joined #nimrod |
13:42:00 | * | dymk quit (Ping timeout: 245 seconds) |
13:43:46 | * | dymk joined #nimrod |
13:52:00 | * | q66 quit (Quit: Leaving) |
13:54:36 | * | darkf quit (Quit: Leaving) |
14:04:23 | * | tylere joined #nimrod |
14:05:51 | * | q66 joined #nimrod |
14:12:04 | EXetoC | porting big structures that conditionally includes fields can't be good |
14:18:27 | BitPuffin | EXetoC: lol :D |
14:18:35 | fowlmouth | faassen, this is weird |
14:18:59 | BitPuffin | faassen: it only happens when fowlmouth tries to compile it? |
14:20:07 | * | achim joined #nimrod |
14:20:58 | faassen | fowlmouth: the C compiler spits out errors when you do it by hand. |
14:21:09 | faassen | BitPuffin: it happens when I try to compile it too. :) |
14:21:44 | faassen | BitPuffin: oh you mean to reinterpret my 'you' as addressing fowlmouth exclusively instead of the generic 'you'. ha ha! |
14:22:04 | BitPuffin | faassen: yeah hehe |
14:23:55 | * | Araq_ joined #nimrod |
14:23:58 | EXetoC | BitPuffin: all it takes is such a field that doesn't appear at the very end |
14:24:12 | BitPuffin | EXetoC: yep |
14:24:20 | BitPuffin | guess you are gonna have to conditionally compile it |
14:24:37 | BitPuffin | although I believe the only way you can do that is lots of copying and pasting |
14:24:56 | BitPuffin | when statements inline within type declarations are not allowed right? |
14:31:25 | Araq_ | it's allowed in 'object' |
14:31:26 | EXetoC | that's complicated. I think I'll have to wrap the fields in C functions |
14:31:45 | Araq_ | the problem is you don't know which are active |
14:32:05 | Araq_ | usually you need to check the generated config.h |
14:32:22 | Araq_ | and then you can get rid of the #if in the struct declaration by hand |
14:36:52 | EXetoC | aren't you then assuming that it's installed the same way everywhere? |
14:39:40 | Araq_ | yeah |
14:40:09 | Araq_ | so use a 'when' in nimrod instead and figure out when what where it is true |
14:48:39 | * | eigenlicht quit (Ping timeout: 240 seconds) |
14:50:12 | * | eigenlicht joined #nimrod |
14:54:14 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0.1/20131112160018]) |
15:16:53 | * | hoverbear joined #nimrod |
15:19:58 | EXetoC | Araq: but they're features that can be toggled. I'll just wrap the fields in C |
15:22:22 | * | hoverbear quit (Quit: Hibernating, be back soon.) |
15:33:02 | * | Hannibal_Smith joined #nimrod |
15:39:27 | * | aftershave joined #nimrod |
15:40:33 | * | aftershave quit (Client Quit) |
15:40:57 | * | aftershave joined #nimrod |
15:41:01 | * | aftershave quit (Client Quit) |
15:42:44 | * | aftershave joined #nimrod |
15:48:48 | * | zielmicha joined #nimrod |
15:54:10 | * | dirkk_ joined #nimrod |
15:56:02 | * | dirkk0 quit (Ping timeout: 264 seconds) |
16:09:08 | tylere | Araq...let me throw an idea at you |
16:09:20 | tylere | what about allowing expressions in object definitions |
16:09:25 | tylere | as a sort of constructor |
16:09:59 | tylere | where the expression for each field would have access to all previously defined fields |
16:11:12 | tylere | and any field with an associated expression could be ommited from the ctor |
16:29:21 | * | Hannibal_Smith quit (Quit: Sto andando via) |
16:36:25 | * | ddl_smurf joined #nimrod |
16:46:25 | * | gradha joined #nimrod |
16:59:57 | * | achim quit (Quit: Textual IRC Client: http://www.textualapp.com/) |
17:13:30 | * | hoverbear joined #nimrod |
17:13:41 | * | hoverbear quit (Max SendQ exceeded) |
17:23:36 | * | MFlamer joined #nimrod |
17:23:48 | Varriount | tylere, that presents problems for c-api compatibility |
17:26:41 | EXetoC | why? |
17:29:28 | Varriount | Because the structure of the object could change drastically at compile time? |
17:29:54 | Varriount | afaik, currrently, conditional structures are such are implemented as unions |
17:31:52 | Varriount | Still, maybe I'm wrong. The idea isn't any more far fetched than my idea of turning the generic instantiation subscript operator into a partial function application operator. |
17:32:04 | * | shodan45 joined #nimrod |
17:33:59 | shodan45 | hello, #nimrod |
17:34:22 | gradha | hi shodan45 |
17:35:00 | Varriount | gradha, I don't know if I've mentioned this, but your forum avatar both amazes and terrifies me. |
17:35:15 | gradha | certainly that's the point |
17:35:41 | gradha | why would anybody want a bland avatar |
17:36:18 | Varriount | gradha, -> http://osrc.dfm.io/Varriount |
17:36:19 | gradha | besides, it's me, so it's not like I'm putting an animated gif or something |
17:37:03 | Varriount | "In particular, Varriount seems to be a pretty serious Nimrod expert with a surprisingly broad knowledge of Python as well." |
17:37:15 | gradha | yeah, they know all about us, the NSA knows my favourite kpop too |
17:37:21 | Varriount | I have a warm fuzzy feeling inside. |
17:37:43 | gradha | my profile stats would change if they could analyze private repos |
17:37:55 | Varriount | >_> |
17:38:15 | gradha | I guess it's ok, since those aren't open source anyway |
17:38:35 | Varriount | Anyways, got to go, I have my final, final exam for the semester in an hour. Wish me luck! |
17:38:43 | gradha | good luck |
17:44:01 | * | DAddYE joined #nimrod |
17:44:06 | dom96 | "In particular, Dominik seems to be a pretty serious Nimrod expert." |
17:44:08 | dom96 | yeahhh |
17:44:58 | gradha | dom96: so how are your finals, do you need luck? today I feel generous |
17:45:44 | dom96 | I ain't got no finals |
17:45:45 | * | dymk quit (Ping timeout: 245 seconds) |
17:46:09 | dom96 | Until January I guess. |
17:47:58 | gradha | ok, I went to the kitchen and saved some luck for you, I'll put it in the freezer |
17:48:08 | dom96 | thx |
17:49:50 | * | dirkk_ quit (Ping timeout: 240 seconds) |
17:52:14 | * | dymk joined #nimrod |
17:59:41 | EXetoC | Varriount: it sounded to me like he meant something like this: "type x = object\nx: int = 5" |
18:03:25 | * | io2 joined #nimrod |
18:07:13 | * | BitPuffin quit (Ping timeout: 245 seconds) |
18:13:36 | * | MFlamer_ joined #nimrod |
18:15:07 | * | MFlamer quit (Ping timeout: 240 seconds) |
18:23:44 | * | shodan45_ joined #nimrod |
18:23:57 | * | shodan45 quit (Read error: Connection reset by peer) |
18:24:40 | * | shodan45_ is now known as shodan45 |
18:24:45 | * | shodan45 quit (Client Quit) |
18:29:46 | tylere | EXetoC: something like that |
18:29:53 | tylere | EXetoC: although I was actually thinking of a lambda expression |
18:30:52 | tylere | or an anonymous proc |
18:31:56 | tylere | more like type x = object\ny: int\nx: int = y * 2 |
18:32:05 | tylere | so you could actually base later properties on earlier ones |
18:32:16 | tylere | like say you had (tortured example) a rectangle class |
18:32:35 | tylere | you could add a default expression to the width, that sets width = height if you only pass one number |
18:34:27 | tylere | my initial use case was for initializing a seq |
18:34:35 | * | CarpNet quit (Quit: Leaving) |
18:34:43 | * | brson joined #nimrod |
18:51:45 | EXetoC | tylere: some might argue that the actual invocation syntax should be verbose |
18:52:05 | EXetoC | and that any shortcuts should be privided by procs |
18:53:58 | EXetoC | *provided |
18:54:22 | tylere | EXetoC: I don't disagree with |
18:54:30 | EXetoC | it's still a little verbose because of the init/new prefixes, though I often omit 'init' |
18:54:37 | tylere | but if that's the tack takne, there should be a way to define a custom ctor |
18:54:46 | tylere | instead of the current hell of mismatches |
18:54:56 | tylere | where it's sometimes makeFoo and sometimes initFoo, etc |
18:55:32 | EXetoC | I think init for value types and new for pointer types is the de facto standard |
18:55:55 | EXetoC | where's the make prefix used? |
18:57:01 | tylere | I can't recall it off hand |
18:57:11 | tylere | might have been some 3rd party code somewhere |
19:30:51 | tylere | EXetoC: Another example.... initTable but newSeq |
19:33:15 | EXetoC | tylere: like I said, init is for value types, and new is for pointer types |
19:33:56 | gradha | no ref string then? |
19:35:36 | EXetoC | ? |
19:36:18 | gradha | a string is not a pointer type, so should be initSeq, a ref string would be newSeq |
19:38:01 | EXetoC | ok |
19:40:46 | * | BitPuffin joined #nimrod |
19:44:36 | psquid | Varriount: I like how that OSRC thing says I'm probably friends with my boyfriend. Seems about right. :V |
19:44:43 | fowlmouth | EXetoC, it should probably be initSeq since seqs have value semantics |
19:47:41 | psquid | Though interestingly my old and new accounts (in most places this name is my old handle, new account reflects the new one) have very different stats in everything except languages (Pythonista - clearly I haven't put enough Nimrod up there yet xD) |
19:48:02 | psquid | I guess I've shifted my habits a fair bit over the last year or two. xD |
19:48:21 | EXetoC | I just pointed out that there's a reason why we have both |
19:48:27 | EXetoC | but maybe that's what he was referring to |
20:07:13 | tylere | yea, sort of |
20:07:18 | tylere | it just feels like extra mental load |
20:07:35 | tylere | e.g. why not just have a bit of sugar so I can call Seq[int]() |
20:07:55 | tylere | or even something like new[seq[int]]() |
20:08:08 | tylere | just some sort of 100% consistent default-ish constructor |
20:11:47 | * | dirkk0 joined #nimrod |
20:12:04 | * | dirkk0 quit (Client Quit) |
20:16:15 | * | io2 quit () |
20:21:55 | * | faassen left #nimrod (#nimrod) |
20:35:06 | * | Demos joined #nimrod |
20:37:35 | Demos | did nimrod's web address change or did we always have nimrod-lang and nimrod-code |
20:38:16 | gradha | it did change recently |
20:47:02 | * | MFlamer_ quit (Ping timeout: 264 seconds) |
20:51:09 | * | MFlamer joined #nimrod |
20:59:28 | Demos | is there information on the nimrod compiler as a service (sounds webscale :D) work? |
20:59:51 | gradha | sure, it was writen by Britney Spears |
21:00:27 | Demos | sounds webscale |
21:00:32 | gradha | you have to go to the nimrod compiler user guide, then search for idetools integration |
21:00:36 | gradha | or you can view http://build.nimrod-lang.org/docs/idetools.html |
21:00:45 | Demos | right, but that is just some command line options |
21:00:52 | Demos | never mind |
21:00:54 | * | dymk quit (Ping timeout: 241 seconds) |
21:01:04 | Demos | docs must have been updated at some point |
21:01:18 | gradha | if you are looking for "internals" zahary is your man |
21:01:33 | gradha | he knows how the stuff work, and the changes that were made in the compiler |
21:04:44 | Demos | so it is still communication by strings, no C API |
21:05:39 | gradha | I believe most editors don't want to include a compiler to get some info about source code |
21:06:30 | Demos | well they could use a shared library.... but sure |
21:07:43 | zahary | I actually planned to build it as a C api, but the text interface was chosen in order to have shared code between the single-invocation idetools mode and the long-running compiler mode |
21:08:08 | zahary | such shared code exists both for the compiler and the editors that use it |
21:08:26 | zahary | otherwise, it's very easy to expose a C API if you need something |
21:08:58 | Demos | yeah I have been exporting some of the lexer functions for use in c# |
21:09:45 | zahary | https://gist.github.com/zah/8012667 |
21:10:15 | zahary | place that file in the compiler directory, compile it and you have a DLL exposing parts of the compiler code |
21:10:52 | Demos | yeah that is what I did, what is the return value, just one of the toekn enums? |
21:10:53 | * | io2 joined #nimrod |
21:11:09 | Araq | tylere: you summoned me and here I am |
21:11:43 | zahary | this is a silly example that checks whether a string parses correctly |
21:11:50 | zahary | returns 1/0 |
21:12:04 | Demos | ah, alright. Derp |
21:12:23 | Demos | anyhow it is good to know that what I am doing is sorta correct |
21:17:39 | gradha | good night, honey badgers |
21:17:43 | * | gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=dEf4PJZXBxA again) |
21:20:37 | EXetoC | is there no ptrdiff_t equivalent? should I use int? |
21:20:55 | fowlmouth | whats ptrdiff_t |
21:21:24 | fowlmouth | use TPtrDiffT {.importc:"ptrdiff_t".} = int probably |
21:21:53 | Araq | just use int, yeah |
21:25:05 | * | shodan45 joined #nimrod |
21:32:15 | * | zupermann joined #nimrod |
21:33:00 | Araq | hi zupermann welcome |
21:33:13 | shodan45 | new web framework benchmarks out: http://www.techempower.com/benchmarks/#section=data-r8 |
21:33:27 | shodan45 | nimrod still doing not-so-great :/ |
21:34:27 | fowlmouth | i did control+f for nimrod and not found on the page |
21:34:30 | fowlmouth | shodan45, |
21:34:59 | Araq | well we didn't submit anything this time afaict |
21:36:15 | EXetoC | fowlmouth: nim |
21:36:17 | shodan45 | it's there - look for "jester" or "Nim" under "Lng" |
21:37:12 | fowlmouth | oh |
21:37:25 | dom96 | shodan45: we didn't change anything |
21:37:38 | dom96 | because I still didn't have enough time |
21:37:55 | Demos | not doing bad for one guy though |
21:39:26 | Demos | and we beat PHP... so there is that |
21:40:43 | brihat | and also bear Ruby on Rails and Django |
21:40:46 | EXetoC | dom96: will you spend a week on adding optimized asm if we donate $50? |
21:41:17 | dom96 | EXetoC: Going to have to be a lot more for a week. :P |
21:41:51 | dom96 | Yeah, keep in mind that benchmark is totally unoptimised. |
21:41:53 | EXetoC | you and your luxurious life |
21:42:18 | dom96 | It uses select which is very terrible. |
21:42:29 | * | zupermann quit (K-Lined) |
21:43:19 | fowlmouth | dom when is your xmas break |
21:43:20 | * | MFlamer quit (Read error: Connection reset by peer) |
21:43:33 | Demos | that website brings my browser to its knees though |
21:43:36 | EXetoC | ohloh claims that I'm using emacs. interesting |
21:44:28 | dom96 | fowlmouth: It starts on Friday |
21:46:03 | * | 65MAAFL6X quit (Ping timeout: 250 seconds) |
21:48:27 | * | fowlmouth is now known as fowl |
21:55:13 | Araq | dom96: I did 'babel update'; 'babel search opengl' and it shows nothing |
21:56:49 | dom96 | works for me |
21:57:12 | Araq | I guess I need to recompile babel |
21:57:18 | Araq | I'm using some old version |
21:57:43 | dom96 | just run 'babel install babel' |
21:57:58 | Araq | that still feels wrong :P |
21:59:16 | * | dymk joined #nimrod |
22:00:46 | Araq | well babel install babel works |
22:00:53 | Araq | and search finds some packages |
22:01:01 | Araq | none of which is the opengl package though! |
22:01:52 | dom96 | again |
22:01:52 | dom96 | works for me |
22:02:36 | fowl | babel update ? |
22:02:42 | Araq | did that |
22:03:06 | Araq | what's the url you get? |
22:03:45 | fowl | https://github.com/nimrod-code/packages/raw/master/packages.json |
22:04:16 | shodan45 | what about non-jester nimrod? just an http server + logic? |
22:04:37 | dom96 | httpserver is worse than scgi+nginx I would bet. |
22:04:45 | shodan45 | oh? :/ |
22:05:04 | shodan45 | why is that? I'd expect it to be pretty good |
22:05:15 | dom96 | Because of it's crappy async implementation |
22:06:43 | Araq | well I still have babel v0.1.0 from 2013-10-5 |
22:06:50 | Araq | so I guess babel install didn't work |
22:07:16 | dom96 | remove your .babel and reinstall it then |
22:07:38 | dom96 | you probably still have a lib/ and pkgs/ is ignored or something |
22:08:48 | Araq | well I invoked the compiler myself and now it works |
22:08:58 | Araq | who would have guessed? :P |
22:10:00 | Araq | ping comex |
22:12:04 | dom96 | well what's the problem then? |
22:12:47 | Araq | nothing, everything is smooth |
22:23:25 | * | io2 quit () |
22:24:49 | Varriount | Yay! My final exam of the semester is finished! |
22:37:26 | Araq | hey I did explain why I hate stderr, zielmicha ... |
22:38:32 | Araq | and useStdoutAsStdmsg is not only for me but also for cgi applications ... |
22:39:08 | Araq | and why did you remove my rant in the docs? :-( |
22:43:06 | Demos | why do you hate stderr Araq? |
22:44:59 | Araq | gcc foo >errors.txt |
22:45:06 | Araq | argh, doesn't work, thanks |
22:45:26 | Araq | but it doesn't output the binary blob to stdout either, so what's the point? |
22:45:42 | psquid | `gcc foo 2>error.txt` doesn't work? |
22:46:07 | Araq | I never can remember that syntax :P |
22:46:10 | psquid | (Granted, knowing to do that is hardly obvious, heh.) |
22:46:15 | psquid | Heh, fair do's. xD |
22:46:29 | dom96 | nice to see Nimrod mentioned in the Framework benchmark HN thread |
22:47:12 | Araq | arguably the error messages of a compiler are its *output* |
22:47:26 | Araq | think about IDE integration, for instance |
22:48:21 | Araq | also having both stdout and stderr means process redirection is some trial and error game or you simply request that both should be redirected to the same stream |
22:48:47 | Araq | it simply doesn't work, the distinction is arbitrary |
22:49:23 | Demos | I agree, it seems stderr ends up just being a dumping ground for all the output nobody knew what to do with |
22:50:01 | psquid | I don't agree that there's no point to stderr, but yeah, I'd say stderr should be used only when the program has encountered a non-normal situation. Even if it's reporting an error, that's still an expected situation for a compiler. It's only if the compiler itself has a problem, like if it's saying "you told me to compile foo.c, bar.c, and baz.c, but foo.c doesn't exist", that it should use stderr. |
22:50:44 | dom96 | Araq: I would actually say that outputting errors to stderr would make IDE integration easier. |
22:50:54 | psquid | Of course, the other problem is that not everyone actually does anything close to that, so it's pretty much random chance what you'll have to redirect from when dealing with an arbitrary program. |
22:51:10 | dom96 | In Aporia's case it would remove the ambiguities about what is a warning and what is an error. |
22:51:17 | dom96 | in the output. |
22:51:30 | zielmicha | Araq: docs are not for rants, especially if most people think otherwise |
22:51:56 | Araq | dom96: well nimrod can also suggest stuff |
22:52:02 | Araq | where to put those? |
22:52:16 | Araq | so suggest goes to stdout, messages to stderr |
22:52:27 | Araq | and we're back to conflating warnings and errors |
22:52:31 | dom96 | no, errors go to stderr. |
22:52:37 | dom96 | It's simple. |
22:52:47 | * | Demos quit (Read error: Connection reset by peer) |
22:52:49 | dom96 | An error is something which stops the successful compilation of code. |
22:52:49 | Araq | and warnings are part of the suggest stuff? o.O |
22:52:56 | psquid | Separating them is still useful when a program outputs its normal output to stdout, though - like grub2-mkconfig, where stdout emits the new grub config, while stderr emits the status messages (and honestly I think stdmsg would be a better name, if not for historical precedent). |
22:53:01 | dom96 | Everything else goes to stdout. |
22:53:04 | * | Demos joined #nimrod |
22:53:07 | ddl_smurf | stderr only makes sense if stdout is useful separately |
22:53:35 | ddl_smurf | (once in a blue moon i agree with araq, might as well add my 2c =D ) |
22:53:49 | Araq | well if anything, this discussion shows it's rather arbitrary and so won't ever be consistent |
22:53:49 | dom96 | and yes, type mismatch suggestions are part of the error and therefore go to stderr |
22:54:17 | * | Amrykid quit (Excess Flood) |
22:54:28 | Araq | and a non-consistent interface is far worse than conflating output with errors |
22:54:30 | ddl_smurf | stderr is really a misnomer, it's really for tools you can use in a pipeline |
22:54:39 | ddl_smurf | so i vote for json output =D |
22:54:47 | * | Amrykid_ joined #nimrod |
22:54:58 | dom96 | hah yes. JSON output would be perfect. |
22:55:00 | OrionPKM | dom96 i bet if you didnt use the asyncio stuff for framework benchmarks it'd be faster :P https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/jester/hello.nim |
22:55:05 | Demos | is there a way to write a macro that will generate "getters and setters" for a structure? |
22:55:20 | Araq | Demos: sure |
22:55:39 | dom96 | OrionPKM: IIRC I tested that. |
22:55:56 | zielmicha | but there is also "nimrod c -r", which could be used in a pipe |
22:55:56 | dom96 | OrionPKM: It simply blocked, it didn't even respond to all the requests it was hit with. |
22:55:58 | * | Amrykid_ is now known as Amrykid |
22:56:04 | * | Amrykid quit (Changing host) |
22:56:04 | * | Amrykid joined #nimrod |
22:56:10 | dom96 | OrionPKM: Remember the requests are concurrent, async is definitely better. |
22:56:34 | OrionPKM | dom96 yeah thats true.. but httpserver asyncio is very buggy |
22:56:47 | OrionPKM | it'll randomly block calls for a number of seconds at times |
22:56:50 | dom96 | OrionPKM: The benchmark doesn't use httpserver |
22:56:57 | OrionPKM | ah |
22:57:07 | OrionPKM | I see, http=false |
22:57:14 | dom96 | mmhm |
22:57:49 | OrionPKM | welp, afk |
22:59:14 | Araq | zielmicha: meh, the rant in the documentation is a classic |
23:01:25 | * | darkf joined #nimrod |
23:04:50 | Varriount | Araq, sent a pull request for (another) removeFile fix. |
23:05:07 | Araq | gah, what was wrong? |
23:05:52 | Varriount | The procedure error'd when trying to delete a read only wile |
23:05:54 | Varriount | *file |
23:06:23 | Varriount | Odd, because I thought I had sent out a pull request that fixed that bug, and that the pull request was accepted. |
23:06:44 | Varriount | Maybe I was just dreaming. |
23:06:54 | Araq | well I dreamed the same |
23:07:23 | Araq | cremove? can you use the winapi instead please? gets rid of the errno brain damage |
23:08:12 | Varriount | Uh, yeah. I'm actually in the process of (hopefully) improving bits of os.nim, so it would be no problem |
23:10:20 | Araq | and indeed I'd prefer if you use the low level api for setFilePermissions |
23:10:27 | Araq | *instead of |
23:11:09 | EXetoC | should it be possible to have unsigned enumerators? |
23:11:33 | Araq | meh, I dunno |
23:12:58 | EXetoC | "Error: ordinal type expected" I guess that means yes |
23:17:11 | EXetoC | assuming that you consider that error message to be correct |
23:17:23 | EXetoC | and what about anything that supports `<` and `==`? |
23:17:38 | Araq | strings support < and == |
23:17:54 | Araq | so do floats |
23:18:19 | Araq | how do you generate code for an array[float, T] again? |
23:18:39 | Araq | but I guess we can look at the enum's base type to decide if the enum is an ordinal |
23:19:33 | EXetoC | yeah but user-defined objects for example |
23:19:34 | EXetoC | ok |
23:21:19 | Varriount | Araq, just to explain, by 'low level api' I meant, copying specific parts of setFilePermissions |
23:24:42 | Araq | yeah copy and specialize |
23:32:09 | dom96 | hrm, BitPuffin hasn't asked me to join VNUG in a while. |
23:32:21 | Varriount | I'm on VNUG |
23:32:31 | * | dom96 wonders if BitPuffin is still alive |
23:32:34 | Varriount | I've been on for the past hour and a half |
23:32:39 | dom96 | Varriount: alone? |
23:32:44 | Varriount | Yes. |
23:33:22 | Varriount | All alone. |
23:33:35 | dom96 | Forever alone. |
23:42:26 | Varriount | How do programs do non-blocking file operations on Linux platforms? |
23:43:17 | ddl_smurf | you use libuv |
23:43:45 | Varriount | And if you don't want to use libuv? |
23:44:00 | ddl_smurf | you wallow in pain for a few months |
23:44:15 | Araq | you use a linux specific api |
23:45:41 | ddl_smurf | you can read man epoll/select/kevent depending on your specific version, but really, you don't want to do that, libevent, libuv, there's a bunch of em for a reason |
23:46:07 | Varriount | Which, I'm guessing, Araq would rather not use. |
23:46:16 | Araq | Varriount: you're spot on sir |
23:46:39 | ddl_smurf | async reading, memory management and thread management have intimate relations |
23:46:43 | Araq | these libs mostly consist of "if (error) goto errorHandler;" anyway |
23:47:00 | Araq | in nimrod land we have exceptions for that |
23:47:28 | Varriount | Though, shouldn't exception-reaction code be avoided anyways? |
23:47:40 | Araq | most C code doesn't do anything, it's all a big mud of error handling code for efficiency |
23:48:38 | Araq | you should always check malloc's result of course. linux won't return NULL, but you should check anyway |
23:48:55 | Araq | extra points if you check on function entry if a stack overflowed occured |
23:49:10 | Araq | and then let us know how you can do that in Ansi C |
23:49:12 | ddl_smurf | you should only check that stuff if you have a better reaction to it than a coredump |
23:49:18 | Varriount | ^ Why higher level languages exist |
23:49:33 | Demos | ddl_smurf, but may times C's default is /not/ a coredump |
23:49:57 | ddl_smurf | ok, sigsev then |
23:50:09 | Varriount | Araq, are there any plans on splitting up parts of os.nim? I'm not suggesting anything, just wondering. |
23:51:07 | Araq | the idea that many small files are somehow easier to handle than fewer larger ones escapes me |
23:51:39 | ddl_smurf | clearly - after some quality time with gc.nim and system.nim =) |
23:52:10 | Varriount | Araq, I think it's a carryover from the idea that documentation organized into sections is easier to read than randomly ordered sentences |
23:52:26 | Araq | currently I have 13 files open and it's barely managable |
23:52:48 | Varriount | Same here. But then, I also have multiple views to one file. |
23:52:48 | Araq | make that 26 files and I might quit and play some game instead |
23:53:02 | BitPuffin | dom96: :D |
23:53:04 | BitPuffin | Sorry |
23:53:15 | BitPuffin | haven't installed teamspeak on the hipster thing yet |
23:55:15 | Varriount | hipster thing? |
23:56:15 | Araq | Varriount: so whose documentation is better? |
23:56:35 | Araq | python's? not in my opinion. C#'s? no. Java's? hell no. |
23:57:50 | Varriount | Araq, I wasn't criticizing anything. Just pointing out a theory. |
23:58:04 | Araq | yeah sure |