[Vm-dev] objc prefix header macros

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Thu Oct 29 00:06:55 UTC 2015


2015-10-28 22:27 GMT+01:00 Tobias Pape <Das.Linux at gmx.de>:

>
> Hi,
>
> On 28.10.2015, at 22:21, Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com> wrote:
>
> > Just in case, I put a copy here of the changes I had to perform for El
> Capitan/clang 7.0 with ARC enabled.
> >
> > These are diffs from svn 3478 (svn patch compatible).
> > The one concerning the commented TARGET_API_MAC_CARBON is questionable -
> it should probably be conditional (#ifdef something...). If the patch is
> applied as is, the macro should be defined in the command line for
> compiling legacy Mac Carbon VM.
>
> Caution, TARGET_API_MAC_CARBON  is used in several places in the vm to
> distinguish pre-Carbon OS 9,8,… and Carbon OS X. It also applies to some
> cocoa-OK code.
>
>
As I said, I'm not sure about this one, this was a quick fix that I had to
do to compile 64bits with clang 7.0...
I just retried now and I see that this is due to a missing declaration
    MenuItemIndex outIndex;
in primitiveGetIndMenuWithCommandID

It seems that the variable is declared, but only used in a cCode: verbatim
insertion...
Maybe modern CCodeGenerator does eliminate the variable as unused.
So there might be  a better fix :)



> also, your patch does several
> - int SomePtr
> + char* SomePtr
> I think this is dangerous. Do we really know these are char pointers?
> Also, if we have to know these are integerlike things, what about intptr_t
> here?
>
> I think that char pointers are OK for sqMacMidi.[cm]  it's a pointer to
either ByteString or ByteArray data if we trust the comments.
Maybe unsigned char *?
In all cases, int is definitely an error for a 64bits VM.

And in all cases, thanks for reviewing!


> Best regards
>         -Tobias
>
> >
> >
> >
> >
> > 2015-10-23 23:09 GMT+02:00 Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com>:
> > In platforms/iOS/vm/SqueakPureObjc_Prefix.pch, shouldn't the macros be
> defined
> >
> > #if ...
> > #define RELEASEOBJ(x)
> > #else
> > #define RELEASEOBJ(x) [x release]
> > #endif
> >
> > same for autorelease and retain
> >
> > because I currently have compilation errors with ARC enabled and clang
> 7.0
> >
> > It also seems that #define SUPERDEALLOC is missing in the ARC  branch.
> >
> > Thanks
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20151029/14b56898/attachment.htm


More information about the Vm-dev mailing list