gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Creating a block using the Macros....


From: Gregory Casamento
Subject: Re: Creating a block using the Macros....
Date: Thu, 31 Oct 2019 19:53:52 -0400

I kind of figured.   This means that some of the functionality of classes that I have added lately will not be usable to people using GCC based builds.  I have been wondering, lately, when GCC will catch up or if we should, at some point, deprecate it's use with GNUstep since it only serves to complicate matters.

GC

Mailtrack Sender notified by
Mailtrack 10/31/19, 07:51:42 PM

On Tue, Oct 29, 2019 at 8:42 AM David Chisnall <address@hidden> wrote:
This is not possible in the general case.

A block is a structure containing:

  - A pointer to the invoke function.
  - The type info for the call.
  - A set of references to captured variables including:
    - Helpers to destroy any captured variables.
    - Helpers to copy any captured variables.

C macros are nowhere near expressive enough for this.  You could
probably (just about) implement them using C++ templates, though it
would be a lot of work.

The block macros give a way of allowing functions / methods that take
blocks to be called, so that it is possible to build GNUstep with GCC
and link it to a program built with clang.  To date, anything that needs
to create blocks, we have implemented a different way or conditionally
compiled out when building with GCC.

David

On 27/10/2019 15:55, Gregory Casamento wrote:
> How do I create a block using the macros?  I know how to declare one,
> but not actually create one.   Doing it in clang is easy, but I need
> something that will work for both....
>
> Any ideas?
>
> GC
> --
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> http://ind.ie/phoenix/
>
> Mailtrack
> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&>
>       Sender notified by
> Mailtrack
> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&>
> 10/27/19, 11:53:53 AM         
>



--
Gregory Casamento
GNUstep Lead Developer / OLC, Principal Consultant
http://www.gnustep.org - http://heronsperch.blogspot.com
http://ind.ie/phoenix/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]