Hi,
To report a small issue in the inspect functions module with %private declaration.
The following code runs perfectly :
declare %private function local:test(){()}; for $fun in inspect:functions() return "gotcha"
However, If the function test is located in another module, say test, then the following code
import module namespace test="http://www.example.com/test" at test.xq";
for $fun in inspect:functions() return "gotcha"
raise an exception.
Cheers,
Jean-Marc
However, If the function test is located in another module, say test, then the following code
import module namespace test="http://www.example.com/test" at test.xq";
for $fun in inspect:functions() return "gotcha"
raise an exception.
If you mean the exception "Function 'test:test' is not visible from this module.", that’s how it should be. If you mean another exception, could you please provide us with an SSCCE?
Christian
Hi christian, yes this is the point :
Stopped at C:/Jiheme/informatique/workspace/Graph DataBase/module/common.xq, 31/89: [XPST0017] Function 'local:test' is not visible from this module.
If this is desired, it means that we can not use the inspection module as soon as there is %private annotation in any imported module.
Maybe an alternative behavior for the inspection module could be to ignore %private functions ?
2013/12/2 Christian Grün christian.gruen@gmail.com
However, If the function test is located in another module, say test,
then
the following code
import module namespace test="http://www.example.com/test" at test.xq";
for $fun in inspect:functions() return "gotcha"
raise an exception.
If you mean the exception "Function 'test:test' is not visible from this module.", that’s how it should be. If you mean another exception, could you please provide us with an SSCCE?
Christian
Hi Jean-Marc,
thanks for the report. Leo has just fixed the issue. Feel free to check out the new snapshot [1].
Christian
[1] http://files.basex.org/releases/latest/ ___________________________
On Mon, Dec 2, 2013 at 1:18 PM, jean-marc Mercier jeanmarc.mercier@gmail.com wrote:
Hi christian, yes this is the point :
Stopped at C:/Jiheme/informatique/workspace/Graph DataBase/module/common.xq, 31/89: [XPST0017] Function 'local:test' is not visible from this module.
If this is desired, it means that we can not use the inspection module as soon as there is %private annotation in any imported module.
Maybe an alternative behavior for the inspection module could be to ignore %private functions ?
2013/12/2 Christian Grün christian.gruen@gmail.com
However, If the function test is located in another module, say test, then the following code
import module namespace test="http://www.example.com/test" at test.xq";
for $fun in inspect:functions() return "gotcha"
raise an exception.
If you mean the exception "Function 'test:test' is not visible from this module.", that’s how it should be. If you mean another exception, could you please provide us with an SSCCE?
Christian
Christian,
Hello. I just tested the new snapshot. There might still be a small issue there (maybe there's nothing you can do and we have to careful), since I can now execute %private functions :
I have a module where there is a %private function.
module namespace common = 'http://www.example.com/common'; declare %private function common:test(){"test"};
Then I switch to a my main project and tries
for $fun in inspect:functions() where fn:data(inspect:function($fun)/@name) = "common:test" return $fun()
and it returns "test"
Cheers,
Jean-Marc
2013/12/5 Christian Grün christian.gruen@gmail.com
Hi Jean-Marc,
thanks for the report. Leo has just fixed the issue. Feel free to check out the new snapshot [1].
Christian
[1] http://files.basex.org/releases/latest/ ___________________________
On Mon, Dec 2, 2013 at 1:18 PM, jean-marc Mercier jeanmarc.mercier@gmail.com wrote:
Hi christian, yes this is the point :
Stopped at C:/Jiheme/informatique/workspace/Graph
DataBase/module/common.xq,
31/89: [XPST0017] Function 'local:test' is not visible from this module.
If this is desired, it means that we can not use the inspection module as soon as there is %private annotation in any imported module.
Maybe an alternative behavior for the inspection module could be to
ignore
%private functions ?
2013/12/2 Christian Grün christian.gruen@gmail.com
However, If the function test is located in another module, say test, then the following code
import module namespace test="http://www.example.com/test" at
test.xq";
for $fun in inspect:functions() return "gotcha"
raise an exception.
If you mean the exception "Function 'test:test' is not visible from this module.", that’s how it should be. If you mean another exception, could you please provide us with an SSCCE?
Christian
I just tested the new snapshot. There might still be a small issue there (maybe there's nothing you can do and we have to careful), since I can now execute %private functions :
…that’s indeed possible now. We may tackle this in a future version.
Thanks for testing, Christian ___________________________
I have a module where there is a %private function.
module namespace common = 'http://www.example.com/common'; declare %private function common:test(){"test"};
Then I switch to a my main project and tries
for $fun in inspect:functions() where fn:data(inspect:function($fun)/@name) = "common:test" return $fun()
and it returns "test"
Cheers,
Jean-Marc
2013/12/5 Christian Grün christian.gruen@gmail.com
Hi Jean-Marc,
thanks for the report. Leo has just fixed the issue. Feel free to check out the new snapshot [1].
Christian
[1] http://files.basex.org/releases/latest/ ___________________________
On Mon, Dec 2, 2013 at 1:18 PM, jean-marc Mercier jeanmarc.mercier@gmail.com wrote:
Hi christian, yes this is the point :
Stopped at C:/Jiheme/informatique/workspace/Graph DataBase/module/common.xq, 31/89: [XPST0017] Function 'local:test' is not visible from this module.
If this is desired, it means that we can not use the inspection module as soon as there is %private annotation in any imported module.
Maybe an alternative behavior for the inspection module could be to ignore %private functions ?
2013/12/2 Christian Grün christian.gruen@gmail.com
However, If the function test is located in another module, say test, then the following code
import module namespace test="http://www.example.com/test" at test.xq";
for $fun in inspect:functions() return "gotcha"
raise an exception.
If you mean the exception "Function 'test:test' is not visible from this module.", that’s how it should be. If you mean another exception, could you please provide us with an SSCCE?
Christian
basex-talk@mailman.uni-konstanz.de