Ticket #481 (closed enhancement: fixed)

Opened 6 years ago

Last modified 5 years ago

Leopard interface databases

Reported by: rme Owned by: gb
Priority: minor Milestone: Clozure CL 1.5
Component: IDE Version: 1.3
Keywords: Cc:

Description

We don't provide interface databases that include new Leopard stuff (like NSGradient, for example).

At some fairly near future date, we might want to build interfaces with -mmacosx-version-min=10.5 or come up with some scheme to allow the user to switch between various versions.

Change History

comment:1 Changed 6 years ago by gb

  • Owner set to gb
  • Status changed from new to assigned

I think that the x86-64 Cocoa interfaces assume Leopard.

It may very well be the case that always assuming Leopard would work for Tiger users as well (and that one way of supporting multiple sets of interfaces is to always use the latest.) If this doesn't currently work (if the bridge gets confused by Leopard classes or methods that aren't present in the Tiger runtime), that could probably be made to work (though of course it wouldn't actually be possible to reference those Leopard-specific things on a Tiger system.)

If that's true (and if Leopard is basically a superset of Tiger), then there'd be no real reason to distribute Tiger interfaces on 32-bit platforms if Leopard versions are also available.

comment:2 Changed 6 years ago by rme

I built Leopard interfaces for Cocoa.framework on x8632 locally.

One problem I ran into is that Leopard now defines NS_DURING/NS_HANDLER/etc. in terms of @try/@catch, and doesn't provide a definition for the NSHandler2 struct at all. We can work around this by defining:

(def-foreign-type #>NSHandler2AppleSaysWeShouldNotBeUsing
  (:struct #>NSHandler2AppleSaysWeShouldNotBeUsing
    (:_state :jmp_buf)
    (:_exception :address)
    (:_thread :address)
    (:_thread :address)
    (:_reserved1 :address)))

and using it in in lieu of #>NSHandler2 in the definition of WITH-NS-EXCEPTIONS-AS-ERRORS.

comment:3 Changed 5 years ago by rme

  • Milestone set to Clozure CL 1.4

comment:4 Changed 5 years ago by rme

  • Status changed from assigned to closed
  • Resolution set to fixed

I built and committed interface databases built from the 10.5 SDK (r13393 through r13396).

Note: See TracTickets for help on using tickets.