From: Samuele P. <pe...@in...> - 2000-11-17 14:22:03
|
Hi. > A null frozenPackage parameter seems to occur when a module was compiled > without the --deep option. My interpretation of the meaning of "frozen" > and "--deep" goes like this: > > 1) Using --deep (which results in Py.frozen == true) we can assume > a completely closed environment. Every external module and package > have been found by the compiler so there should be no need to search > the filesystem for anything. > > 2) Module that have been compile without the --deep option should be > importable and runnable as if they were compiled by CodeCompiler. > Such modules are compiled but they are not frozen. F.ex when running > such a module directly it should attempt to build the cache/packages > and should search the file system for modules and classes. > > The 2) type of compilation is not supported very well at the moment. The > cache/packages dir is created, but no .jars are cached because jythonc > passes these properties to runMain(): > > python.packages.paths = "" > python.packages.directories = "" > > which creates a strange enviroment where java classes can't be found in > submodules. > > Perhaps we should have an additional options to jythonc, say "--depend" > which will track dependencies and compile all submodules but which does > not set the Py.frozen flag. So the bug is not really a bug. When I removed the Py.frozen test in loadFromPath I was actually thinking about 2). It seems to me that setting python.packages.paths = "" python.packages.directories = "" is redudant. The right logic should be to avoid Py.frozen tests around but to have in frozen code case (--deep): sys.path = [] and the cache not initialized. and PackageManager, frozenModules filled with the params to initProxy/ runMain. regards |