Xojo Conferences
XDCMay2019MiamiUSA

Argh!!! again bug :-(( (Real Studio Plugins Mailinglist archive)

Back to the thread list
Previous thread: Teleo Modules
Next thread: Re: ENUMS simulations // Interface glitches.


macosx and unix paths   -   GOLD
  Argh!!! again bug :-((   -   Ruslan Zasukhin
   Re: Argh!!! again bug :-((   -   Alfred Van Hoek
    Re: Argh!!! again bug :-((   -   Einhugur Software
     Re: Argh!!! again bug :-((   -   Ruslan Zasukhin
      Re: Argh!!! again bug :-((   -   Einhugur Software
       Re: Argh!!! again bug :-((   -   Ruslan Zasukhin
    Re: Argh!!! again bug :-((   -   Ruslan Zasukhin
    Argh!!! again bug :-((   -   Ruslan Zasukhin

Argh!!! again bug :-((
Date: 19.06.04 16:55 (Sat, 19 Jun 2004 18:55:02 +0300)
From: Ruslan Zasukhin
I have create interface "I_Link" that have this 2 methods to simulate
property, As it was recommended.

{ REALnoImplementation, REALnoImplementation,
"OnDelete as Integer"},

{ REALnoImplementation, REALnoImplementation,
"OnDelete(Assigns inValue as Integer)"},

And now I make its implementation "Vlink" class:
So I have specify in the class the same methods

{ (REALproc) Link_get_OnDelete, REALnoImplementation,
"OnDelete as Integer"},

{ (REALproc) Link_put_OnDelete, REALnoImplementation,
"OnDelete(Assigns inValue as Integer)"},

I compile plugin, run REALbasic, and what you think I get?
I get message window on start

Declaration of OnDelete doesn't match interface
declaration in I_Link.

If I comment ANY from 2 functions it works.
So it sounds like REALbasic find conflict between 2 methods.

This means that you have TOTALLY broken way to simulate properties in
interfaces.

---------------
I want note, that in MODULE, usage of "Assign" keyword works ok.
I.e. Bug only in Interface area somehow.

-----------------
I have try remove Assigns keyword. NOT WORKS!
I have try add parenthesis. NOT WORKS!

I use REALbasic 5.2.2 final btw.

Re: Argh!!! again bug :-((
Date: 19.06.04 17:52 (Sat, 19 Jun 2004 12:52:26 -0400)
From: Alfred Van Hoek
on 6/19/04 11:55 AM, Ruslan Zasukhin at <email address removed> wrote:

> This means that you have TOTALLY broken way to simulate properties in
> interfaces.
>
> ---------------
> I want note, that in MODULE, usage of "Assign" keyword works ok.
> I.e. Bug only in Interface area somehow.

For every plugin resource ID, which contains classes that implement an
interface you need to reregister the interface class. Since the interface
does not contain methods, it is safe to do so. A module is different, once
it is registered it is known "globally".

Is it a bug, maybe, but it is easily worked around:

PluginID 128 contains a class that implements myInterface, register the
myInterface here

PluginID 129 contains another class that implements myInterface, register
the myInterface here (again).

I guess this is your provblem, might be wrong, but interfaces defined in a
plugin work ok.. And, it is difficult to grasp what your problem is/was, and
resending an earlier "letter" did not help much. It is only guess work here,
for which I just had the time to do so..

Alfred

_______________________________________________
Unsubscribe or switch delivery mode:
<http://support.realsoftware.com/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Re: Argh!!! again bug :-((
Date: 19.06.04 21:23 (Sat, 19 Jun 2004 20:23:24 +0000)
From: Einhugur Software

On 19.6.2004, at 16:52, Alfred Van Hoek wrote:

> For every plugin resource ID, which contains classes that implement an
> interface you need to reregister the interface class. Since the
> interface
> does not contain methods, it is safe to do so. A module is different,
> once
> it is registered it is known "globally".

This is not true any more, it was the case a long time ago but does not
apply any more.

I have for example nowdays streaming interfaces defined in the TypeLib
plugin and other plugins such as e-CryptIt Engine and LongBinaryStream
use them, which is no problem, REALbasic simply includes the needed
TypeLib segment in the compile.

(Note though that of course you need to make sure that the plugin or
plugin segment that contains the Interface definition is registered
before any plugin that will use it).

There are two cases that I know of that are problems with interfaces.

1. Is the one that Russlan is talking about where REALbasic is not
allowing the setter/getter style,
and actually not allowing any overloading at all. This is probably
because when you load a interface method
then you load it without defining parameters, which of course limits
interfaces greatly.

2. The other is if you for example define a plugin function which
returns a Type of IIterator (which is a interface),
then inside the plugin you construct ObjectQueue, which implements
IIterator and return it, then you will get
a crash because REALbasic did not know that it had to include the
ObjectQueue in the compile, and it actually
has no way of knowing about it. I don't think this case can be
solved until they introduce manifest descriptors for
the plugins.

Re: Argh!!! again bug :-((
Date: 19.06.04 22:33 (Sun, 20 Jun 2004 00:33:15 +0300)
From: Ruslan Zasukhin
On 6/19/04 11:23 PM, "Einhugur Software" <<email address removed>> wrote:

Hi Einhugur,

> There are two cases that I know of that are problems with interfaces.
>
> 1. Is the one that Russlan is talking about where REALbasic is not
> allowing the setter/getter style,

Yes, and I was going to simulate this with "Assign", but this not works!

> and actually not allowing any overloading at all.

Bingo.

> This is probably because when you load a interface method then you load it
> without defining parameters, which of course limits interfaces greatly.

Hmm, wait the moment. You say that in RB I cannot to have in interface 2
methods with the same name ???

func1( p1 as int )
func1( p1 as int , p2 as float )

This will not work in interfaces?

Then of course not work my attempt to do

property() as integer
property( Assigns v as integer)

In fact, in all languages we can overload methods with no problems.
So I think this is NOT technical problem of RB.

I think/hope this is just a glitch/bug..
REAL ?

> 2. The other is if you for example define a plugin function which
> returns a Type of IIterator (which is a interface),
> then inside the plugin you construct ObjectQueue, which implements
> IIterator and return it, then you will get
> a crash because REALbasic did not know that it had to include the
> ObjectQueue in the compile, and it actually
> has no way of knowing about it. I don't think this case can be
> solved until they introduce manifest descriptors for
> the plugins.

Well, so I am right.

"Interfaces" still are not ready for normal usage.

Re: Argh!!! again bug :-((
Date: 19.06.04 22:55 (Sat, 19 Jun 2004 21:55:59 +0000)
From: Einhugur Software

On 19.6.2004, at 21:33, Ruslan Zasukhin wrote:

> Hmm, wait the moment. You say that in RB I cannot to have in interface
> 2
> methods with the same name ???

Well since the syntax to load a method with REALInterfaceMethod if the
method is called foo(a as Integer) is "foo" then no I cannot see how it
could ever work to overload with a interface.

Re: Argh!!! again bug :-((
Date: 19.06.04 23:01 (Sun, 20 Jun 2004 01:01:48 +0300)
From: Ruslan Zasukhin
On 6/20/04 12:55 AM, "Einhugur Software" <<email address removed>> wrote:

>
> On 19.6.2004, at 21:33, Ruslan Zasukhin wrote:
>
>> Hmm, wait the moment. You say that in RB I cannot to have in interface
>> 2
>> methods with the same name ???
>
> Well since the syntax to load a method with REALInterfaceMethod if the
> method is called foo(a as Integer) is "foo" then no I cannot see how it
> could ever work to overload with a interface.

This may be limitation only of REALInterfaceMethod

But it very looks that you are right, and REALbasic have problem here.

Re: Argh!!! again bug :-((
Date: 19.06.04 22:19 (Sun, 20 Jun 2004 00:19:51 +0300)
From: Ruslan Zasukhin
On 6/19/04 7:52 PM, "Alfred Van Hoek" <<email address removed>> wrote:

> on 6/19/04 11:55 AM, Ruslan Zasukhin at <email address removed> wrote:
>
>> This means that you have TOTALLY broken way to simulate properties in
>> interfaces.
>>
>> ---------------
>> I want note, that in MODULE, usage of "Assign" keyword works ok.
>> I.e. Bug only in Interface area somehow.

Hi Alfread,

> For every plugin resource ID, which contains classes that implement an
> interface you need to reregister the interface class. Since the interface
> does not contain methods, it is safe to do so. A module is different, once
> it is registered it is known "globally".
>
> Is it a bug, maybe, but it is easily worked around:
>
> PluginID 128 contains a class that implements myInterface, register the
> myInterface here
>
> PluginID 129 contains another class that implements myInterface, register
> the myInterface here (again).
>
> I guess this is your provblem, might be wrong, but interfaces defined in a
> plugin work ok..

Interface itself -- YES.

Not work the function with keyword "Assigns".
I was going use that to simulate properties.

And note, I have just ONE plugin, so it seems you describe other problem.

> And, it is difficult to grasp what your problem is/was, and
> resending an earlier "letter" did not help much. It is only guess work here,
> for which I just had the time to do so..

Argh!!! again bug :-((
Date: 30.05.04 15:40 (Sun, 30 May 2004 17:40:54 +0300)
From: Ruslan Zasukhin
I have create interface "I_Link" that have this 2 methods to simulate
property, As it was recommended.

{ REALnoImplementation, REALnoImplementation,
"OnDelete as Integer"},

{ REALnoImplementation, REALnoImplementation,
"OnDelete(Assigns inValue as Integer)"},

And now I make its implementation "Vlink" class:
So I have specify in the class the same methods

{ (REALproc) Link_get_OnDelete, REALnoImplementation,
"OnDelete as Integer"},

{ (REALproc) Link_put_OnDelete, REALnoImplementation,
"OnDelete(Assigns inValue as Integer)"},

I compile plugin, run REALbasic, and what you think I get?
I get message window on start

Declaration of OnDelete doesn't match interface
declaration in I_Link.

If I comment ANY from 2 functions it works.
So it sounds like REALbasic ( or REALbugsic? :^)
Find conflict between 2 methods.

This means that you have TOTALLY broken way to simulate properties in
interfaces.

---------------
I want note, that in MODULE, usage of "Assign" keyword works ok.
I.e. Bug only in Interface area somehow.

-----------------
I have try remove Assigns keyword. NOT WORKS!
I have try add parenthesis. NOT WORKS!

I use REALbasic 5.2.2 final btw.

------------------------
What is going on?!

Anybody have try to create interface in the plugin?
Anybody have try to simulate property with Assigns ?
But it sounds like even OVERLOADING of methods not work in Interface !!!

P.S.

REAL, at last of end. When you will start to use regression tests?
When you will TEST each feature you claim BEFORE you ship product?

It is just so huge disappointment to read that wow! we can do this.
and later OPS, nothing works.

Sorry again, for angry letter. But I want underline, only in REALbasic
plugin SDK I meet SO MANY bugs, glitches and problems.

Director -- all works as promised.
Visual BASIC -- no problems
WebSiphon, PHP, Java -- no problems

REALbasic -- problems, problems, problems. :-((
I go to drink a lots of vodka :-)