| 00:00:33 | * | flaviu quit (Ping timeout: 240 seconds) |
| 00:01:20 | * | brson_ quit (Ping timeout: 255 seconds) |
| 00:01:52 | filwit | dom96: why is jester not in babel? |
| 00:04:22 | * | flaviu joined #nimrod |
| 00:04:29 | filwit | is babel only for wrappers and helpers? I was under the impression it was just a general-purpose "nim related" package list |
| 00:06:10 | filwit | err... wait it is in Babel... it's just messing up when i try and install it |
| 00:06:37 | filwit | nevermind... i think i misspelled jester originally, my bad |
| 00:16:20 | * | bogen joined #nimrod |
| 00:27:22 | * | EXetoC quit (Quit: WeeChat 0.4.3) |
| 00:30:39 | * | seubert_ is now known as seubert |
| 00:31:41 | * | saml_ joined #nimrod |
| 00:44:06 | * | will quit (Ping timeout: 250 seconds) |
| 00:45:59 | * | xenagi joined #nimrod |
| 01:00:33 | * | flaviu quit (Remote host closed the connection) |
| 01:01:51 | * | flaviu joined #nimrod |
| 01:07:07 | * | q66 quit (Quit: Leaving) |
| 01:34:53 | * | Boscop quit (Ping timeout: 240 seconds) |
| 01:35:30 | * | flaviu quit (Remote host closed the connection) |
| 01:36:38 | * | flaviu joined #nimrod |
| 01:48:46 | * | icebattle quit (*.net *.split) |
| 01:57:37 | * | icebattle joined #nimrod |
| 02:04:54 | * | filwit quit (Quit: Leaving) |
| 02:06:13 | * | flaviu quit (Remote host closed the connection) |
| 02:09:12 | * | flaviu joined #nimrod |
| 02:11:48 | * | darkf_ joined #nimrod |
| 02:13:24 | * | Boscop joined #nimrod |
| 02:14:14 | * | darkf quit (Ping timeout: 250 seconds) |
| 02:16:25 | * | darkf_ is now known as darkf |
| 02:20:17 | * | flaviu quit (Remote host closed the connection) |
| 02:21:14 | * | flaviu joined #nimrod |
| 02:54:39 | * | flaviu quit (Remote host closed the connection) |
| 02:55:34 | * | flaviu joined #nimrod |
| 02:56:01 | * | flaviu quit (Remote host closed the connection) |
| 02:56:59 | * | flaviu joined #nimrod |
| 03:45:10 | * | flaviu quit (Remote host closed the connection) |
| 03:46:17 | * | flaviu joined #nimrod |
| 03:46:55 | * | gsingh93 joined #nimrod |
| 03:51:39 | * | flaviu quit (Ping timeout: 244 seconds) |
| 03:59:47 | * | saml_ quit (Quit: Leaving) |
| 04:02:16 | * | ARCADIVS joined #nimrod |
| 04:10:07 | * | Boscop quit (Changing host) |
| 04:10:08 | * | Boscop joined #nimrod |
| 04:12:53 | * | bjz quit (Ping timeout: 244 seconds) |
| 04:27:06 | * | xenagi quit (Read error: Connection reset by peer) |
| 05:09:35 | * | gkoller joined #nimrod |
| 05:20:00 | * | zling__ quit (Ping timeout: 260 seconds) |
| 05:22:54 | * | kokozedman joined #nimrod |
| 05:23:38 | kokozedman | hi all |
| 05:23:56 | * | zling__ joined #nimrod |
| 05:27:13 | kokozedman | what's the release model for Nimrod, is there a roadmap towards 1.0? |
| 05:40:45 | * | TylerE quit (Ping timeout: 240 seconds) |
| 05:41:00 | * | CARAM quit (Ping timeout: 260 seconds) |
| 05:41:38 | * | TylerE joined #nimrod |
| 05:42:10 | * | CARAM joined #nimrod |
| 05:46:31 | * | gkoller_ joined #nimrod |
| 06:03:20 | * | filwit joined #nimrod |
| 06:04:05 | * | filwit quit (Client Quit) |
| 06:09:43 | * | gsingh93 quit (Quit: Connection closed for inactivity) |
| 06:11:40 | * | gkoller quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 06:12:03 | * | zling__ quit (Ping timeout: 240 seconds) |
| 06:14:33 | * | zling__ joined #nimrod |
| 06:42:15 | * | kshlm joined #nimrod |
| 07:03:04 | * | kunev joined #nimrod |
| 07:28:32 | Araq | kokozedman: https://github.com/Araq/Nimrod/wiki/Roadmap |
| 07:31:25 | * | kokozedman quit (Ping timeout: 246 seconds) |
| 07:46:18 | * | kokozedman joined #nimrod |
| 07:46:33 | * | flyx quit (Quit: I'm outta here) |
| 07:46:59 | kokozedman | Araq: can you point to me an example of using dynlib? I'd like to get a nanoseconds time resolution that calls clock_gettime() on Linux |
| 07:47:32 | Araq | lib/system/timers.nim wraps it iirc |
| 07:47:49 | Araq | 'dynlib' is everywhere, learn how to grep ;-) |
| 07:48:00 | Araq | or how to use the docs |
| 07:50:09 | kokozedman | alright, thanks for the heads up |
| 07:50:33 | Araq | or how to use c2nim |
| 07:50:39 | Araq | ;-) |
| 08:03:14 | NimBot | Araq/Nimrod devel b5248d9 Araq [+0 ±3 -0]: fixes #1143 |
| 08:03:25 | Araq | yay, one showstopper bug down! |
| 08:08:29 | NimBot | Araq/Nimrod devel 4708ceb Araq [+1 ±0 -0]: fixes #592 |
| 08:09:29 | Araq | yay, one showstopper bug down! |
| 08:13:11 | * | Ven joined #nimrod |
| 08:59:43 | * | flyx joined #nimrod |
| 09:02:14 | * | ARCADIVS quit (Quit: WeeChat 0.4.3) |
| 09:12:19 | * | kunev_ joined #nimrod |
| 09:16:10 | * | kunev quit (Ping timeout: 264 seconds) |
| 10:01:10 | * | Ven quit (Quit: Textual IRC Client: www.textualapp.com) |
| 10:07:55 | * | Ven joined #nimrod |
| 10:16:43 | * | bjz joined #nimrod |
| 10:17:57 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:37:41 | * | Ven joined #nimrod |
| 10:46:27 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:00:43 | * | Fr4n quit (Ping timeout: 255 seconds) |
| 11:14:07 | * | Fr4n joined #nimrod |
| 11:40:30 | * | ome joined #nimrod |
| 11:43:43 | * | Fr4n quit (Ping timeout: 272 seconds) |
| 11:55:42 | * | Fr4n joined #nimrod |
| 11:58:33 | * | Trustable joined #nimrod |
| 12:09:36 | * | willwillson joined #nimrod |
| 12:25:26 | * | kshlm quit (Quit: Konversation terminated!) |
| 12:37:16 | * | saml_ joined #nimrod |
| 12:53:18 | * | saml_ quit (Ping timeout: 250 seconds) |
| 13:04:44 | * | darkf quit (Quit: Leaving) |
| 13:07:14 | * | saml_ joined #nimrod |
| 13:20:16 | * | saml_ quit (Ping timeout: 250 seconds) |
| 13:33:32 | * | gkoller_ quit (Ping timeout: 245 seconds) |
| 13:44:51 | * | Fr4n quit (Ping timeout: 246 seconds) |
| 13:59:51 | * | bogen quit (Quit: Leaving.) |
| 14:02:51 | * | woodgiraffe joined #nimrod |
| 14:43:35 | * | nande joined #nimrod |
| 14:46:36 | * | Jehan_ joined #nimrod |
| 15:30:13 | * | kokozedman quit (Ping timeout: 246 seconds) |
| 15:33:49 | * | gsingh93 joined #nimrod |
| 15:53:12 | * | nueva joined #nimrod |
| 15:53:21 | * | nueva left #nimrod (#nimrod) |
| 15:55:45 | * | Kelet quit (*.net *.split) |
| 16:03:54 | * | Kelet joined #nimrod |
| 16:07:18 | * | brson joined #nimrod |
| 16:08:14 | * | Boscop_ joined #nimrod |
| 16:11:58 | * | Boscop quit (Ping timeout: 264 seconds) |
| 16:19:04 | * | kunev_ quit (Quit: leaving) |
| 16:20:55 | * | bjz quit (Read error: Connection reset by peer) |
| 16:21:09 | * | bjz joined #nimrod |
| 16:29:38 | * | Jesin quit (Quit: Leaving) |
| 16:38:25 | * | Jesin joined #nimrod |
| 16:39:17 | * | q66 joined #nimrod |
| 16:50:09 | * | ARCADIVS joined #nimrod |
| 16:52:49 | * | Boscop_ is now known as Boscop |
| 16:52:56 | * | Boscop quit (Changing host) |
| 16:52:57 | * | Boscop joined #nimrod |
| 16:56:26 | * | bjz quit (Read error: Connection reset by peer) |
| 16:56:45 | * | bjz joined #nimrod |
| 16:58:28 | * | OrionPK quit (Ping timeout: 246 seconds) |
| 17:03:09 | * | Demos joined #nimrod |
| 17:11:22 | * | bjz_ joined #nimrod |
| 17:11:27 | * | bjz quit (Read error: Connection reset by peer) |
| 17:15:59 | dom96 | hi |
| 17:18:29 | * | kokozedman joined #nimrod |
| 17:24:07 | kokozedman | how can I have the compiled binary in another directory other than the .nim files? like the idea of BUILD directory different from the SRC directory |
| 17:24:51 | dom96 | you can use the --out param I think |
| 17:26:19 | * | Ven joined #nimrod |
| 17:26:25 | * | kunev joined #nimrod |
| 17:26:47 | kokozedman | ah, ok, I didn't notice the --advanced help flag ... --nimcache:PATH is also what I'm looking for. thanks dom96 |
| 17:26:59 | * | Boscop_ joined #nimrod |
| 17:28:45 | Araq | dom96: I found the codegen bug :-) |
| 17:29:39 | * | superfunc joined #nimrod |
| 17:29:47 | superfunc | hey everybody |
| 17:29:57 | Araq | hi superfunc |
| 17:30:29 | dom96 | Araq: good job |
| 17:30:38 | * | Boscop quit (Ping timeout: 250 seconds) |
| 17:30:42 | superfunc | Any large changes in the last couple of weeks? I've been moving across the country so I haven't really been able to keep up |
| 17:32:00 | Araq | sure, async/await is now quite stable, parallel+spawn are making progress, bugs are getting fixed, we'll rename the language and I'm cutting features for v1.0 |
| 17:32:51 | superfunc | What are we considering renaming it to? |
| 17:33:00 | Araq | Nim |
| 17:33:04 | superfunc | Neat |
| 17:33:51 | superfunc | Thanks for all the work on it guys, the language is such a pleasure to work with. |
| 17:34:20 | * | io2 joined #nimrod |
| 17:34:56 | * | Boscop_ is now known as Boscop |
| 17:34:57 | * | Boscop quit (Changing host) |
| 17:34:58 | * | Boscop joined #nimrod |
| 17:39:44 | * | Ven quit (Ping timeout: 255 seconds) |
| 17:40:00 | Araq | superfunc: thanks. now please consider to submit something for Babel |
| 17:43:35 | Araq | brb |
| 17:45:54 | superfunc | Araq: I have 2-3 things planned, moving just threw off my time frame. Rest assured, they will come out soonish. |
| 17:47:07 | * | Ven joined #nimrod |
| 18:06:48 | * | Fr4n joined #nimrod |
| 18:11:41 | Araq | Varriount: can you work on #1491 please? |
| 18:12:55 | Araq | try these things: figure out why they are not annotated with __fastcall / N_NIMCALL |
| 18:13:08 | Araq | add an explicit 'ret' instruction to the inline asm |
| 18:13:26 | Araq | if all fails, deactivate the asm version for x86 vcc |
| 18:14:02 | Skrylar | today i learned that nimrod doesn't even want tabs when they're used for aligning things |
| 18:17:53 | * | shodan45 joined #nimrod |
| 18:18:11 | Araq | well yes, there is a trick to enable tabs, but I won't show you |
| 18:18:48 | Skrylar | i just shove M-x untabify through emacs, i just thought it was weird that it doesn't even want tabs doing their original function |
| 18:18:49 | Skrylar | lol |
| 18:19:51 | NimBot | Araq/Nimrod devel 5a2bea7 Araq [+0 ±1 -0]: fixes #1445 |
| 18:22:16 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:25:55 | Skrylar | speaking of that |
| 18:26:07 | Skrylar | i need to look up the file save hook; i know you can set it to do that automatically |
| 18:26:32 | * | gkoller joined #nimrod |
| 18:32:59 | Araq | no idea of what you're talking about |
| 18:47:52 | * | Ven joined #nimrod |
| 18:49:40 | * | ARCADIVS quit (Quit: WeeChat 0.4.3) |
| 19:05:15 | * | Boscop_ joined #nimrod |
| 19:06:42 | * | brson quit (Ping timeout: 260 seconds) |
| 19:08:44 | * | Boscop quit (Ping timeout: 244 seconds) |
| 19:10:34 | Araq | what do we do with https://github.com/Araq/Nimrod/issues/1337 ? |
| 19:10:49 | Araq | I can think of another crazy symbol lookup rule ... |
| 19:16:34 | NimBot | Araq/Nimrod devel 9c0d25d Dominik Picheta [+0 ±1 -0]: Fixes docgen. |
| 19:18:08 | NimBot | Araq/Nimrod devel 1deb982 Araq [+1 ±1 -0]: fixes #1420 |
| 19:18:08 | NimBot | Araq/Nimrod devel e935a35 Araq [+0 ±1 -0]: fixes #1380 |
| 19:18:08 | NimBot | Araq/Nimrod devel 7ef076a Araq [+0 ±1 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel |
| 19:18:59 | * | Boscop__ joined #nimrod |
| 19:22:32 | * | Boscop_ quit (Ping timeout: 250 seconds) |
| 19:24:45 | * | Boscop__ quit (Ping timeout: 240 seconds) |
| 19:34:44 | Araq | hmm what's a good name for "dumbed down type"? |
| 19:35:46 | * | brson joined #nimrod |
| 19:37:50 | Skrylar | depends on what the context is |
| 19:38:12 | Skrylar | a keyword, a mneumonic device for documentation, ... |
| 19:39:13 | Araq | the context is an internal identifier in the compiler |
| 19:40:32 | dom96 | Araq: What's better: 'await x and y' or 'await x + y'? |
| 19:40:37 | Araq | the compiler needs to be understandable by 16 year old guys who have never looked at other language implementations and so blame me for everything they don't understand |
| 19:41:33 | Araq | dom96: 'and' of course |
| 19:41:49 | Araq | dom96: '+' can also mean 'or' |
| 19:42:02 | Araq | here we go ... |
| 19:42:03 | dom96 | Araq: ok, that's what I thought too. |
| 19:42:18 | Araq | thinking about internal identifiers instead of doing productive work |
| 19:42:30 | dom96 | Araq: Just call it TRetard or something. |
| 19:44:55 | Araq | btw who wrote the most recent nimrod related blog post? |
| 19:45:15 | dom96 | why? |
| 19:45:19 | Araq | it's full of errors |
| 19:45:29 | dom96 | which one? |
| 19:45:39 | Araq | .bycopy is misleading |
| 19:45:55 | Araq | the description of .bycopy is misleading |
| 19:46:18 | Araq | and showing off .unroll is really unfortunate since it's not even implemented |
| 19:47:03 | Araq | I really wish people would send me their articles before posting on reddit ... oh well |
| 19:48:00 | dom96 | If you're talking about the latest one that was on reddit, then that article isn't even that recent. |
| 19:48:03 | dom96 | It's from 2013. |
| 19:48:13 | Araq | :O |
| 19:48:21 | Araq | ok ... o.O |
| 19:48:34 | dom96 | So don't blame the author, I bet they didn't submit it. |
| 19:49:17 | * | EXetoC joined #nimrod |
| 19:49:27 | Araq | "they"? what happened with good old non-gender english? |
| 19:49:57 | * | kunev quit (Ping timeout: 240 seconds) |
| 19:50:09 | * | Araq continues to use "he" |
| 19:57:34 | dom96 | Araq: Can I just get rid of the old async implementations? |
| 19:57:48 | Araq | uh |
| 19:57:53 | Araq | erm |
| 19:58:02 | Araq | huh |
| 19:58:07 | Araq | no |
| 19:58:37 | Araq | people might already use it? |
| 19:58:45 | dom96 | We already broke so much though, by moving it out to babel. |
| 19:59:07 | Araq | what? the async stuff is not in babel? |
| 19:59:14 | dom96 | I guess it is just a matter of installing it though. |
| 19:59:25 | dom96 | I'm talking about other things. |
| 19:59:40 | Araq | well add a top level {.deprecated.} instead |
| 19:59:41 | dom96 | irc is for example now in babel |
| 20:00:46 | * | flaviu joined #nimrod |
| 20:01:07 | flaviu | Araq: The error message for my original code on 982 is actually correct, as zah remarked |
| 20:01:20 | flaviu | On the version that dom96 posted, which takes in mind the corrections zah mentioned, the error message is incorrect. |
| 20:01:58 | dom96 | no because these modules still contain a synchronous implementation which is usefl |
| 20:01:58 | dom96 | *useful |
| 20:01:59 | dom96 | But ok, as you wish. |
| 20:02:00 | dom96 | I won't remove the old async stuff |
| 20:02:07 | Araq | no need to be a dick about it |
| 20:02:08 | Araq | we strive for "warning first, removal later" |
| 20:02:48 | * | kunev joined #nimrod |
| 20:04:35 | dom96 | what? |
| 20:04:35 | dom96 | How was I a dick? |
| 20:04:36 | dom96 | I know that we do, and it's fine with me. Just thought I would ask you if I could bend this rule a bit. |
| 20:04:48 | flaviu | dom96: Not to him, to the users |
| 20:05:06 | flaviu | Most people don't enjoy having the rug pulled out from under them |
| 20:05:12 | * | untitaker quit (Ping timeout: 245 seconds) |
| 20:05:18 | Araq | flaviu, dom96 I don't get #982 |
| 20:05:33 | * | Matthias247 joined #nimrod |
| 20:05:38 | Araq | the error message is a bit confusing since T clearly is declared |
| 20:06:01 | flaviu | Araq: the first code block is incorrect |
| 20:06:02 | Araq | but it can't be inferred, so it's not too much off |
| 20:06:04 | * | Amrykid quit (Ping timeout: 240 seconds) |
| 20:06:24 | flaviu | I'll edit it, since it seems to be causing confusion |
| 20:06:39 | Araq | yes please |
| 20:06:53 | dom96 | righhhttt |
| 20:07:16 | * | Amrykid joined #nimrod |
| 20:07:30 | flaviu | ok, refresh |
| 20:08:03 | Araq | ah! |
| 20:08:33 | dom96 | Araq: But IIRC you did get me to write '**Warning:** The API of this module is unstable, and therefore is subject to change.' precisely in preparation for breakage? |
| 20:09:03 | Araq | well yes, but you said yourself it's still useful |
| 20:09:44 | Araq | you can also .deprecate single symbols in it |
| 20:09:57 | flaviu | dom96: Who cares, just deprecate it and get on with your life. Its easy, just add deleting that stuff as a bug that is due to be fixed by 1.0.0 |
| 20:09:59 | dom96 | Yes. Ok. |
| 20:10:25 | dom96 | flaviu: I care because it's more work. |
| 20:10:30 | Araq | btw ... we have quite some .deprecated stuff in the stdlib that we're allowed to remove by now |
| 20:11:40 | dom96 | Yes, somebody should do that. |
| 20:11:49 | flaviu | 140 or so, wow |
| 20:11:59 | * | untitaker joined #nimrod |
| 20:12:32 | flaviu | well, lots of false positives |
| 20:12:58 | dom96 | bbl |
| 20:19:19 | * | gkoller quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 20:31:37 | Varriount | Araq: Yes, I'll work on #1491 |
| 20:32:13 | Araq | "will"? I made it a showstopper. This means you're not allowed to sleep until it's finished. ... ;-) |
| 20:32:23 | * | kunev quit (Ping timeout: 240 seconds) |
| 20:38:53 | * | Ven quit (Ping timeout: 240 seconds) |
| 20:39:44 | * | superfunc quit (Ping timeout: 255 seconds) |
| 20:42:31 | Varriount | Araq: You do realize Demos is more experienced with VS than I am, right? |
| 20:42:58 | Araq | er ... good point, I forgot |
| 20:43:01 | Demos | what is wrong? I have not been following chat |
| 20:43:27 | Araq | Demos: can you fix bug #1491 ? |
| 20:43:48 | Araq | in fact, I'm curious why it wasn't *you* who reported it |
| 20:44:24 | Demos | I never got the issue |
| 20:44:35 | Demos | I compile using x64 |
| 20:44:54 | Araq | makes sense |
| 20:45:15 | Demos | it happens on devel right? |
| 20:45:38 | Demos | where are these examples located? |
| 20:45:49 | Demos | oh, found em |
| 20:47:09 | Demos | goddamn |
| 20:47:16 | willwillson | how do you call an inline iterator? I keep getting an invalid type error... When i make it a closure iterator, it works as expected. |
| 20:47:23 | Araq | you might as well implement an asm version for x64 |
| 20:47:39 | Araq | willwillson: you can only "call" it in a for loop |
| 20:48:00 | willwillson | thanks |
| 20:49:25 | Demos | watch it be some stupid compatibility thing |
| 20:49:30 | Araq | willwillson: sequtils.toSeq works with inline iterators though |
| 20:49:31 | Demos | or calling conventions |
| 20:49:36 | Demos | probably calling conventions |
| 20:49:40 | Araq | willwillson: iirc |
| 20:49:50 | willwillson | thanks, I'll check it out |
| 20:50:18 | Araq | Demos: I'm afraid this code might never have been tested |
| 20:50:27 | Demos | well we shall see |
| 20:50:42 | Demos | I gotta download the windows sdk first (why does windbg not come with VS, I have no idea) |
| 20:51:46 | * | kunev joined #nimrod |
| 20:52:08 | Araq | we should integrate our own assembler |
| 20:52:50 | Araq | inline asm is so useful and yet we need at least 4 versions (x86, x86-64 for GCC and Visual C syntaxes) |
| 20:53:26 | Demos | just write the opcodes :D |
| 20:53:33 | EXetoC | bacon |
| 20:54:08 | Araq | hrm ... this could work |
| 20:54:59 | Araq | if DB is somewhat the same in every assembler |
| 20:56:48 | Demos | so the exception in 1491 is the debugger break exception |
| 20:57:21 | Araq | the asm code is missing a 'ret' instruction |
| 20:57:31 | Demos | that il do it |
| 20:57:42 | Araq | but also you need to ensure it ends up as __fastcall |
| 20:58:00 | Demos | allright, that is a visual C thing |
| 20:59:09 | NimBot | Araq/Nimrod devel ebe313e Araq [+0 ±3 -0]: fixes #1334 |
| 20:59:09 | NimBot | Araq/Nimrod devel 9ee59da Araq [+0 ±1 -0]: minor improvements for the FAQ |
| 20:59:37 | Demos | which code is missing a ret? |
| 21:00:17 | Araq | lib\system\arithm.nim |
| 21:00:27 | Araq | the x86 asm code for VCC |
| 21:01:25 | NimBot | Araq/Nimrod devel a0b2fb5 Dominik Picheta [+0 ±1 -0]: Implements `or` and `and` for futures. Ref #1487. |
| 21:01:25 | NimBot | Araq/Nimrod devel 0f720a8 Dominik Picheta [+1 ±5 -0]: Merge branch 'devel' of github.com:Araq/Nimrod into devel |
| 21:05:15 | EXetoC | no one has thrown money at zah yet? |
| 21:08:56 | Araq | zah doesn't need money, he needs time |
| 21:11:49 | EXetoC | oh. how complicated |
| 21:13:52 | Araq | if I merge my comment handling patch, does anybody volunteer to click through the generated docs to see what's wrong? |
| 21:13:56 | Araq | oh |
| 21:14:12 | Araq | I might as well do a diff lol |
| 21:14:52 | Araq | oh that reminds me ... |
| 21:14:54 | Demos | so adding the ret instruction terminates the process, is it possible the return address was never pushed onto the stack? |
| 21:15:27 | Araq | that would imply 'asmNoStackFrame' causes not even a 'call' instruction to be emitted |
| 21:15:33 | Araq | highly unlikely |
| 21:16:25 | Demos | I put the ret instruction after the theEnd: label |
| 21:16:53 | Araq | that sounds right |
| 21:17:28 | Demos | does it save registers before jumping to the function, because I could see myself overwriting the loop index or something |
| 21:18:09 | Demos | also, why does this work on x64, I guess because everything is the same calling convention there |
| 21:18:26 | Araq | the code is not active on x64 |
| 21:18:35 | Araq | this is 32bit x86 code |
| 21:18:56 | Araq | you need to replace 'eax' with 'rax' to get 64bit code |
| 21:20:07 | Araq | (and the same for the other registers) |
| 21:20:41 | Araq | well get rid of the 'asmNoStackFrame' and then it should work |
| 21:21:00 | Araq | and you don't need the explicit 'ret' either then, I think |
| 21:22:01 | * | Boscop joined #nimrod |
| 21:22:54 | Demos | OK now we have an infinite loop (I am working on the fizzbuzz example |
| 21:23:51 | * | Fr4n quit (Ping timeout: 272 seconds) |
| 21:26:43 | Araq | that means the + doesn't work anymore, maybe you need to add: mov `result`, eax |
| 21:32:22 | Demos | OK that fixed it, but I suspect we actually want no stack frame on these, and fastcall |
| 21:32:26 | Demos | otherwise what is the point |
| 21:34:41 | Araq | yeah |
| 21:35:17 | Demos | heh I will have spent a good hour debugging fizzbuzz :D |
| 21:35:26 | Araq | however ... I'm not sure it's correct. |
| 21:35:41 | Araq | I don't remember what registers are clobber registers |
| 21:36:02 | Araq | and how asmNoStackFrame affects that |
| 21:36:28 | Demos | and where the result is expected to be |
| 21:37:34 | Araq | actually that's EAX in any calling convention known to mankind |
| 21:38:34 | Araq | I'm looking for an Intrinsic that supports accessing the overflow flag. Of course THAT doesn't exist. |
| 21:39:24 | Araq | hundreds of intrinsics and yet nothing useful for overflow checking ... typical of C++ |
| 21:39:41 | * | Trustable quit (Quit: Leaving) |
| 21:44:38 | Demos | so I guess I can readd asmnostackframe and add fastcall ands then eliminate the mov eax `a` and mov ecx `b` since I know they will be in ecx and edx respectively |
| 21:45:12 | * | Fr4n joined #nimrod |
| 21:47:06 | Demos | wait, how does asmnostackframe work with inlining? |
| 21:48:48 | * | Ven joined #nimrod |
| 21:49:08 | Araq | I don't know. are these procs even inlined? |
| 21:49:38 | Demos | I dont know, they might be, it would probably be a good thing if they were |
| 21:52:29 | Araq | well go for .inline and explicit 'mov's then |
| 21:52:44 | Araq | you should really check the produced asm btw |
| 21:53:11 | Demos | I have |
| 21:53:25 | Araq | does it inline? |
| 21:54:01 | Demos | no |
| 21:54:12 | Demos | but this is with just {.compilerProc.} |
| 21:54:18 | Demos | so the calling convention is cdecl |
| 21:55:35 | Araq | what? .compilerProc produces cdecl?! |
| 21:55:50 | Demos | no, I am wrong. it is fastcall |
| 21:56:03 | Demos | edx and ecx have the params |
| 22:01:23 | * | pber67 joined #nimrod |
| 22:01:33 | Araq | hi pber67 welcome |
| 22:02:08 | pber67 | hi araq |
| 22:04:26 | Demos | should I submit just the non-naked version that seems to work? |
| 22:04:37 | * | Matthias247 quit (Read error: Connection reset by peer) |
| 22:05:11 | Araq | Demos: sure. any idea why the naked version does not work? |
| 22:05:58 | * | Matthias247 joined #nimrod |
| 22:06:42 | * | pber67 quit (Quit: Page closed) |
| 22:07:01 | Demos | no, although missing a return was the initial problem |
| 22:07:32 | * | pber67 joined #nimrod |
| 22:07:52 | * | io2 quit (Write error: Connection reset by peer) |
| 22:09:42 | Araq | well can you gist some asm listing please? |
| 22:09:50 | Araq | I'm curious |
| 22:10:18 | Demos | sure, although I gotta change some stuff so let me commit here first |
| 22:13:25 | * | brson_ joined #nimrod |
| 22:16:22 | * | Jehan_ quit (Quit: Leaving) |
| 22:17:06 | * | brson quit (Ping timeout: 260 seconds) |
| 22:19:17 | Demos | OK https://gist.github.com/barcharcraz/5ed117b13426b150c8fe is the non working version with asmnostackframe and a ret instruction |
| 22:19:27 | Demos | and https://gist.github.com/barcharcraz/cc4a023b8f03a2ac9243 is the working version |
| 22:19:49 | Demos | at the bottom is the code for modInt and the top is the code for the main fizzbuzz program |
| 22:22:43 | Araq | I see |
| 22:23:42 | Araq | replace `a` by edx and `b` by ecx |
| 22:24:14 | Demos | why not just eliminate the mov instruction? |
| 22:24:27 | Araq | my bet is that the inline assembler doesn't give a shit when it comes to symbolic name resolution and 'naked' |
| 22:24:58 | Demos | also shouldent a be in dcx and b in edx? |
| 22:25:22 | Araq | I think edx is the first parameter, ecx the 2nd |
| 22:25:34 | Araq | but yes, mov ecx, ecx can be left out |
| 22:26:07 | Demos | "The first two DWORD or smaller arguments that are found in the argument list from left to right are passed in ECX and EDX registers; all other arguments are passed on the stack from right to left." I /think/ it means the first one is in ECX |
| 22:27:38 | Araq | ok, yes, I'm wrong |
| 22:27:54 | Araq | it's EAX, EDX, ECX for Borland's fastcall |
| 22:28:30 | Demos | allright that worked |
| 22:28:56 | Araq | muhaha |
| 22:29:46 | Araq | it shouldn't matter much that it is not inline then |
| 22:30:19 | Araq | with some luck you can't even measure it thanks to intel's trace cache |
| 22:31:30 | Demos | oh, I should remove those movs before I make the pr |
| 22:32:47 | Araq | er, you can't |
| 22:32:59 | Demos | I can for like one of the functions |
| 22:33:17 | Araq | which one? |
| 22:33:49 | Demos | I think I could get one out of div |
| 22:34:23 | Demos | screw it |
| 22:34:31 | Araq | lol |
| 22:35:11 | Araq | it doesn't matter anyway, the CPU will rename every register under your feet |
| 22:37:00 | * | kunev quit (Ping timeout: 250 seconds) |
| 22:39:13 | Araq | "The Ivy Bridge (but not the Sandy Bridge) can eliminate register-to-register moves at the |
| 22:39:15 | Araq | register allocation stage. The following example illustrates this: |
| 22:39:16 | Araq | add eax,4 |
| 22:39:18 | Araq | mov ebx,eax ; this move can be eliminated |
| 22:39:19 | Araq | sub ebx,ecx" |
| 22:42:44 | NimBot | Araq/Nimrod devel 5b32626 Charlie Barto [+0 ±1 -0]: fixed #1491 |
| 22:42:44 | NimBot | Araq/Nimrod devel daa8b55 Andreas Rumpf [+0 ±1 -0]: Merge pull request #1495 from barcharcraz/fix1491... 2 more lines |
| 22:43:09 | Araq | aww no x64 version |
| 22:43:15 | Araq | Demos: thank you. |
| 22:43:34 | Demos | sorry, also I am not going near the gcc syntax with a 10 foot pole |
| 22:43:51 | Demos | Araq, you did most of the work |
| 22:44:39 | Araq | er ... vcc x64 version is a simple substitution E -> R for the register names |
| 22:48:28 | Demos | yeah I know, but I dun feel like it right now |
| 22:48:40 | Araq | ok no problem |
| 22:48:50 | Demos | and I also want to actually look at the codegen from the non-asm version to make sure it is not a waste of time |
| 22:49:53 | Araq | it's not when you look at the produced code |
| 22:50:15 | Araq | it may well be when you look at realistic benchmarks / programs |
| 22:52:09 | Araq | a cache miss is 100 cycles now, instruction selection and even branch prediction should be irrelevant |
| 22:54:44 | * | flaviu quit (Quit: Leaving.) |
| 23:11:50 | pber67 | Araq: can I ask you about babel? |
| 23:12:20 | Araq | since dom96 is asleep. yes |
| 23:13:26 | pber67 | Error: unhandled exception: The system cannot find the file specified. |
| 23:13:44 | pber67 | every task ends up this way |
| 23:14:28 | * | Matthias247_ joined #nimrod |
| 23:14:41 | pber67 | does it depends on vc9? |
| 23:14:59 | pber67 | (obviously I'm using winxp) |
| 23:17:06 | * | Matthias247 quit (Ping timeout: 246 seconds) |
| 23:17:47 | Araq | you need to add --deadCodeElim:on to your global config for winxp |
| 23:19:01 | pber67 | global config=nimrod.cfg? |
| 23:21:08 | Araq | yeah, config\nimrod.cfg |
| 23:22:38 | pber67 | does not help :( |
| 23:23:09 | Araq | how did you install it? |
| 23:23:24 | Araq | you need to add GCC to your path somehow |
| 23:23:33 | Araq | the installer supports that option |
| 23:26:36 | pber67 | i installed only nimrod. now i go to reinstall nimrod+gcc |
| 23:26:38 | pber67 | tnx |
| 23:28:46 | * | Matthias247_ quit (Read error: Connection reset by peer) |
| 23:35:47 | * | willw187 joined #nimrod |
| 23:36:12 | * | willwillson quit (Ping timeout: 246 seconds) |
| 23:42:25 | pber67 | :( this night i'm unlucky. i go to sleep |
| 23:42:43 | Araq | pber67: what's the problem? |
| 23:50:14 | Skrylar | isn't there a function which runs the GC incrementally |
| 23:50:29 | Araq | GC_step, Skrylar |
| 23:50:41 | Skrylar | which file is that in now? i checked system.html on the site |
| 23:50:47 | Araq | look at the GC's docs, you need to do -d:useRealtimeGC |
| 23:51:21 | Skrylar | thanks |
| 23:56:17 | * | brson_ quit (Quit: leaving) |
| 23:57:47 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |