00:12:37 | * | noam joined #nimrod |
01:01:01 | * | BitPuffin quit (Remote host closed the connection) |
01:32:42 | * | zahary1 quit (Read error: Connection reset by peer) |
01:32:54 | * | zahary joined #nimrod |
02:13:11 | * | q66 quit (Quit: Leaving) |
02:26:33 | * | xilo joined #nimrod |
04:20:30 | * | Zor quit (Ping timeout: 268 seconds) |
04:28:37 | * | OrionPK quit (Read error: Connection reset by peer) |
04:33:56 | * | Associat0r quit (Quit: Associat0r) |
05:15:04 | * | XAMPP quit (Read error: Connection reset by peer) |
05:18:20 | * | reactormonk quit (Ping timeout: 260 seconds) |
05:44:46 | * | reactormonk joined #nimrod |
06:14:38 | * | Boscop quit (Disconnected by services) |
07:14:55 | * | Boscop joined #nimrod |
07:19:54 | * | Boscop quit (Disconnected by services) |
07:20:35 | * | Araq_ joined #nimrod |
07:25:24 | * | reactormonk quit (Ping timeout: 276 seconds) |
07:26:34 | * | reactormonk joined #nimrod |
07:55:06 | * | EXetoC joined #nimrod |
08:20:12 | * | Boscop joined #nimrod |
09:09:15 | * | q66 joined #nimrod |
09:10:30 | * | Boscop quit (Disconnected by services) |
10:10:44 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]) |
10:10:44 | * | Boscop joined #nimrod |
10:15:36 | * | Associat0r joined #nimrod |
10:15:36 | * | Associat0r quit (Changing host) |
10:15:36 | * | Associat0r joined #nimrod |
10:41:33 | EXetoC | åäö |
11:11:16 | * | [1]charles quit (Ping timeout: 256 seconds) |
11:11:26 | * | Boscop quit (Disconnected by services) |
11:52:52 | dom96 | hey |
12:00:35 | * | BitPuffin joined #nimrod |
12:11:41 | * | Boscop joined #nimrod |
12:15:58 | * | Boscop quit (Disconnected by services) |
12:24:11 | * | Araq_ joined #nimrod |
12:50:32 | * | BitPuffin quit (Remote host closed the connection) |
13:08:56 | * | BitPuffin joined #nimrod |
13:16:11 | * | Boscop joined #nimrod |
14:16:55 | * | Boscop quit (Disconnected by services) |
15:17:09 | * | Boscop joined #nimrod |
15:54:19 | BitPuffin | hmm, why isn't gtk3 added to the stdlib? |
16:15:46 | EXetoC | lack of manpower would be my guess |
16:17:22 | BitPuffin | yeah that's my guess too |
16:17:29 | BitPuffin | was mostly wondering if there was some other |
16:17:32 | BitPuffin | reason |
16:17:34 | * | Boscop quit (Disconnected by services) |
16:34:22 | EXetoC | I tried to convert the pascal binding, but it failed on the first procedure declaration |
16:34:49 | EXetoC | "procedure add_child(builder: PGtkBuilder; child: PGObject; type_: Pgchar); cdecl; inline" Inspired by pascal indeed. there are quite a few similarities |
16:37:27 | EXetoC | Araq: Can I make it work somehow? |
16:43:09 | EXetoC | this is preceded by "TGtkBuildable = object", and I get "Error: identifier expected, but found 'procedure'". https://svn.code.sf.net/p/lazarus-ccr/svn/bindings/gtk3/gtk3.pas |
16:51:24 | * | Sergio965 joined #nimrod |
17:03:28 | Araq | EXetoC: try to replace 'type_' with 'typ' |
17:03:53 | Araq | oh hrm |
17:03:56 | Araq | I see |
17:04:11 | Araq | well pas2nim doesn't support pascal's notion of OO |
17:04:27 | Araq | so ... what you want to accomplish looks like quite some work |
17:06:53 | EXetoC | ok |
17:07:39 | EXetoC | maybe I'll be brave enough to take on the C headers some time then |
17:09:10 | Araq | well you can remove stuff from the pascal unit until it compiles :P |
17:14:57 | * | BitPuffin quit (Read error: Connection reset by peer) |
17:15:21 | EXetoC | so much stuff |
17:17:49 | * | Boscop joined #nimrod |
17:18:30 | EXetoC | automation to the rescue |
17:22:36 | Araq | oh btw |
17:22:41 | Araq | are you wrapping gtk3? |
17:22:48 | dom96 | well, I just spent 4 hours memtesting these RAM modules I got about a year ago. |
17:23:00 | * | dom96 sighs |
17:25:10 | EXetoC | Araq: yeah. he asked about it so I thought I'd give it a go |
17:26:08 | Araq | EXetoC: maybe it's better to start from the C headers; Pascal translations sometimes have new bugs |
17:26:14 | Araq | sad but true |
17:29:54 | NimBot | Araq/Nimrod master d104a9b Araq [+0 ±8 -0]: fixed and documented computedGoto pragma |
17:29:54 | NimBot | Araq/Nimrod master 83047c6 Araq [+0 ±1 -0]: GC: added static cycleGC checks |
17:29:54 | NimBot | Araq/Nimrod master bb90931 Araq [+0 ±3 -0]: implemented opcTypeTrait |
17:29:54 | NimBot | Araq/Nimrod master ad543d0 Araq [+4 ±23 -0]: Merge branch 'master' of github.com:Araq/Nimrod |
17:30:02 | EXetoC | ok |
17:30:08 | Araq | brb |
17:35:58 | Araq | back |
17:43:18 | EXetoC | I'll start off with this. can't inline be parsed? maybe these can be ignored too |
17:43:54 | * | Mat2 joined #nimrod |
17:43:57 | Mat2 | hi @ all |
17:44:52 | EXetoC | I removed just the inline part and now it has been converted, but maybe it's a better idea to remove the whole declaration |
17:44:56 | EXetoC | Mat2: hi |
17:45:43 | Mat2 | hi EXetoC |
17:45:53 | EXetoC | "PGtkTextSearchFlags = ^TGtkTextSearchFlags; function forward_to_line_end: gboolean; cdecl; inline..." |
17:47:03 | EXetoC | which is preceded by a single-line declaration: "PPGtkTextSearchFlags = ^PGtkTextSearchFlags" |
17:47:59 | EXetoC | will deal with this a little later |
18:18:46 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
18:18:53 | * | Boscop quit (Disconnected by services) |
18:29:16 | * | Sergio965 joined #nimrod |
19:19:07 | * | Boscop joined #nimrod |
20:02:28 | * | Mat2 is now known as Mat2-coding |
20:13:06 | * | gradha joined #nimrod |
20:19:21 | * | Boscop quit (Disconnected by services) |
20:32:00 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
20:36:10 | * | EXetoC1 joined #nimrod |
20:36:14 | * | EXetoC1 quit (Client Quit) |
20:36:24 | * | EXetoC joined #nimrod |
21:09:36 | * | Associat0r quit (Quit: Associat0r) |
21:19:35 | * | Boscop joined #nimrod |
21:33:49 | * | gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=OzrkmcBMPYo again) |
21:44:55 | * | Sergio965 quit (Ping timeout: 264 seconds) |
21:51:19 | Mat2-coding | I have declared a sequence in an object: seq[uint64] |
21:52:27 | Mat2-coding | now I try to add a value to the sequence: |
21:53:10 | Mat2-coding | so for object x, sequence y for example: x.y.add (value) |
21:53:40 | Mat2-coding | the result is- SIGSEGV: Illegal storage access. (Attempt to read from nil?) |
21:55:00 | Araq | well initialize the seq to @[] first |
21:55:23 | Mat2-coding | hi Araq, thanks |
21:56:53 | Mat2-coding | ok, so sequences are not initialized at default by declaration |
21:57:10 | Mat2-coding | (good to know) |
21:57:38 | Araq | they are |
21:57:45 | Araq | but the default value sucks :P |
21:57:59 | Mat2-coding | ehm, ok *g* |
21:58:06 | Araq | you can use 'safeAdd' or wait until we changed it |
21:58:20 | Araq | it's planned that 'add' can add to nil sequences |
21:58:43 | Araq | as it's indeed annoying and the single nil check won't kill us performance wise |
21:59:58 | Mat2-coding | that would be nice indeed |
22:05:48 | Mat2-coding | what was the reason for handling initiation in these case so different ? |
22:05:56 | EXetoC | add/unsafeAdd? so we still have both, just that the more common one is shorter |
22:06:19 | Mat2-coding | I mean in such a unexpected way |
22:06:58 | Araq | EXetoC: yeah I thought the same but I don't think 'xadd' is necessary (it's still not unsafe) |
22:07:37 | Araq | Mat2-coding: my obsession with speed I guess |
22:08:23 | Araq | but it's not really unexpected; the stdlib almost never handles 'nil' for speed/code size reasons |
22:08:53 | Araq | now with the 'not nil' annotation we can ensure it statically |
22:09:13 | Araq | but it'll be annoying sometimes *sigh* |
22:10:54 | Mat2-coding | this behaviour can lead to some potential obscure runtime errors. Moreover the speed advantage is questionable in these case |
22:11:00 | NimBot | Araq/Nimrod master cb26bf7 Zahary Karadjov [+2 ±10 -0]: Experimental support for delayed instantiation of generics... 18 more lines |
22:11:00 | NimBot | Araq/Nimrod master d49423b Zahary Karadjov [+0 ±8 -0]: pass-through of static int generic params to arrays when late instantiation is disabled |
22:11:08 | EXetoC | I'd be happy with just having newSeq(s, 0) be the default implicit operation, which you could override with noInit, but it'd help in the case of the standard library if noInit could be part of a type alias |
22:11:34 | EXetoC | anyway, any change is fine |
22:13:23 | EXetoC | I think the current behavior is fine because of the helpful stack traces, but yeah it'll confuse newbies |
22:13:52 | Araq | zahary: what's "experimental support for delayed instantiation of generics"? |
22:15:17 | Mat2-coding | EXetoC: agree, it's a bit confusing at first |
22:15:55 | Araq | you know ... "confusing at first" is not really concerning me that much :P |
22:16:19 | zahary | Araq, check out the commit message |
22:16:34 | zahary | and see the 2 added test cases |
22:19:25 | * | q66 quit (Quit: Leaving) |
22:19:47 | * | Boscop quit (Disconnected by services) |
22:23:14 | Araq | gah you changed evalTypeTraits |
22:23:52 | Araq | evals.nim is about to be replaced by vm.nim btw |
22:24:39 | zahary | yeah, I noticed your commit |
22:24:45 | zahary | it's not big deal - this is minor detail, we can change it later |
22:25:42 | zahary | how is the new VM performing btw? I noticed you haven't tried to implement C packing for the objects while they are in memory |
22:26:04 | zahary | I still think that would be cool for easier FFI |
22:26:24 | Araq | I don't know yet |
22:26:37 | Araq | I only checked strutils.replace's performance |
22:26:59 | Araq | which does some array lookups etc. |
22:27:14 | Araq | was a factor ~20 faster iirc |
22:27:54 | zahary | impressive, have you tried comparing it to a native version? |
22:27:56 | Mat2-coding | good test in my opinion and nice archivement |
22:28:20 | Araq | I compared it to python with all the startup overheads |
22:28:31 | Araq | python's replace is native C |
22:28:51 | Araq | was 0.2s for Python and 0.8s for Nimrod iirc |
22:29:25 | Araq | so including system.nim compiling etc. |
22:29:40 | Araq | but python does some crappy things at startup too I think |
22:30:59 | Araq | zahary: using a packed representation is very hard as macros need the real ASTs anyway |
22:31:26 | Araq | you can do it by splitting the register sets |
22:31:52 | Araq | but then you also need to deal with lower level pointers and soon may reimplement a GC for them |
22:31:55 | dom96 | Araq: Why not just specify 'seq[T] not nil' for the 'add' proc, instead of doing a runtime nil check? |
22:32:27 | Araq | the 'not nil' stuff is annoying as the compiler moans if it can't prove it IMHO anyway, dom96 |
22:32:51 | zahary | what do you mean precisely. I took a look at the opcodes and it seems to me that the current slot indices could be replaced by offsets. do you mean that you still want the GC managed memory after the field is read and extracted from the packed object? |
22:33:40 | dom96 | Araq: ok, I know the difference isn't much but could we have a 'nil' and 'not nil' version of the 'add' proc? |
22:34:10 | dom96 | This way it will be optimised as long as the compiler can prove that the seq is not nil. |
22:34:54 | Araq | well if we want to optimize we should do just that and not introduce yet another way to overload things based on minor type differences |
22:35:31 | Araq | but it's likely you can't even measure the nil check anymore these days |
22:35:38 | Araq | so why bother |
22:36:38 | Araq | zahary: offset vs index is not the problem, the problem is that blobs don't cut it for modelling 'ref' |
22:37:06 | * | Sergio965 joined #nimrod |
22:39:44 | zahary | well, only top-level objects will be allocated then (as blobs), refs within them will be marked from the metadata (you see where the offsets of the ref fields are) |
22:40:08 | zahary | and more parts of the VM will have to work with ptr types |
22:40:36 | Araq | well it's still lots of work to finish what I have |
22:41:05 | Araq | if we take the blob route, I may as well ask Mat2-coding to implement us a JIT :-) |
22:41:33 | zahary | the FFI is still on the to-do, right? |
22:41:48 | zahary | I mean, I haven't missed it in some new commit |
22:41:50 | Araq | yeah but that's not much work |
22:42:30 | Araq | in fact, this tracing JIT stuff seems reasonably easy to implement if it weren't for the nasty side exists |
22:42:47 | Mat2-coding | it is |
22:46:11 | zahary | I think fast start is more important when it comes to macros. a JIT will add start-up delays. if we care for some very computationally intensive macros, I think the better solution will be to offer selective compilation to a DLL (can be controlled with a pragma). |
22:46:16 | EXetoC | "Error: conversion from int or Natural to int is invalid" interesting |
22:46:40 | EXetoC | has something like this been reported? it's related to type classes as you can see. will have to use separate overloads for now |
22:46:52 | Araq | EXetoC: report it |
22:47:18 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:48:42 | * | Boscop joined #nimrod |
22:49:28 | Araq | zahary: true but on the other hand supporting the int,int8,int16,uint,uint32, etc. type zoo properly plus the blob stuff in a VM is lots of work |
22:50:02 | Araq | and the CPU already implements all these operations |
22:50:23 | Araq | so generating native code looks more and more attractive for the blob route |
22:55:31 | * | alexrp joined #nimrod |
22:55:43 | Araq | hi alexrp welcome |
22:56:05 | Araq | oh you're zor |
22:56:14 | Araq | wb then |
22:56:25 | alexrp | thanks :) |
22:57:42 | * | alexrp is now known as Zor |
22:58:14 | Mat2-coding | zahary: The JIT overhead can be reduced to great extense and such a design would even help reducing code complexity in my experience |
22:58:28 | Mat2-coding | hi Zor |
23:03:12 | * | Araq__ joined #nimrod |
23:03:24 | Mat2-coding | you can't archive this with an orthodox JIT design however |
23:03:31 | * | Araq_ quit (Ping timeout: 264 seconds) |
23:06:09 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
23:13:30 | Araq | zahary: fyi: http://www.1024cores.net/ |
23:16:22 | zahary | I've been here before :) |
23:16:51 | Araq | it's quite new for me :P |
23:17:21 | Araq | escaped me for some reason |
23:23:54 | Mat2-coding | get some sleep, ciao |
23:24:06 | * | Mat2-coding quit (Quit: Verlassend) |
23:25:57 | Araq | same here, good night |
23:48:55 | * | Boscop quit (Disconnected by services) |