- Merged PR #41: Made argument encoding compatible with new XP runners:
The default is to encode them binary-safe using
utf-7
. Only difference: Passing "utf-8" as encoding value will prevent any decoding from happening. (@thekid)
- Merged PR #39: Refactor bootstrapping to match precedence definitions (@thekid)
- Removed deprecation warning with "iconv.internal_encoding". See the PHP RFC https://wiki.php.net/rfc/default_encoding (@thekid)
- Merged PR #38: Implement running .xar files directly without xp.runtime.Xar,
e.g.
xp test.xar
. Works with all XP 6 releases, XP 7.0-dev & XP 5.12. (@thekid)
- Merged PR #37: Implement running class files by their file name, e.g.
xp Test.class.php
. Works with all XP 6 releases, XP 7.0-dev & XP 5.12. (@thekid)
- Adopted xp-framework/rfc#300 and switched to semantic versioning (@thekid, @kiesel)
- Implemented xp-framework/rfc#306: Load modules, see PR #36. (@thekid)
- Allowed empty ini keys, treat them the same as being absent (@thekid)
- Changed code to no longer set
iconv.internal_encoding
which is deprecated (@thekid)
- Switch Debian distribution to jessie
(@mikey179)
- Merged PR #34: Automatically create Debian package and publish to Bintray (@mikey179, @thekid)
- Merged PR #33: Display startup errors with stack traces (@thekid)
- Merged PR #32: Support optional class path entries via ?[path] (@kiesel, @thekid)
- Merged PR #30: Add support for PHP FPM (@kiesel)
- Fixed passing
-q
to Un*x runners triggering watch mode - see PR #31 (@kiesel)
- Fixed issue #27: Core errors unhandled (@thekid)
- Merged PR #26: Rewrite fatal error handler, inlining error class (@thekid)
- Made test suite pass on current PHP 7 (built: Jul 11 2015 19:11:20) See https://travis-ci.org/xp-framework/xp-runners/builds/70605263 (@thekid)
- Implemented nice stacktraces for PHP exceptions. This will especially be of interest for PHP 7. See #25 (@thekid)
- Fixed
AssemblyVersion
for Windows runners - @thekid
- Merged PR #24: Unittest watcher, runs unittests indefinitely. (@thekid)
- Merged PR #23: Fixed warning for the case, that there isn't a "::" in the include path. (@johannes85)
- Fixed bootstrapping via Composer if a global XP Framework is installed.
In this case,
__xp.php
is loaded viavendor/autoload.php
. The old code simply checked for the file itself, which is not enough: Instead, the current context needs to be tested for the existance of a class called xp. This indicates the XP Framework has bootstrapped correctly. (@thekid)
- Added HHVM nightly builds to the Travis-CI suite - (@thekid)
- Fixed issue #21: Warnings during startup with empty
use
directive (@thekid) - Merged PR #20: Translate '~' into $home (@kiesel)
- Try fixing exes compiled on a box with .NET v4.5 not working on boxes with v4.0 installed. (@thekid)
- Added HHVM support by using long command line options See facebook/hhvm#1200 (@thekid)
- Added test suite for ruinners, verifying XP5 and XP6 - (@thekid)
- Ensured bootstrapping is only performed once - (@thekid)
- Added support for class names and empty args in xpws' configuration:
.
xpws
will check "./etc/web.ini" and pass "./etc" or "-" if not found. .xpws -c -
will always be passed as "-", indicating no configuration .xpws -c $arg
will check the $arg directory for a web.ini, and pass $arg if found, or ":$arg", indicating a class name, otherwise. See xp-framework/scriptlet#4 (@thekid)
- Added support to bootstrap by including the path to __xp.php in a path file. This will allow greater composer interoperability. (@thekid)
- Changed startup errors to exceptions. Eases testability. (@thekid)
- Added test suite for shared code, verifying bootstrapping process, XAR file support and path file processing. (@thekid)
- Fix runners requiring .NET 4.5 (again) (@thekid)
- Fix Un*x runners to look for
[class|web]-main.php
alongside runner, not in current directory (@thekid)
- Initial release: XP runners now bundle
[class|web]-main.php
and decouple it from the framework. See xp-framework/rfc#287 (@thekid)
- Implemented command line argument "-m" to xpws. Given "develop" (or being omitted), will start development webserver. Any other value will start xp.scriptlet.Server with the given mode. See PR #18 (@thekid)
- Allowed starting xpws without web config - See PR #16 (@thekid)
- Documented how to create a debian package with checkinstall. See PR #15 (@haimich)
- Implemented Unicode I/O on Windows - See PR #12 (@thekid)
- Fixed issue #14 - "Runners don't work without .NET 4.5" See http://marcgravell.blogspot.de/2012/09/iterator-blocks-missing-methods-and-net.html (@thekid)
- Upgraded dependency to C# 4.0 - (@thekid)
- Changed argument handling to pass command line args to XP6 as UTF-7 (@thekid)
- Made outputting UTF-8 to the Windows cmd.exe work w/o garbled output (@thekid)
- Change code to invoke command using shell option
exec
which then replaces the current process with the newly forked subprocess. This shortens theps
output footprint, as the invoker script, eg.xpcli
will no longer appear there. Also this makes process control work where other processes start a runner, remember its PID and later send a KILL signal to that PID; before this change, it just killed the runner process, leaving the underlyingphp
process alive. (@kiesel)
- Added support fr "-w" [web root], "-c" [config dir] and "-cp" [class path] args in xpws (@thekid)
- Implemented "-i" command line options which lets user inspect web Depends on xp.scriptlet.Inspect in XP Framework (see PR #9) (@thekid)
- Fixed issue #8: "Syntax error with double quotes" - (@thekid)
- Fixed xp-forge/xp-maven-plugin#2 / issue #7: "System.NullReferenceException when no extension entry" (@cconstandachi, @thekid)
- Added usage for XP Webserver - invoked by
xpws -?
- (@thekid) - Added check for etc/web.ini and refuse to start - (@thekid)
- Allowed supplying a document root via "-r" - (@thekid)
- Windows installer: Made more robust against self-overwriting which sometimes causes problems (grrrr!) (@thekid)
- Fixed bad substitution: The "//" command
${string//substring/replacement}
doesn't work on Ubuntu, which e.g. is the basis for Travis-CI (@thekid)
- Implemented xp-framework/rfc#254: Builtin development webserver (xpws) (@thekid)
- Added ability to define multiple PHP runtime configurations inside the
ini file.
(@thekid)
rt=5.4 [[email protected]] default=/usr/local/php53/php extension_dir=/usr/local/php53/ext [[email protected]] default=/usr/local/php54/php extension_dir=/usr/local/php54/ext [runtime] date.timezone=Europe/Berlin extension=php_gd.so
- Merged PR #4: Also read configuration lines with out a newline at EOL (@ohinckel)
- Added
xpwin.bat
. Implements issue #1 - "Windows non-shell integration" (@thekid)
- Implemented xp-framework/rfc#237: The "-w" and "-d" command line options (@thekid)
- Changed to use xp.runtime.Xar instead of xar.php. The latter will be deprecated as it is basically a duplicate of class.php except for the entry point invocation (@thekid)
- Added support comments (lines beginning with ";") - (@thekid)
- If inside a "real" Windows console window, set
LC_CONSOLE
to contain input and output encoding (@thekid)
- Embedded version & product information in .exe files (@thekid)
- Implemented xp-framework/rfc#178: XP.ini locations (@thekid)
- Added support shell links in Windows
If xp.ini contains, for example, "use_xp=C:/xp/5.7-latest", and
5.7-latest is a shell link created by "Create shortcut" in Windows
explorer, it's actually a file called "5.7-latest.lnk". Resolve
target path and use that. This is the closest to symlinks we can
get, and although Windows supports symlinks (via "junctions" in
NTFS / the "mklink" utility in Vista and 7), they're unuseable
for us as creating them requires administrative permissions.
First approach using the WshShell COM object, this requires a DLL
called IWshRuntimeLibrary, created by TlbImp.exe (from the Windows
SDK), called as follows:
TlbImp c:\windows\system32\wshom.ocx /out:windows\IWshRuntimeLibrary.dll
See http://stackoverflow.com/questions/139010/how-to-resolve-a-lnk-in-c (@thekid)
- Added update.sh to (unix|bsd|cygwin) runner distribution - (@thekid)
- Included update batch script for Windows - (@thekid)
- Added command line arg "-r" to reflect classes - (@thekid)
- Remove xpmon.exe workaround Cygwin problems Uses too much memory (~8 - 14 Megabytes) and causes other funny problems. Blog article has been adjusted accordingly (@thekid)
- Fixed php.exe not being terminated See http://news.xp-framework.net/article/338/2010/01/15 (@thekid)
- Catch Ctrl+C (only works in "real" consoles, not in a cygwin shell, for example) and kill the spawned process, see also: http://www.cygwin.com/ml/cygwin/2006-12/msg00151.html http://www.mail-archive.com/[email protected]/msg74638.html If we are not inside a real shell, accessing WindowHeight will raise an exception. In this case, setup a monitoring process that detects when this process is killed and will then ensure the child process is torn down. (@thekid)
- Removed webstart.exe from distribution - (@thekid)
- Specialized Un*x runners:
- BSD flavor, which checks for /proc and works around Process class problems when kern.ps_arg_cache_limit is too short (default: 256)
- Cygwin flavor, which uses cygpath for converting paths
- Default flavor, which will no longer work on CygWin (@thekid)
- Implemented
proxy
option in setup script - (@thekid)
- Fixed double quotes handling inside arguments correctly - (@thekid)
- Added
xpi
command - (@thekid) - Fixed
run.sh: line 7: cd: /home/Timm: No such file or directory
by handling quotes and whitespace correctly (@thekid)
- Added "-C" option ("Do not chdir to the script`s directory"); step 2 for making xp runners work with CGI(-FCGI) SAPI (@thekid)
- Added usage to
xp
command - (@thekid) - Prepended "-q" to arguments passed to PHP runtime; step 1 for making xp runners work with CGI PHP (@thekid)
- Remove d(undocumented) feature to place a php.ini file inside USE_XP
and instead make all keys except "default" inside the [runtime] section
to php.ini-keys. E.g. the following now works:
(@thekid)
use=~/devel/xp/trunk [runtime] default=/usr/local/bin/php5 date.timezone=Europe/Berlin default_charset=UTF-8 extension=php_mysql.so extension=php_ldap.so
- Fixed section reading for certain shells - (@thekid)
- Added test suite - (@thekid)
- Changed
xcc
to use xp.compiler.Runner instead of xp.compiler.Main for reasons of consistency with all other runners (@thekid)
- Fixed
Fatal error: [bootstrap] Classpath element [] not found
Only occurred on a Debian Linux system but can be fixed generically (@thekid) - Issued warning in setup if we cannot find xp.ini and create one (@thekid)
- Included setup in release. Now the following one-liner is possible:
$ wget http://xp-framework.net/downloads/releases/bin/setup -O - |php
(@thekid)
- Windows: Made startup exceptions more verbose - (@thekid)
- Fixed compatibility with .NET Framework v3.0 - (@thekid)
- Removed debug - (@thekid, Ruben Wagner)
- Changed passing includes inside include_path to use two path separators. Fixes problems with PHP ini file parsing routines and quoting - (@thekid)
- Fixed
bin/xp: 85: Syntax error: Bad substitution
which ccured on older Cygwin version and on FreeBSD - (@thekid)
- Implemented xp-framework/rfc#173 - xp-tools.xar (@thekid)
- Created initial release - (@thekid)
- Added support for
[runtime]
section with a key pointing to the PHP runtime's filename in xp.ini - (@thekid) - Implemented xp-framework/rfc#166 - XP Runners - (@thekid)