00:00:32 | * | DAddYE joined #nimrod |
00:12:05 | MFlamer | actually, maybe bindSym is what I'm looking for.... |
00:13:03 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
00:18:43 | NimBot | Araq/Nimrod master d65fcf1 Zahary Karadjov [+0 ±3 -0]: parsing of user defined type classes |
00:18:43 | NimBot | Araq/Nimrod master e17c32d Zahary Karadjov [+0 ±1 -0]: fix parsing of ``proc foo(x: distinct Type)`` |
00:18:43 | NimBot | Araq/Nimrod master 4b6fd90 Zahary Karadjov [+0 ±7 -0]: working code for simple cases of user-defined type classes |
00:18:43 | NimBot | Araq/Nimrod master 4d5b9c5 Zahary Karadjov [+0 ±4 -0]: prevent eval crashes due to PContext-dependent ops not being available in evalConstExpr |
00:18:43 | NimBot | 10 more commits. |
00:25:29 | BitPuffin | zahary do you have commit access to nimrod? |
00:27:30 | zahary | yep |
00:27:58 | zahary | I know the compiler pretty well by now |
00:28:37 | BitPuffin | that's nice |
00:29:11 | BitPuffin | did what you just push fix the regression mentioned earlier? |
00:29:53 | zahary | nope, that's another set of feature I've working on lately |
00:30:06 | BitPuffin | the thing you pushed? |
00:30:10 | zahary | I'll try to get back to bug fixing in the next few days |
00:30:39 | zahary | doh, it's late: * features I've been * |
00:30:57 | BitPuffin | didn't even notice that haha |
00:31:03 | BitPuffin | I read it correctly |
00:31:12 | BitPuffin | good thing it is late for both of us hehe |
00:31:35 | zahary | the swizzle thing is in these commits btw |
00:31:43 | BitPuffin | whaaaat!! |
00:31:56 | zahary | look for the latest manual for the delegator pragma |
00:32:12 | BitPuffin | you should have screamed that at me immediately |
00:32:34 | BitPuffin | in doc? |
00:33:16 | zahary | https://github.com/Araq/Nimrod/blob/7f5bd9539571d4c63f319948f4475aeacb1f3d6f/doc/manual.txt#L4503 |
00:37:14 | BitPuffin | niice |
00:37:14 | BitPuffin | a.b(c, d) => delegator("b", a, c) |
00:37:18 | BitPuffin | what happened to d there? |
00:38:04 | zahary | oops, another case of "it's too late" |
00:38:15 | BitPuffin | it feels like ordering is a bit strange. Isn't usually the object you are operating on passed as the first parameter? |
00:38:39 | BitPuffin | like proc add(a: T, b; TNumber) or whatever |
00:38:48 | BitPuffin | then you'd do a.add(2) |
00:39:08 | BitPuffin | a.b => delegator("b", a) here it becomes the reverse |
00:39:35 | BitPuffin | I guess it doesn't matter too much. But it feels a bit inconsistent. But maybe there is a good reason for it |
00:39:44 | BitPuffin | I might be reading in to it a bit wrong too |
00:39:47 | BitPuffin | it is late after all :) |
00:41:10 | BitPuffin | really really awesome feature though |
00:41:20 | BitPuffin | this will be implemented into linagl almost immediately |
00:41:32 | BitPuffin | although I can't really work on linagl until the regression is fixed |
00:41:34 | BitPuffin | however though |
00:41:35 | zahary | it's a bit unusual, but I didn't want to give more weight to the first param, because full overload resolution is taking place and all of the params are relevant when matching the signature |
00:41:37 | BitPuffin | i still have a bit to read |
00:41:57 | zahary | and then a(b,c,d) would have been reversed in the other scenario |
00:42:37 | BitPuffin | yeah I could kind of see how with a b, c, d the "traditional" order of parameter kind of falls apart in the delegate signature |
00:45:56 | BitPuffin | and with myunknownthingy(a, b, c) |
00:46:03 | BitPuffin | then the parameter order really makes sense |
00:47:52 | zahary | and it's an advanced feature that should be used rarely so more confusing interface adds the right "scary" effect :) |
00:48:14 | BitPuffin | haha! |
00:48:21 | BitPuffin | Well I guess that is not entirely false :) |
00:48:39 | BitPuffin | I will feel like the nimrod master when I am using it |
00:48:49 | BitPuffin | oh crap now I feel like it is a rush with linagl |
00:49:05 | BitPuffin | because I suddenly want to be the first using it to do something useful lol |
01:13:09 | * | DAddYE quit (Remote host closed the connection) |
01:15:42 | * | MFlamer quit (Quit: Page closed) |
01:29:15 | * | DAddYE joined #nimrod |
01:30:10 | * | MFlamer joined #nimrod |
01:39:34 | * | DAddYE quit (Remote host closed the connection) |
01:40:01 | * | DAddYE joined #nimrod |
01:44:20 | * | DAddYE quit (Ping timeout: 240 seconds) |
02:01:23 | * | q66 quit (Quit: Leaving) |
02:26:22 | Associat0r | "all popular languages are imperative, although unfortunately slowly they are giving in to lambda terrorists" |
02:27:54 | Associat0r | http://www.reddit.com/r/programming/comments/1ll22o/nimrod_the_return_of_pascal/cc0e3ub |
02:43:23 | OrionPK | lol, lambda terrorists.. |
03:23:44 | * | g0m joined #nimrod |
03:24:07 | g0m | hello |
03:49:05 | * | g0m quit (Quit: Page closed) |
03:57:04 | * | fowl joined #nimrod |
03:59:14 | * | OrionPK quit (Quit: Leaving) |
04:23:39 | * | ltbarcly_ joined #nimrod |
04:28:54 | * | ltbarcly_ quit (Ping timeout: 264 seconds) |
04:29:34 | * | fowl quit (Quit: Leaving) |
04:29:41 | * | ltbarcly_ joined #nimrod |
04:42:06 | * | ltbarcly_ quit (Ping timeout: 264 seconds) |
04:43:44 | * | ltbarcly_ joined #nimrod |
04:48:03 | * | ltbarcly_ quit (Ping timeout: 245 seconds) |
06:30:17 | vegai | could anyone answer this? https://news.ycombinator.com/item?id=6319257 |
06:30:24 | vegai | he's asking for macro examples |
06:42:44 | * | DAddYE joined #nimrod |
07:03:00 | * | DAddYE quit (Remote host closed the connection) |
07:08:14 | * | Associat0r quit (Quit: Associat0r) |
07:13:26 | * | Araq_ joined #nimrod |
07:31:57 | * | MFlamer quit (Ping timeout: 250 seconds) |
08:47:09 | * | Endeg joined #nimrod |
09:17:29 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]) |
09:52:08 | * | q66 joined #nimrod |
10:03:06 | * | faassen joined #nimrod |
10:08:39 | * | Associat0r joined #nimrod |
10:08:39 | * | Associat0r quit (Changing host) |
10:08:39 | * | Associat0r joined #nimrod |
10:09:02 | * | EXetoC joined #nimrod |
10:10:44 | * | Associat0r quit (Client Quit) |
10:40:55 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
13:21:56 | * | faassen left #nimrod (#nimrod) |
13:22:17 | * | faassen joined #nimrod |
13:24:10 | * | faassen left #nimrod (#nimrod) |
13:24:35 | * | faassen joined #nimrod |
13:28:56 | * | Associat0r joined #nimrod |
13:28:56 | * | Associat0r quit (Changing host) |
13:28:56 | * | Associat0r joined #nimrod |
14:08:54 | * | ltbarcly_ joined #nimrod |
14:09:55 | * | ltbarcly quit (Ping timeout: 260 seconds) |
14:23:22 | BitPuffin | it's quiet here today! |
14:24:31 | BitPuffin | zahary zahary_ tell me when the regression is fixed will you? :) |
14:24:58 | zahary_ | ok, but you know that there is an easy work-around, right? |
14:25:14 | BitPuffin | there is? |
14:25:18 | zahary_ | just remove the range constraint |
14:25:26 | BitPuffin | will passing a range still work? |
14:25:30 | zahary_ | yes |
14:25:36 | BitPuffin | I see! |
14:25:38 | BitPuffin | well good |
14:25:41 | BitPuffin | but still notify me |
14:25:45 | BitPuffin | so I can add it back later |
14:25:55 | zahary_ | sure |
14:29:13 | BitPuffin | zahary_ that seems to break it too |
14:32:46 | BitPuffin | hmm actually no sorry |
14:32:53 | BitPuffin | that was just me writing ranges like 0..2 |
14:32:59 | BitPuffin | instead of range[0..2] |
14:33:07 | BitPuffin | which worked with the range constraint but not without |
14:34:31 | BitPuffin | oohhh |
14:34:32 | BitPuffin | crap |
14:34:40 | BitPuffin | I have added a range constraint on like everything |
14:34:53 | BitPuffin | although actually I intend to refactor all this to not use ranges anymore with your feature anyways |
14:34:59 | BitPuffin | so I guess it doesn't matter haha |
14:35:11 | zahary_ | try using the expt[int] stuff |
14:35:23 | BitPuffin | expt[int]? |
14:35:24 | zahary_ | it has some more compicated tests |
14:35:54 | zahary_ | expr[int] means compile-time int value. it also indicates int parameters for the generics |
14:36:12 | zahary_ | type Matrix[T; N, M: expr[int]] |
14:36:24 | zahary_ | Matrix[float, 3, 3] |
14:36:29 | BitPuffin | oooh |
14:36:33 | BitPuffin | can't you also do |
14:36:40 | BitPuffin | int{expr} or something |
14:37:23 | zahary_ | nope. this has a slightly different semantics. it merely matches a real literal value appearing in the code |
14:37:39 | BitPuffin | but what is int{expr} then? |
14:37:49 | zahary_ | expr[int] will try to evaluate static functions calls and more complex expressions |
14:38:29 | BitPuffin | oh wait |
14:38:36 | zahary_ | Matrix[float, ("xzz".len + 10) * 2] |
14:38:36 | BitPuffin | I mean int{lit} I think |
14:38:55 | BitPuffin | but expr[int] is much better |
14:38:59 | BitPuffin | because it's not strictly literal |
14:39:22 | BitPuffin | doesn int{expr} even exist? lol |
14:40:26 | zahary_ | int{lit} is only supported in proc signatures too |
14:40:50 | BitPuffin | but not in generics? |
14:40:53 | zahary_ | yes |
14:40:56 | BitPuffin | why not? |
14:42:45 | zahary_ | I guess it would be a bit more confusing. because within the generics, [T: int], doesn't mean "accept an int value, it means "matches specifically only the int type" - something like typedesc[int] when it comes to procs |
14:43:15 | BitPuffin | hm |
14:43:25 | zahary_ | so the difference between int and int{lit} will be greater than it is for procs |
14:46:02 | zahary_ | although the same can be said for int vs expr[int] so the other answer may that we just lazy :) |
14:46:55 | BitPuffin | hehe :) |
14:51:57 | * | faassen quit (Quit: Leaving.) |
14:52:27 | * | nihathrael left #nimrod (#nimrod) |
14:52:33 | * | nihathrael joined #nimrod |
14:52:45 | * | nihathrael left #nimrod (#nimrod) |
15:16:39 | dom96 | hello |
15:16:56 | Trixar_za | Hello dom96 |
15:17:18 | Trixar_za | http://user.gigirc.com:81/~brenton/slow_rise.mp3 <--- look at what I made playing with fractals |
15:19:52 | dom96 | cool, how did you make it? |
15:23:28 | Trixar_za | Using an old windows program called MusiNum: http://reglos.de/musinum/#download |
15:24:14 | Trixar_za | Then I converted it to a mp3 with http://solmire.com/ and edited it with Audacity |
15:24:55 | Trixar_za | I tried finding a proper convertor program, but it's either shareware, commericial or just plain bad |
15:25:18 | Trixar_za | Found a bunch of python scripts that can do the same, so I'm playing with them later |
15:27:30 | dom96 | This happens on Ubuntu now too? :\ https://github.com/nimrod-code/Aporia/issues/41 |
16:00:29 | zahary_ | hmm, I changed the garbage collector used for Nimrod itself - this fixes the mac build of Aporia for me |
16:01:05 | zahary_ | these kind of crashes seem to be prematurely freed memory |
16:05:14 | NimBot | Araq/Nimrod master 29329cb Mark Flamer [+0 ±2 -0]: Add arity typetrait |
16:05:14 | NimBot | Araq/Nimrod master ac3cf3d zah [+0 ±2 -0]: Merge pull request #586 from mflamer/master... 2 more lines |
16:29:20 | * | Mat2 joined #nimrod |
16:29:23 | Mat2 | hi all |
16:32:18 | BitPuffin | hey there Mat2 |
16:36:06 | Mat2 | hi BitPuffin |
16:37:07 | Mat2 | one question. How can I get the address (I mean the memory address) of an array ? |
16:37:33 | reactormonk | Mat2, addr <array> |
16:37:38 | reactormonk | unsafe. |
16:40:57 | Mat2 | thanks |
16:41:57 | Mat2 | nice, error: expression has no address |
16:42:33 | reactormonk | O.o |
16:42:42 | BitPuffin | paste yer code |
16:44:33 | Mat2 | one moment, I must correct a type first |
16:46:26 | Mat2 | ok, think founding the error |
16:47:23 | * | DAddYE joined #nimrod |
16:53:13 | * | darithorn quit (Read error: Connection reset by peer) |
16:53:39 | * | darithorn joined #nimrod |
16:58:35 | * | brson joined #nimrod |
17:07:08 | BitPuffin | I think something like SQLAlchemy would be awesome for nimrod |
17:07:16 | BitPuffin | would be a nice thing to combine with jester |
17:07:19 | * | BitPuffin pokes dom96 |
17:07:35 | dom96 | hi |
17:08:05 | BitPuffin | why hello there |
17:08:29 | * | shodan45 quit (Quit: Konversation terminated!) |
17:10:14 | * | ltbarcly joined #nimrod |
17:10:30 | reactormonk | BitPuffin, sqlalchemy is yet another SQL layer? |
17:10:39 | BitPuffin | reactormonk it is an ORM |
17:12:00 | BitPuffin | reactormonk well not only |
17:12:03 | BitPuffin | but it can act as one |
17:12:54 | reactormonk | BitPuffin, I'd start with http://sequel.rubyforge.org/ - so no ORM, just SQL syntax in nimrod and some macros to transform it into an SQL query - with escaping n stuff. |
17:13:08 | BitPuffin | reactormonk sqlalchemy has that too |
17:13:21 | BitPuffin | reactormonk it's like sequel with an orm if you want it |
17:13:23 | BitPuffin | afaik |
17:13:42 | reactormonk | BitPuffin, I'd just go for sequel for starters - with macros you should be able to generate the queries at compile-type |
17:13:47 | reactormonk | s/type/time/ |
17:13:57 | BitPuffin | I know about sequel |
17:14:28 | BitPuffin | But I just don't see how they differ that much other than that sqlalchemy has already solved the design of how to integrate an orm into the design |
17:15:07 | BitPuffin | it's probably one of the libraries I see being praised the most |
17:19:10 | Mat2 | hi dom96 |
17:19:51 | Mat2 | can you give me the link again to your blog module ? |
17:20:10 | BitPuffin | zahary_ is it possible to use delegator with = ? |
17:20:30 | BitPuffin | So that I can do v.xz = [2, 34] |
17:20:54 | Mat2 | bbl |
17:20:55 | dom96 | Mat2: You mean this? https://github.com/dom96/ipsumgenera |
17:21:20 | Mat2 | yes, thanks |
17:21:54 | Mat2 | must reboot |
17:21:58 | * | Mat2 quit (Quit: Verlassend) |
17:25:46 | * | Mat2 joined #nimrod |
17:26:12 | * | Mat2 one memory leak later... |
17:26:36 | BitPuffin | Mat2 irresponsible coding!! |
17:28:47 | Mat2 | say that to the Linux kernel developers |
17:29:56 | BitPuffin | Mat2 yeah ffs |
17:39:28 | Mat2 | someone should hint them, that most ELF entries have a sense |
17:39:42 | Mat2 | for example |
18:03:36 | * | Mat2 some error messages of the compiler reminds me of koans |
18:04:52 | Mat2 | ^some error messages from the compiler |
18:09:18 | Mat2 | have someone here used the assembler statement before ? |
18:18:33 | Mat2 | I following the example in the Nimrod manual: |
18:18:34 | Mat2 | asm """ |
18:18:35 | Mat2 | .byte 0xCC |
18:18:39 | Mat2 | """ |
18:19:36 | Mat2 | and get these error: |
18:19:41 | Mat2 | Fehler: expected string literal before ».« token |
18:19:56 | Mat2 | (from the C compiler) |
18:20:54 | BitPuffin | I have not |
18:20:59 | Araq | Mat2: use this instead: |
18:21:03 | Araq | asm """ |
18:21:09 | Araq | ".byte 0xCC" |
18:21:12 | Araq | """" |
18:21:20 | BitPuffin | Mat2 btw the assembly resource you linked me a while back was for some odd asm architecture. Does it still apply for x86? |
18:21:41 | Araq | note the quotes in the triple quotes as it's copied verbatim to GCC's assembler statement |
18:21:52 | Mat2 | hi Araq, thanks |
18:21:56 | BitPuffin | Araq why does it need to be in quotes? |
18:22:13 | Araq | BitPuffin: because I was lazy, sorry |
18:22:25 | BitPuffin | Araq ah that's fine. Just wanted to know |
18:22:37 | BitPuffin | Araq will the need for quotes be removed some day? |
18:22:51 | BitPuffin | like for 1.0 or whatever |
18:22:52 | Araq | I might do it tonight :P |
18:22:57 | BitPuffin | oh really? |
18:22:59 | BitPuffin | cool :) |
18:23:02 | BitPuffin | not that I know asm yet |
18:23:08 | BitPuffin | but I hope to optimize linagl eventually with it |
18:23:35 | Mat2 | BitPuffin: These algorithms are universal, the sources are for a Z80 CPU which is i8080 compatible and the i8086 shares most features beside the encoding |
18:23:57 | Araq | zahary: yeah we have a corruption for nimbuild too; I think we should combine the GCs so that it triggers as soon as memory is reclaimed that's still reachable according to the M&S GC :D |
18:23:58 | BitPuffin | Mat2 I see. So in general the same "source" would work on x86? |
18:24:24 | BitPuffin | http://sgate.emt.bme.hu/patai/publications/z80guide/ this was the site right? |
18:24:38 | Mat2 | no, but all mnemonics can be 1:1 translated to valid 8086 code |
18:24:58 | Mat2 | yes, that is the side |
18:25:20 | BitPuffin | okay cool! |
18:25:30 | Mat2 | there exist even a translation tool from Z80 or i8080 assembler sources to i8086 |
18:25:39 | BitPuffin | is there an equally good resource for x86 asm? :) |
18:25:53 | BitPuffin | for novices that is |
18:26:10 | Mat2 | take a look at the fasm web site: www.flatassembler.net |
18:29:40 | BitPuffin | what is the assembler that nimrod uses? |
18:29:49 | Mat2 | (by the way, you find the translator complete with all sources for the operating-system on a QDOS boot-disk, an OS which later was known as MS-DOS) |
18:30:07 | Mat2 | GNU as |
18:30:20 | BitPuffin | does that work if you use clang? |
18:30:31 | Mat2 | for sure not |
18:30:47 | BitPuffin | so no asm statement for clang? |
18:30:48 | BitPuffin | Araq? |
18:32:24 | Araq | BitPuffin: clang has an asm statement and I think it uses the same syntax as gcc; however even if not you can easily do: |
18:32:32 | Araq | when defined(clang): |
18:32:39 | Araq | asm """ .... """ |
18:32:41 | Araq | else: |
18:32:46 | Araq | asm """ ... """ |
18:32:56 | BitPuffin | hmm yeah true |
18:33:19 | BitPuffin | inline asm quickly becomes insane in that case hehe |
18:33:31 | BitPuffin | But it seems like nimrod gets better performance from clang |
18:34:01 | BitPuffin | at least in that nimrod vs rust vs D vs c++ etc benchmark |
18:34:02 | Araq | BitPuffin: on my machine the compiler produced with GCC is slightly faster than clang |
18:34:11 | Araq | at least it used to be this way |
18:34:13 | BitPuffin | Araq oh? Didn't know |
18:34:22 | Araq | it's hard to keep up to date all the time :P |
18:34:30 | BitPuffin | Araq One advantage with clang though is that it is faster at compilation I believe |
18:34:37 | BitPuffin | they are in competition hehe :) |
18:34:55 | * | ltbarcly quit (Quit: Textual IRC Client: www.textualapp.com) |
18:38:23 | Mat2 | Araq: clang does not support all ehm, syntax features of as |
18:38:47 | BitPuffin | Mat2 ehm? |
18:39:00 | Araq | Mat2: and yet I'm sure it's good enough for compiling the linux kernel; compilers tend to be quick to support compiling it |
18:39:26 | BitPuffin | Araq you compile linux with clang? |
18:39:44 | Mat2 | Araq: that's right, however do not assume there exist no incompatiblities |
18:40:11 | Araq | BitPuffin: I never compile any C/C++ code if I can avoid it |
18:40:45 | BitPuffin | Araq you mean except every time you use nimrod for anything? |
18:40:49 | BitPuffin | except web dev |
18:41:14 | BitPuffin | Araq how do ou know clang can compile the linjucks kernel? |
18:41:22 | Araq | well I never compile any C code that has been written by hand :P |
18:41:32 | BitPuffin | hehe :) |
18:42:20 | Mat2 | Araq: still does not work |
18:42:47 | Araq | Mat2: I did a typo with the closing """ |
18:43:08 | Araq | what's the error message? |
18:43:40 | Mat2 | Error: junk at end of line, first unrecognized character is `p' |
18:45:04 | Mat2 | ok, after take a look at the C sources its clear that the asm statement can't compile |
18:46:15 | Mat2 | asm ( .byte 0xCC |
18:46:20 | Mat2 | ... |
18:46:57 | Mat2 | the right statement would be: asm (".byte 0xCC..."); |
18:47:40 | Araq | well I told you to use extra quotes |
18:47:50 | Mat2 | I have |
18:48:10 | Araq | strange |
18:48:11 | Mat2 | asm """ |
18:48:11 | Mat2 | ".byte 0xCC" |
18:48:14 | Mat2 | ... |
18:50:41 | Mat2 | another problem is, that variables names are not resolved: |
18:50:58 | Mat2 | "mov navmBackendS1, %rax" |
18:51:14 | Mat2 | should be translated to: |
18:51:15 | Araq | use `navmBackendS1` |
18:51:27 | Mat2 | thanks |
18:51:29 | Araq | with backticks so the compiler knows it's a nimrod symbol |
18:57:30 | Mat2 | so I compile in the form: |
18:57:39 | Mat2 | asm """ ".byte 0xCC """ ... |
18:57:45 | Mat2 | that works |
18:58:00 | dom96 | Well at least we made the top 100: http://adambard.com/blog/top-github-languages-for-2013-so-far/ |
18:58:01 | Mat2 | ^asm """ ".byte 0xCC" """ |
18:58:28 | Araq | Mat2: strange, let me take a look |
18:58:54 | Mat2 | uno momento |
19:01:33 | Araq | dom96: yay 82th is not bad :P |
19:02:36 | Mat2 | Araq: https://gist.github.com/anonymous/6428137 |
19:09:51 | Mat2 | please not, only navmBackendTempAdr is converted right despite that all used symbols are setted in backticks |
19:10:29 | Mat2 | and I do not see the reason for all these nimnl calls |
19:11:29 | Araq | {.push stackTrace: off.} gets rid of them |
19:18:48 | Araq | Mat2: https://gist.github.com/Araq/6428326 |
19:18:52 | Araq | produces: |
19:19:07 | Araq | asm( |
19:19:08 | Araq | ".byte 0xCC\n" |
19:19:10 | Araq | "push %rcx\n" |
19:19:11 | Araq | "push %rdx\n" |
19:19:13 | Araq | "push %r8\n" |
19:19:14 | Araq | "mov navmBackendS1, %rax\n" |
19:19:16 | Araq | "mov navmBackendS2, %r8\n" |
19:19:17 | Araq | "mov navmBackendTempAdr, %rdx\n" |
19:19:19 | Araq | "call *%rdx\n" |
19:19:20 | Araq | "mov %rax, navmBackendS1\n" |
19:19:22 | Araq | ); |
19:20:15 | Araq | and that's how it's supposed to be used, but as I said, just relax and wait a sec ;-) |
19:22:52 | Mat2 | ah, the '\n' |
19:26:40 | Mat2 | ok, works - thanks |
19:27:31 | Araq | try this as the first line: ".intel_syntax noprefix\" |
19:27:41 | Araq | gcc is supposed to support Intel's syntax |
19:27:50 | Araq | I never tried it though |
19:28:10 | Mat2 | thnaks for the tip, but as features a very special Intel syntax |
19:28:25 | Mat2 | ^thanks |
19:29:34 | Mat2 | if you know MASM you know why I am prefer the AT&T style... |
19:30:45 | Araq | AT&T style is an abomination |
19:30:56 | Araq | ;-) |
19:30:59 | Mat2 | well, you do not know MASM |
19:31:25 | Araq | I think I do |
19:31:34 | Araq | though it's been a while |
19:31:46 | Araq | I can't see how it's related |
19:32:59 | Mat2 | the GCC folk support MASM compatible syntax (sadly only) |
19:33:34 | Mat2 | so: MOV QWORD PTR navmBackendTempAdr, rdx |
19:33:54 | Mat2 | instead of MOV [navmBackendTempAdr], rdx |
19:33:59 | Mat2 | for example |
19:34:38 | Araq | btw win64 doesn't use AMD's default calling convention |
19:34:56 | Araq | so you have to support 2 different calling conventions for x86_64 |
19:35:08 | Mat2 | nice ;) |
19:36:42 | Mat2 | no problem so far |
19:37:50 | Araq | "jno 1\n" |
19:37:52 | Araq | "call _raiseOverflow\n" |
19:37:53 | Araq | "1: \n" |
19:37:55 | Araq | :"=a"(`result`) |
19:38:12 | Araq | if Nimrod inserts the " \n" for us, we need to detect clobber register annotations |
19:38:36 | Araq | they seem to start with a :" so that should do to detect these lines |
19:38:43 | Araq | what do you think? |
19:39:45 | Mat2 | yes, that's needed |
19:44:36 | * | companion_cube joined #nimrod |
19:44:47 | Araq | hi companion_cube, welcome |
19:44:53 | companion_cube | hi! |
19:45:22 | Mat2 | hi |
19:45:49 | companion_cube | I took a look at nimrod's features and it looks pretty interesting ^^ |
19:49:47 | Mat2 | Araq: in addition the asm statement should always followed by volatile because GCC can trash the inserted code thanks to some optimizations otherwise |
19:50:00 | companion_cube | I'm surprised by the tagged union stuff, in the Irc module doc I read that in the "TIRC" type, fields depend on a boolean value |
19:51:05 | Araq | Mat2: I don't know, that's a feature so that the optimizer works with inline assembler |
19:53:50 | Araq | companion_cube: I picked tagged unions over ML-like sum types as they are more flexible and fit a systems programming language better. imho of course |
19:54:58 | companion_cube | but in this case, it looks like dependent typing?! |
19:55:34 | companion_cube | I really like ML's algebraic types and the pattern matching, but safe tagged unions are ok |
19:58:25 | companion_cube | is there a read-eval-print loop? |
19:58:46 | Araq | it's not dependent typing, but with 0.9.3 the type system became flow sensitive |
20:01:19 | companion_cube | ok, so that means that some fields become only known within some branch of a case/if |
20:02:13 | Araq | well currently the compile can emit a warning if it cannot prove it statically and it will fail at runtime |
20:03:31 | Araq | *the compiler |
20:03:38 | companion_cube | ok |
20:04:07 | * | Mat2 executing some test routines, seem to work so far |
20:04:18 | reactormonk | companion_cube, nimrod i |
20:04:29 | companion_cube | I don't see qualified imports, do they exist? |
20:04:43 | Araq | from x import bah |
20:05:14 | companion_cube | reactormonk: nice, thank you |
20:05:36 | companion_cube | Araq: I mean import symbols that are to be prefixed with the module name |
20:05:49 | companion_cube | (as in python) |
20:06:09 | Araq | well you can always do x.y if 'x' is somehow imported |
20:06:13 | reactormonk | companion_cube, there's nothing that has to be prefixed iirc - you can, though. |
20:06:19 | Araq | so for instance: |
20:06:36 | companion_cube | I see |
20:06:50 | Araq | from m import x # x needs no qualifier |
20:07:01 | Araq | m.y # others can be accessed with a qualifier |
20:07:13 | Araq | from m import nil # everything needs a qualifier |
20:07:18 | reactormonk | @s |
20:07:21 | Araq | import m # everything imported |
20:07:24 | reactormonk | oops. |
20:08:20 | companion_cube | from m import nil, then |
20:08:37 | companion_cube | also, I must say that the std lib looks pretty nice |
20:14:13 | Araq | companion_cube: "import m" is the nimrodic way though as it that plays well with user defined operators and method call syntax |
20:14:56 | Araq | and "namespace pollution" is no problem in a statically typed environment in practice |
20:17:39 | BitPuffin | Araq will simd stuff be added to the stdlib? |
20:18:14 | companion_cube | ah, it help with operator overloading |
20:19:22 | * | BitPuffin is now known as BitPuffin|zzzzzz |
20:19:33 | Araq | BitPuffin: sure lots of people ask for that |
20:20:06 | BitPuffin|zzzzzz | Araq cool! it would be grrrreat! |
20:22:20 | Mat2 | simd stuff ? |
20:22:52 | BitPuffin|zzzzzz | Mat2 single instruction multiple data |
20:24:02 | Mat2 | ah, SIMD !!! |
20:25:11 | Mat2 | not a simulator for D |
20:25:34 | BitPuffin|zzzzzz | Mat2 hehe nope |
20:25:37 | BitPuffin|zzzzzz | anyways |
20:25:40 | BitPuffin|zzzzzz | nightynight |
20:25:47 | Mat2 | ciao |
20:41:14 | Araq | "Programming is becoming more interactive. JavaScript proved that the development loop can be as short as refreshing your browser. More recently, Go made fast compilation possible at Google scale." ... omg |
20:46:42 | Mat2 | Scale Google, scale ! |
20:49:26 | dom96 | Yeah, that doesn't mean much. Especially when you think about Facebook, its scale and the fact that they use PHP. |
20:50:35 | Araq | obviously PHP is web scale too |
20:50:46 | companion_cube | everyone knows that JS is much more interactive than old days' lisp |
20:51:12 | Araq | in fact, PHP proved that dollar sigils are essential for scalability |
20:51:45 | Mat2 | right, one month coding in Javascript and your keyboard begin speaking wirth you |
20:51:49 | Mat2 | ^with |
20:52:39 | Mat2 | that's real interactiveness |
20:53:24 | companion_cube | is &= efficient for multiple concatenations? |
20:53:50 | dom96 | You should use 'add' :P |
20:54:18 | dom96 | It's the nimrod way. |
20:56:00 | companion_cube | is there really a difference? |
20:57:03 | dom96 | nah, &= is an alias for 'add'. |
20:57:06 | Araq | no except we forgot to implement &= for some things |
20:57:18 | dom96 | that too. |
20:57:57 | companion_cube | is "&" a more general operator than string concatenation? |
20:58:08 | * | companion_cube feels like asking a bit too many questions |
21:01:39 | Araq | & can concatenate seqs too |
21:02:20 | companion_cube | ah, I see |
21:03:41 | * | jdp_ joined #nimrod |
21:23:16 | Mat2 | hi jdp |
21:39:25 | * | EXetoC joined #nimrod |
21:42:17 | Mat2 | hi EXetoC |
21:46:05 | Mat2 | ciao |
21:46:09 | Araq | wait |
21:46:22 | Mat2 | ok |
21:48:17 | NimBot | Araq/Nimrod master ceee4d5 Araq [+0 ±6 -0]: better support for GNU's assembler |
21:48:17 | NimBot | Araq/Nimrod master 1a57c1e Araq [+0 ±29 -0]: resolved the conflict |
21:48:29 | Mat2 | ah I see |
21:48:34 | Araq | here you go; no need for " \n" crap |
21:48:43 | Mat2 | thanks |
21:49:42 | reactormonk | if i mod 2: nh = nh / 2 |
21:49:46 | reactormonk | gives me fibonacci.nim(16, 11) Error: type mismatch: got (range -1..1(int)) but expected 'bool' |
21:50:19 | Araq | if i mod 2 != 0 |
21:53:59 | reactormonk | I suppose you can't really blaim c2nim for that, can you? |
21:54:19 | Mat2 | ciao |
21:54:28 | * | Mat2 quit (Quit: Verlassend) |
21:55:47 | Araq | nope, c2nim doesn't know anything about nimrod's strong typing |
22:06:38 | * | OrionPK joined #nimrod |
22:23:29 | * | shodan45 joined #nimrod |
22:25:05 | * | jdp_ is now known as jdp |
22:37:26 | * | BitPuffin|zzzzzz quit (Ping timeout: 264 seconds) |
22:45:11 | * | ltbarcly joined #nimrod |
22:53:23 | * | ltbarcly quit (Quit: Computer has gone to sleep.) |
23:00:03 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
23:32:54 | * | shodan45 quit (Quit: Konversation terminated!) |