[Bug 29509] New: Functions: External, Implementation-Defined, Host Language

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29509

            Bug ID: 29509
           Summary: Functions: External, Implementation-Defined, Host
                    Language
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XPath 3.1
          Assignee: jonathan.robie@gmail.com
          Reporter: jonathan.robie@gmail.com
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

The current internal draft has formal definitions for various kinds of
functions.  The relationship between host language functions, external
functions, and implementation-defined functions is confusing and not terribly
helpful.  

The definition of external function has been in drafts since February 2014, but
it defines external in terms of "the query environment".

<quote src="XQuery31" status="current internal">
external function

External functions are functions that are implemented outside the query
environment.
</quote>

It's probably better to define it syntactically:

<quote src="XQuery31" status="proposed">
external function

External functions are functions identified with the 'external' keyword in the
query prolog.
</quote>

In XQuery, Appendix C tells us that implementations can augment the built-in
functions with additional functions, but there is currently no term that refers
to these functions.  The term implementation-defined function is a natural for
this, but it is not yet up to the task:

<quote src="XQuery31" status="current internal">
[Definition: An implementation-defined function is a function that is
implementation-defined.].
</quote>

It's probably better to define this in terms of augmenting the static and
dynamic contexts:

<quote src="XQuery31" status="current internal">
[Definition: An implementation-defined function is a function that is provided
by an implementation that augments the *statically known function signatures*
and/or *named functions*.]  Functions imported from standard libraries are also
considered implementation-defined functions, and the implementation must
document which libraries it imports.
</quote>

The current definition of host language function is:

[Definition: A host language function is a function defined by the host
language.]

This definition may not be needed, and did not exist until recently. Can we
just get rid of it?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Tuesday, 1 March 2016 14:48:41 UTC