Additional runtimes required?

Discussion about the open-source Phalanger [?] project.

Additional runtimes required?

Postby Guspaz@codeplex » August 4th, 2006, 12:48 am

I'd like more info on the runtime requirements of Phalanger-compiled applications.

The documentation says we need to include phalanger.msi with our programs. Unfortunately, the installer is huge (8.9MB) and will make our 20KB applications several hundred times larger!

So, what I'd like to know is, do users need to install phalanger.msi before they can run executables compiled by Phalanger, or is this just a licensing thing where we should be distributing phalanger along with our apps? Is it simply sufficient that a user has the .NET 2.0 framework installed in order to run EXEs made by phalanger?

If it is a licensing thing, would it be sufficient to include a link in the documentation (a readme file, or a web link file in the folder)? The requirement to include an 8.9MB installer with our applications makes it impossible to produce lightweight applications for quick download off the net.
Guspaz@codeplex
 
Posts: 4
Joined: January 7th, 2012, 8:57 pm

RE: Additional runtimes required?

Postby Tomas Matousek » August 4th, 2006, 5:45 pm

It's not a licencing issue. The need for Phalanger.msi is a simplification. In fact, you don't need it in its entirety. You need only those .dlls from bin, Extensions, and Wrappers directories, which the compiled application is using. You definitely need PhpNetCore.dll and PhpNetCore.IL.dll - that's minumum (~ 500kB zipped). Then it depends on the functions your application use.

If you use any PHP built-in function (e.g. array_key, etc.) you need bin\PhpNetClassLibrary.dll.

If you use some managed extension (e.g. MSSQL), you need bin\PhpNetMsSql.dll (note, that this particular extension also needs bin\PhpNetClassLibrary.dll).

If you use any native extension in collocated mode (in the same process as your application) you need Bin\php4ts.dll (which is different from the file with the same name from PHP interpreter!), the native .dll from Extensions directory (e.g. Extensions\phporacle.dll), all of its native dependencies (Oracle client dlls) and its managed wrapper (Wrappers\phporacle.mng.dll). If you want to run the extension in isolated mode (separate process), you need
also bin\ExtManager.exe.

If your application references .NET library other than distributed with .NET Framework/Mono you obviously need this as well.

If you use LINQ, you also need the library bin\System.Query.dll.

As you see, Phalanger is highly modular. You can distirbute only those parts that you really need. Of course, include the license file.

You also needn't to install the Phalanger via the .msi package. You can just copy the files listed above and GAC them (i.e. run gacutil.exe on them). Just make sure that you include <application executable file name>.config file along the executable file that contains all the necessary configuration. See <a href="http://www.php-compiler.net/Documentation2/Machine.config.txt for details on configuration">Machine.config</a> for the settings that the .msi installer includes to you Machine.config file. Some of them (especially the configSections and paths subsection) are required.
Tomas Matousek
 
Posts: 17
Joined: January 7th, 2012, 8:52 pm


Return to Phalanger project

Who is online

Users browsing this forum: No registered users and 21 guests

cron

User Control Panel

Login

Who is online

In total there are 21 users online :: 0 registered, 0 hidden and 21 guests (based on users active over the past 5 minutes)
Most users ever online was 256 on March 28th, 2024, 9:42 am

Users browsing this forum: No registered users and 21 guests