Hi David,

Le 30 juin 2011 à 00:25, David Chisnall a écrit :

> Author: theraven
> Date: Thu Jun 30 00:25:46 2011
> New Revision: 7038
> 
> URL: http://svn.gna.org/viewcvs/etoile?rev=7038&view=rev
> Log:
> Make EtoileFoundation able to be compiled in ARC mode (if you run the 
> rewriter, which I haven't done).
> 
> Removed two files from the build:
> 
> NSObject+Prototypes.m: This reimplements a load of stuff that the runtime 
> implements.  It's ugly.  We should move 90% of it into the runtime.  
> 
> ETThread.m: As far as I can tell, this is a partial reimplementation of 
> NSThread, with a different name.  No idea why I wrote it - I can only assume 
> I was drunk at the time.

This commit causes various compilation errors here. I'm using Clang trunk from 
a week ago and libobjc 2 1.4.
btw are qualifiers such as __unsafe_unretained going to be skipped by compilers 
that don't know them (e.g. Clang 2.9 or GCC 4.6)?

With make in EtoileFoundation:

 Compiling file Source/ETByteSizeFormatter.m ...
In file included from Source/ETByteSizeFormatter.m:10:
/home/qmathe/reps/trunkEtoile/Frameworks/EtoileFoundation/Headers/Macros.h:65:5:
 error: use of undeclared identifier
      '__unsafe_unretained'
        [*(__unsafe_unretained id*)object unlock];
           ^

With make in EtoileThread:

In file included from ETObjectPipe.m:1:
/home/qmathe/reps/trunkEtoile/Frameworks/EtoileFoundation/EtoileThread/../Headers/Macros.h:65:5:
 error: use of undeclared
      identifier '__unsafe_unretained'
        [*(__unsafe_unretained id*)object unlock];
           ^
ETObjectPipe.m:132:5: error: ivars may not be placed in class extension
        id queue[RING_BUFFER_SIZE];
           ^
ETObjectPipe.m:134:11: error: ivars may not be placed in class extension
        uint32_t requestProducer;
                 ^
ETObjectPipe.m:136:11: error: ivars may not be placed in class extension
        uint32_t requestConsumer;
                 ^
ETObjectPipe.m:138:11: error: ivars may not be placed in class extension
        uint32_t replyProducer;
                 ^
ETObjectPipe.m:140:11: error: ivars may not be placed in class extension
        uint32_t replyConsumer;
                 ^
ETObjectPipe.m:145:15: error: ivars may not be placed in class extension
        NSCondition *requestCondition;
                     ^
ETObjectPipe.m:150:15: error: ivars may not be placed in class extension
        NSCondition *replyCondition;
                     ^
ETObjectPipe.m:152:16: error: ivars may not be placed in class extension
        volatile BOOL disconnect;
                      ^
ETObjectPipe.m:160:2: error: use of undeclared identifier 'requestCondition'
        requestCondition  = [NSCondition new];
        ^
ETObjectPipe.m:161:2: error: use of undeclared identifier 'replyCondition'
        replyCondition  = [NSCondition new];
        ^
ETObjectPipe.m:162:14: error: use of undeclared identifier 'queue'
        if (NULL == queue || nil == replyCondition || nil == requestCondition)
                    ^
ETObjectPipe.m:162:30: error: use of undeclared identifier 'replyCondition'
        if (NULL == queue || nil == replyCondition || nil == requestCondition)
                                    ^
ETObjectPipe.m:162:55: error: use of undeclared identifier 'requestCondition'
        if (NULL == queue || nil == replyCondition || nil == requestCondition)
                                                             ^
ETObjectPipe.m:173:4: error: use of undeclared identifier 'queue'
                [queue[i] release];
                 ^
ETObjectPipe.m:175:3: error: use of undeclared identifier 'requestCondition'
        [requestCondition release];
         ^
ETObjectPipe.m:176:3: error: use of undeclared identifier 'replyCondition'
        [replyCondition release];
         ^
ETObjectPipe.m:181:6: error: use of undeclared identifier 'disconnect'
        if (disconnect) { return; }
            ^
ETObjectPipe.m:182:2: error: use of undeclared identifier 'requestProducer'
        INSERT(anObject, request);
        ^
ETObjectPipe.m:79:9: note: instantiated from:
        while (ISFULL(direction ## Producer, direction ## Consumer))\
               ^
ETObjectPipe.m:45:37: note: instantiated from:
#define ISFULL(producer, consumer) (SPACE(producer, consumer) == 0)
                                    ^
ETObjectPipe.m:182:2: note: instantiated from:
        INSERT(anObject, request);
        ^
ETObjectPipe.m:79:9: note: instantiated from:
        while (ISFULL(direction ## Producer, direction ## Consumer))\
               ^
ETObjectPipe.m:182:2: note: instantiated from:
        INSERT(anObject, request);
        ^
<scratch space>:7:1: note: instantiated from:
requestProducer
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Cheers,
Quentin.
_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to