Thanks, Matthias for bringing this up.  As Glenn pointed out, the full file 
path as the namespace is needed so that we can effectively build 
libraries/packages for SystemML, rather than just single-file scripts.  If you 
truncate the namespace down to just the name of the specific file, then you 
prevent the ability to build a library in which the same file name is used in 
multiple folders.

Another note with the example presented.  Assuming that you are running the 
`mnist_lenet-train.dml` script, the `train` and `predict` functions are defined 
in `mnist_lenet.dml`, which is imported, so those functions would not be in the 
default namespace.

-Mike

--

Mike Dusenberry
GitHub: github.com/dusenberrymw
LinkedIn: linkedin.com/in/mikedusenberry

Sent from my iPhone.


> On Feb 12, 2017, at 10:15 PM, Glenn Weidner <gweid...@us.ibm.com> wrote:
> 
> Use of source filenames instead of default namespace helped address various 
> issues and tasks under https://issues.apache.org/jira/browse/SYSTEMML-590 
> that were encountered when creating the SystemML-NN script library. Unit 
> tests were also added to cover different import scenarios. As I recall, 
> function name conflicts could potentially occur between independent source 
> files when global default namespace used. It also helped simplify calling 
> dml-bodied functions when a file was imported by another.
> 
> Thanks,
> Glenn
> 
> 
> Matthias Boehm ---02/12/2017 12:30:35 AM---While debugging our mnist_lenet 
> script, I encountered an issue with our namespace handling with imp
> 
> From: Matthias Boehm <mboe...@googlemail.com>
> To: dev@systemml.incubator.apache.org
> Date: 02/12/2017 12:30 AM
> Subject: Namespace handling w/ imports
> 
> 
> 
> 
> While debugging our mnist_lenet script, I encountered an issue with our 
> namespace handling with imports. Here is the related function call graph 
> (after inlining):
> 
> ----FUNCTION CALL GRAPH
> ------MAIN PROGRAM
> --------.\mnist_lenet.dml::train
> ----------.\nn/layers/dropout.dml::forward
> ----------.\mnist_lenet.dml::predict
> 
> but it should read as follows
> 
> ----FUNCTION CALL GRAPH
> ------MAIN PROGRAM
> --------.defaultNS::train
> ----------dropout::forward
> ----------.defaultNS::predict
> 
> The namespace handling was changed a while ago. So my question is: was 
> there a necessity to encode the filenames in the namespace or is this 
> just a bug?
> 
> 
> Regards,
> Matthias
> 
> 
> 
> 

Reply via email to