Phalanger icon indicating copy to clipboard operation
Phalanger copied to clipboard

a lot of bugfixes

Open proff opened this issue 11 years ago • 6 comments

is_file: ArgumentException if path contains invalid chars invalid encoding in urlencode/urldecode and dependenced functions some ScriptContext survived if web.config contains handlers or async code used (directly or indirectly) ReferenceNull is error instead of warning User error handler called when error reporting is disabled wrong print_r output of the PhpBytes type curl: support for CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST in .net 4.5 curl_setopt: bug with int values gd: imagecolorresolve, imagecolorsforindex implementation gd: transparent gif color changed to black when load and save image soap: many bugfixes and simple SoapServer implementation xml_parse_into_struct: wrong result and bug with encoding gzcompress NullReferenceException when data is null

proff avatar Sep 12 '13 18:09 proff

is CallContext is really needed in ScriptContext or this is legacy code? All CallContext data copied in another thread when async code is called (even safe at first sight HttpWebRequest.ServicePoint property using async code)

proff avatar Sep 12 '13 19:09 proff

P.S. my implementation of a mcrypt functions using bouncycastle. Can Phalanger project use this library without any licensing or any other problems?

proff avatar Sep 12 '13 19:09 proff

CallContext is used because of native extensions in "remote" mode (so e.g., Phalanger would run 64bit, and PHP extensions 32bit). This is very old stuff, and will be removed. We are aware of that (since ScriptContext.CurrentContext can be 100-times faster if we remove CallContext). Anyway on current thread, there is no copying, still it is slow.

The other thing is, ScriptContext should be "Fork"ed to be used on another thread! Otherwise you are going to manipulate with non-thread safe structures asynchronously. (ScriptContext is not thread safe, and locks{} would slow down runtime rapidly)

jakubmisek avatar Sep 12 '13 19:09 jakubmisek

bouncycastle is released under an adaptation of MIT X11 license, Phalanger is released under GPLv2. This combination should be checked. All the components released in Phalanger package (not used during compiling of Phalanger project) must be compatible with GPLv2.

jakubmisek avatar Sep 12 '13 19:09 jakubmisek

i'm suggesting breaking change: change "debug" configuration parameter type to DebugMode (None, Pdb, Full)

proff avatar Oct 31 '13 15:10 proff

Sorry this merge request is too big to be merged automatically. I can only subsequently reimplement some of your changes.

jakubmisek avatar Apr 07 '14 15:04 jakubmisek