On 4 Nov 2007, at 15:18, Ronald Oussoren wrote:

>> Currently working on the next appscript release and wondering if
>> anyone has any thoughts on whether or not I should prioritise 64-bit
>> support (which means reworking its various C extensions to eliminate
>> their dependence on Python's Carbon extensions)? How important is
>> providing 64-bit support at the moment?
>
> None of the GUI frameworks support 64-bit code at the moment, so I'd  
> say "not very".

You mean Python GUI frameworks (PyObjC, wxPython, etc.), yes?


> That said: how much work would it be to make appscript 64-bit clean?


Depends. If I don't bother waiting for Python's Carbon extensions to  
go 64-bit first (which I'm guessing is no time soon), then under a  
week if I'm not concerned about backwards compatibility in the low- 
level and more obscure APIs:

- remove CarbonX.OSA and osascript to a new package separate to  
appscript which can be worked on in its own time

- drop support for Carbon.File-related convenience methods in the  
mactypes module's Alias and File classes

- eliminate dependency on pymactoolbox in CarbonX.AE and friends (by  
cutting and pasting the bits it actually uses - PyErr_Mac,  
PyMac_BuildOSType, etc.).


I'm not sure how much disruption these changes would cause for  
existing users, though hopefully not much:

- I doubt anyone uses the OSA stuff except me; as far as I can tell,  
most users don't venture beyond the appscript and osax APIs

- anyone who really needs to work with Carbon.File objects can always  
write their own code to convert between mactypes' Alias and File  
objects and Carbon.File equivalents

- appscript/aem users are rarely exposed to CarbonX.AE.AEDescs since  
commonly used standard types are already bridged. Where they are  
exposed, users who need to manipulate them (beyond just treating them  
as obaque types) could adapt their code as necessary (which might be  
as simple as changing any references to the CarbonX namespace to the  
aem one).



To be honest, I think the simplest solution from my POV would just be  
to copy the current rb-appscript setup, which is already 64-bit savvy  
except for the osax module [1]. Rb-appscript contains only aem,  
appscript, mactypes and osax modules plus a single AE extension that  
provides all the C bridging required by all of them. This level of  
reworking would make it a PITA if I ever wanted to reintegrate  
appscript with Python's built-in Carbon extensions - that's something  
I'd certainly like to do, but who knows if/when that could/will ever  
happen in practice [2]? Meantime,  being able to do away with all the  
accumulated and legacy gunk does have a certain appeal: compared to  
the Ruby and ObjC ports, the original version's internals are looking  
rather scruffy these days.

Any thoughts? In particular, if you or anyone else can see current or  
future problems or disadvantages to this approach, or would be  
negatively affected by them, please do let me know.

has

[1] The deprecation of OSAGetAppTerminology means that I'll have to  
write an sdef parser in order to fetch osax terminology dynamically  
under 64-bit. This'll happen eventually; in the meantime, any user who  
wants to use osaxen in 64-bit will have to create and use a static  
glue. A bit annoying for them, but it's not a high-priority module for  
me so folks'll just have to wait till I can get around to it - unless  
someone else would like to volunteer for the job?

[2] Out of interest, does BridgeSupport provide any assistance with  
bridging Carbon APIs, or does it cover Cocoa/CoreFoundation only? If  
it did cover Carbon as well, my own instinct would be for starting  
over using that rather than trying to update the existing Carbon  
extensions.

-- 
http://appscript.sourceforge.net
http://rb-appscript.rubyforge.org

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to