[m-dev.] I want to move and rename the dependency_graph module

Julien Fischer jfischer at opturion.com
Wed Feb 15 13:18:11 AEDT 2017


Hi Paul,

On Wed, 15 Feb 2017, Paul Bone wrote:

> On Tue, Feb 14, 2017 at 04:58:05PM +1100, Zoltan Somogyi wrote:

>> Then for each entry point, we could just call this TSCC procedure
>> specifying the id of the procedure as p_to_call, the actual values
>> of its input arguments, and dummy values for the input args of all
>> the other procs in the TSCC.
>>
>> However, I am not sure about how easy it would be to generate dummy
>> arguments that would be type correct in each target language.
>
> Java and C# both have null which can be used for objects.  I think we
> understand the possible primitive types (like int) and can use values such
> as 0.
>
> Can a user give a foreign_type pragma with a primitive Java/C# type?

Yes, both backends allow the foreign type to be any accessible Java / C#
type.

> I don't think that would interact with Mercury's polymorphism well so
> it's probably not supported.

Both backends already support generating an appropriate initializer for
any mlds_type (and hence Mercury type), since we need to assign values
to local variables in the generated code to "get around" definite
assignment analysis.
(See mlds_to_java.get_java_type_initializer/1 and the similar
predicate in mlds_to_cs.m.)

Julien.


More information about the developers mailing list