[m-rev.] for review: add example of calling Mercury libraries from Java

Julien Fischer jfischer at opturion.com
Fri Dec 5 20:07:54 AEDT 2014


On Fri, 5 Dec 2014, Peter Wang wrote:

> On Fri, 5 Dec 2014 13:44:13 +1100 (AEDT), Julien Fischer <jfischer at opturion.com> wrote:
>> diff --git a/samples/java_interface/standalone_java/JavaMain.java b/samples/java_interface/standalone_java/JavaMain.java
>> new file mode 100644
>> index 0000000..814f917
>> --- /dev/null
>> +++ b/samples/java_interface/standalone_java/JavaMain.java
>> @@ -0,0 +1,53 @@
> ...
>> +
>> +        // When we have finished calling Mercury procedures then we need to
>> +        // invoke any finalisers specified using ':- finalise' declarations in
>> +        // the set of Mercury libraries we are using.
>> +        // The static method run_finalisers() in the JavaInternal class does
>> +        // this.  It will also perform any Mercury runtime finalisation that
>> +        // may be needed.
>> +        //
>> +        JavaInternal.run_finalisers();
>> +
>> +        // The Mercury exit status (as set by io.set_exit_status/1) may be read
>> +        // from the static field 'exit_status' in the JavaInternal class.
>> +        //
>> +        out.println("JavaMain: Mercury exit status = "
>> +            + JavaInternal.exit_status);
>
> No, I disagree with documenting something called JavaInternal.
> I suggest creating a new class with two methods to begin with:
>
>    public static void run_finalisers()
>    public static int get_exit_status()

I agree.  There should be a single class that acts as the public
API for the Java version of the runtime.  I was thinking of naming
it either Runtime or MercuryRuntime.  Does anyone have a preference
(or an alternative suggestion)?

Cheers,
Julien.



More information about the reviews mailing list