W3C home > Mailing lists > Public > public-qt-comments@w3.org > November 2010

[Bug 11352] %nondeterministic and independent compilations of modules

From: <bugzilla@jessica.w3.org>
Date: Sat, 20 Nov 2010 01:23:50 +0000
To: public-qt-comments@w3.org
Message-Id: <E1PJcBC-000494-Tn@jessica.w3.org>
http://www.w3.org/Bugs/Public/show_bug.cgi?id=11352

--- Comment #2 from Daniela Florescu <dflorescu@mac.com> 2010-11-20 01:23:49 UTC ---
Mike,

everything you said WOULD work, if modules would be required to disclose
that information about their publicly exposed functions (signature AND semantic
properties/annotations), and then stick to what they declared in the first
place.

But they DON'T today. Only signature is required. Semantic properties are left
in the air.

If a function f() is calling another function g() in an another module, and g's
body definition
changes (e.g. changes from being deterministic to being non-deterministic), so
does f()'s, as a side-effect. And changes in the semantic definition of f()
mean different optimization/indexing/caching/etc.

Let me try to be more explicit: changes in the BODY of a function in ONE module
(not visible signature)
in a module can have effect on the semantics/compilation/optimization of
ANOTHER module.

That's not what I call independent compilation of modules.

Hence my blocking bug request.

This is not a good foundation for a modern programming language.

Example:

module 1.
==========

module namespace ns1= uri1;

import module namespace ns2=uri2;

declare function ns1:foo1()
{
    ns2: bar1()
}


declare function  ns1: foo2()
{    
    ns2:bar2()
}



module 2
========


module namespace ns2= uri2;

import module namespace ns1=uri1;

declare function ns2:bar1()
{
    ns1: foo2()
}


declare % nondeterministic function  ns2:bar2() external;


================

Neither one of the two modules can be compiled without the ***content**** of
the other module,
(I am talking here about signatures and/or headers) which is terribly bad.

If I change the ns2:bar2 to be %deterministic, this changes the
semantics/optimization/runtime/indexing/
caching/etc of both ns1:* functions !

I deal with tens of thousands of lines of XQuery right now, and that's a
blocking bug.

Thanks for taking it seriously, best regards
Dana

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Saturday, 20 November 2010 01:23:52 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 March 2012 18:15:08 GMT