Page 1 of 1

New Features Roadmap

Posted: 11 Nov 2015 16:21
by Martin Meyer
Hello Thomas,

do you have a roadmap of new features, which you are currently implementing in the upcoming VIP version, or of which you are thinking about for future VIP versions?

It would be interesting to get an idea, in which direction the development of VIP might go in future (but pushing you is not the intension of the question).

Regards
Martin

Posted: 12 Nov 2015 0:06
by Thomas Linder Puls
Well, a major new feature is user defined presentation of terms in the debugger. As an example of this the attached image shows this map:

Code: Select all

        M = mapM_redBlack::new(),         M:insertList([tuple(5, "a"), tuple(2, "b"), tuple(19, "c"), tuple(25, "a"), tuple(135, "b")]),
We do not give release estimates, so don't ask. As always there will be a free update if you have purchased a version that becomes the "previous version" soon after.

Posted: 12 Nov 2015 0:42
by Martin Meyer
Yes, such clear presentation of terms, especially collections, will enhance debugging a lot.

Thanks for the preview,
Martin

Posted: 12 Nov 2015 4:56
by Peter Muraya
Thomas & Martin,
Yes, I would welcome this debugging feature of being able to inspect the contents of a collection; it is the lack of this facility that makes me use lists or database facts where other types of collections would have been more appropriate.
Here is another one that I would welcome:being able to inspect a calculated property. E.g.

Code: Select all

interface test      properties            view:string(o). end interface
In the current implementation such a property as the one above is excluded from the view by the debugger.

Posted: 12 Nov 2015 9:44
by Thomas Linder Puls
That will not happen.

A property is a predicate (or two) which the debugger cannot just choose to execute whenever it like. Such a property-predicate can do a lot of things that should not be executed by the debugger.

Just consider this simple (COM-inspired) code that performs a reference count each time a property is accessed:

Code: Select all

properties     x : iSomething (o).   clauses     x() = native :-         native:addRef().
Each time the debugger would show the value, the interface would be addRef'ed and subsequently it would never be released.

However, if a property corresponds to a fact then you can already inspect the fact.