Simon Wright <[email protected]> writes:

> On 3 Jun 2015, at 10:55, Simon Wright <[email protected]> wrote:
>
>> On 2 Jun 2015, at 23:42, Stephen Leake <[email protected]> 
>> wrote:
>> 
>>> Simon Wright <[email protected]> writes:
>> 
>>>> Looking good so far; I’ve made a basic-ada module, and exceptions get
>>>> handled just fine in spite of Mac not having sjlj. If this is what you
>>>> mean.
>>> 
>>> You only need sjlj if exceptions cross an Ada/C boundary. I just need to
>>> nail down where that happens in my code.

I've reproduced my problem on Windows; I was waiting to also do it on
Linux before I posted.

On Windows with zcx, I get a crash on any exception, at the point the
exception is raised. Crossing an Ada/C boundary is not required. With
sjlj, there is no exception. So apparently zcx requires some
initialization that either adainit doesn't do, or sjlj undoes, or
something. 

> How can I provoke an exception to check out whether there’s a problem
> on Mac? 

Just put in a syntax error.

> Changes in attached patches:
> * I modified ada-wisi.el to handle dll naming & file extension
> * the code at the end of emacs_module_h.ads.gp failed, because ‘Size
> isn’t static so can’t be used to define a constant ; 

Yes, I checked that in before I actually compiled it; sorry.

> I just commented-out the emacs_env_25_byte_size definition and its
> uses. GNAT GPL 2014, FSF GCC 4.9.1.

> I couldn’t easily use the makefile, 

Which one? ada-mode.stephe-3/Makefile, or
ada-mode.stephe-3/build/wisi/Makefile. They are the same as far as
building the ada_grammar dynlib; build/wisi also runs all the tests.

What was the problem? I'm guessing the same sjlj issue I ran into on
Linux.

> so edited the generated GPR and C source, see attached mac_* files.
> With these, gprbuild worked fine and produced an SAL .dylib without
> fuss (I’d set up environment variables in the shell pro tem):

What is an "SAL"?

Apparently Library_Interface works on Mac (I haven't tried it on Linux
yet). When I try that on Windows, I get "can't load the specified
module" (I really hate that message; why doesn't it have the module file
name in it!?!). It also leaves libgnat dynamically linked, so we'd have
to distribute that if we do a binary release.

That leaves us with a naming convention difference between Windows and
Mac, but I can put the "lib" back on Windows if we stay with this
approach.


-- 
-- Stephe

_______________________________________________
Emacs-ada-mode mailing list
[email protected]
http://host114.hostmonster.com/mailman/listinfo/emacs-ada-mode_stephe-leake.org

Reply via email to