fbpx
Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC: Compiler error XS9067 - CLIPPER calling convention (version 2.0.0.9)

Compiler error XS9067 - CLIPPER calling convention (version 2.0.0.9) 07 Feb 2019 14:45 #7291

  • Thomas's Avatar

  • Thomas

  • Topic Author


  • Posts: 70
  • Hi All,

    X# version 2.0.0.9
    Dialect Vulcan.NET
    (X# runtime)

    With version 2.0.0.9 we now get a new error XS9067 when we compile our solution (this was no error in version 2.0.0.8 ).
    I saw in the Whatsnew-Document a comment about changes in the compiler „Added compiler error when specifying default parameter values for methods/functions with clipper calling convention“, but I’m not sure if that relates to my problem.

    Description:
    We have a project with interface definitions, compiler option “Treat missing types as USUAL“ (vo15) is set to true.
    PUBLIC INTERFACE ISQLSelect
    METHOD Execute(pArgs)
    END INTERFACE

    In an other project we have a class that implements the interface. Compiler option “Treat missing types as USUAL“ (vo15) is set to true.
    PUBLIC CLASS SubSqlSelect IMPLEMENTS ISQLSelect
    METHOD Execute(pArgs)
    // Do something...
    END CLASS

    So we get an compiler error when we build the project with the implementation:
    Error XS9067 Interface method LibInterfaces.ISQLSelect.Execute(XSharp.__Usual) and implementation LibSql.SubSqlSelect.Execute(params XSharp.__Usual[]) have different calling conventions.

    As you describe in the „X# Compiler Errors and Warnings“ documentation for error XS9067, this should depend on different settings of compiler option /vo5 ((Implicit CLIPPER calling convention) ) in the projects.
    But we get the error even when both projects have the same settings for this compiler option (no matter if set to false or true).

    Maybe the problem is the compiler generated code for the interface?
    Version 2.0.0.9
    public interface ISQLSelect
    {
    __Usual Execute(__Usual pArgs);
    }
    Version 2.0.0.8
    public interface ISQLSelect
    {
    __Usual Execute([CompilerGenerated] params __Usual[] Xs$Args);
    }

    I get the same error with your example code in the error XS9067 description (the only difference is that there is a zero-argument method).
    I’ve attached samples for you to reproduce it.

    Regards
    Thomas
    Attachments:

    Please Log in or Create an account to join the conversation.

    Compiler error XS9067 - CLIPPER calling convention (version 2.0.0.9) 07 Feb 2019 16:58 #7292

  • robert's Avatar

  • robert


  • Posts: 1692
  • Thomas,
    There is a problem in the beta 9 compiler when you declare a method in an interface with clipper calling convention.
    In your case you have a method without parameters and the compiler option /vo5 will turn that into a method with clipper calling convention.
    We have it fixed already in our internal development build.
    I will send you a fix tomorrow. Is that Ok ?

    Robert
    XSharp Development Team
    The Netherlands

    Please Log in or Create an account to join the conversation.

    Compiler error XS9067 - CLIPPER calling convention (version 2.0.0.9) 07 Feb 2019 17:29 #7293

  • Thomas's Avatar

  • Thomas

  • Topic Author


  • Posts: 70
  • Hi Robert,
    that would be great! Thank you!
    Would you mind to send the fix also to my colleagues Mathias Koch and Frank Feinauer (they both should also be FOX subscribers) because I'm out of office until next Thursday?

    Thomas

    Please Log in or Create an account to join the conversation.

    Compiler error XS9067 - CLIPPER calling convention (version 2.0.0.9) 07 Feb 2019 17:42 #7294

  • robert's Avatar

  • robert


  • Posts: 1692
  • Thomas,
    I am sorry but that is not possible ;)
    Robert
    XSharp Development Team
    The Netherlands

    Please Log in or Create an account to join the conversation.

    Compiler error XS9067 - CLIPPER calling convention (version 2.0.0.9) 13 Feb 2019 11:25 #7310

  • Thomas's Avatar

  • Thomas

  • Topic Author


  • Posts: 70
  • Robert, could you please send me the fix? Thank you..
    Thomas

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1