XCache is a fast, stable PHP opcode cacher that has been proven and is now running on production servers under high load. https://xcache.lighttpd.net/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

317 lines
13 KiB

  1. 4.0.0 2014-??-??
  2. API Changes
  3. ========
  4. * new: proto int xcache_get_refcount(mixed &$variable), with +1 side effect removed
  5. * chg: proto int xcache_get_cowcount(mixed $value)
  6. * new: proto mixed &xcache_get_ref(string name): Get cached data by specified name return referenced value. Not supported in PHP_4
  7. * new: proto mixed &xcache_get_ref(string name): Get cached data by specified name return referenced value. Not supported in PHP_4
  8. * new: proto bool xcache_set(string name, mixed &value [, int ttl]): Store data to cache by specified name maintaining value referenced
  9. ChangeLog
  10. ========
  11. * cacher:
  12. * (WIP) defragment
  13. * (WIP) cache to disk
  14. * fixed #348: added class const support for __FILE__ __DIR__
  15. * closes #342: added support for object caching. handle IS_RESTORCE as interger
  16. * able to return reference value by xcache_set_ref/xcache_get_ref
  17. * disassembler, decompiler:
  18. * PHP_5_6 support
  19. * misc:
  20. * Reflection info added for APIs
  21. 3.2.0 2014-09-18
  22. ChangeLog
  23. ========
  24. * cacher:
  25. * PHP_5_6 support
  26. * fixed #333: reduce memory usage for small or empty files
  27. * closes #337: adds warning about Zend OPcache optimization level incompatibility
  28. 3.1.2 2014-09-18
  29. no changes, same as 3.1.1
  30. 3.1.1 2014-09-02
  31. ChangeLog
  32. ========
  33. * cacher
  34. * compatible with bcompiler
  35. * admin
  36. * fixed random 24H counters clear. it's a race cached condition. thanks to the report from Per Hansson
  37. 3.1.0 2013-10-10
  38. ChangeLog
  39. ========
  40. * added support for PHP_5_5 (cacher, optimizer, disassembler)
  41. * cacher:
  42. * closed #228: allow using var caching for cli to share data between child processes
  43. * compatible with pcntl_fork()
  44. * fixed support for __FILE__ __DIR__ to correctly handle files that got moved/hardlinked (this fix is now move out of xcache.experimental)
  45. * disassembler:
  46. * fixed crash with nested sandbox
  47. * improved support for PHP_4 ~ PHP_5_4, also added support for PHP_5_5
  48. * admin
  49. * make mkpassword.php easier for noob
  50. * optimizer
  51. * rewrite try/catch handling to fix nested try/catch
  52. 3.0.4 2013-10-10
  53. ChangeLog
  54. ========
  55. * cacher
  56. * fixed #324: xcache.readonly_protection = Off cause SEGV under mass concurrent
  57. * fixed #323: refix locking impl for threaded env
  58. * build
  59. * win32: fix build with no indent.exe nor cat.exe
  60. 3.0.3 2013-06-18
  61. ChangeLog
  62. ========
  63. * clean files in release (fix htdocs config)
  64. 3.0.2 2013-06-10
  65. ChangeLog
  66. ========
  67. * cacher:
  68. * fixed #296: (PHP5.4+ only bug), racecondition Multiple instances of the same software causes PHP "cannot redeclare class" errors when readonly_protection is not in use
  69. * fixed #301: refix locking impl
  70. * fixed #307: compatible with Zend Debugger which requires to be installed after Zend Extension Manager
  71. * admin
  72. * fixed #303: tablesort.js not found in Diagnosis and Coverager
  73. * misc
  74. * fixed #297: segv on startup under sparc, ini setting overflow
  75. 3.0.1 2013-01-11
  76. ChangeLog
  77. ========
  78. * cacher:
  79. * fixed crash when cache is too small on start up
  80. * fixed #295: crash using traits with PHP 5.4.8+
  81. * fix random crash when cache is reinitialized yet failed (Thanks to Brad Baker for generating crash dump)
  82. * fix locking impl: improve stability on threaded env (Thanks to Mircea Nicolae for reproducing the bug)
  83. * optimizer:
  84. * (PHP_5_4) fix ZEND_JMP_SET_VAR
  85. * (PHP_5_4) fix for goto
  86. * diagnosis:
  87. * undefined variable when ini is not found
  88. * misc:
  89. * fixed #290: workaround phpize vs fbsd make bug again
  90. * improve compatibility with "the ionCube PHP Loader", Zend Optimizer
  91. 3.0.0 2012-10-29
  92. API Changes
  93. ========
  94. * chg: proto array xcache_clear_cache(int type, [ int id = -1 ]). -1 means all cache splits
  95. * new: proto array xcache_enable_cache(int type, [ int id = -1, [ bool enable = true ] ])
  96. * new: proto array xcache_admin_namespace()
  97. * new: proto array xcache_set_namespace(string namespace)
  98. Ini Settings Changes
  99. ========
  100. * new: xcache.disable_on_crash = Off
  101. * new: xcache.coverager_autostart = On
  102. * new: xcache.allocator = bestfit (no other option value yet)
  103. * new: xcache.var_allocator = bestfit (no other option value yet)
  104. * new: xcache.var_namespace_mode = 0
  105. * new: xcache.var_namespace = ""
  106. ChangeLog
  107. ========
  108. * cacher:
  109. * closed #2 (auto disable caching on crash)
  110. * closed #174 (updated api to support "clear all cache")
  111. * closed #198 (support for caching protocol url)
  112. * closed #287 (namespace support)
  113. * cache can be enabled/disabled manually
  114. * coverager:
  115. * fixed #39 (ini_set never work for xcache.coverager setting. use API instead)
  116. * code refactor
  117. * use extension= to load XCache. loading via zend_extension= is unsupported
  118. * split XCache features into multiple sub modules
  119. * admin:
  120. * updated XCache admin page
  121. * adds an diagnosis module to give professional advise, accessable via htdocs pages
  122. * misc:
  123. * (>=PHP_5_3) closed #73 (warn for improper PHP_FCGI_CHILDREN setting fcgi mode)
  124. 2.0.1 2012-07-14
  125. ChangeLog
  126. ========
  127. * fixed #279: segv when cache is full (since 2.0)
  128. * fixed #281: subsequenc request segv when timeout happens during compiling
  129. * admin/ config changed. please update accordingly
  130. * WIN32: kill invalidate CRT parameters on shutdown
  131. * fixed: <=PHP_5_2 duplicate error message failed to include file
  132. * fixed #283: XCache admin APIs (admin page) cause SEGV if XCache failed to initize
  133. * fixed possible re-include a file by mixing include/include_once
  134. * fixed #264, #284: __FILE__ __DIR__ handling for moved/hardlinked files (set "xcache.experimental = on" to eanble this fix)
  135. 2.0.0 2012-04-20
  136. Ini Settings Changes
  137. ========
  138. * new: xcache.experimental = Off
  139. ChangeLog
  140. ========
  141. * support for PHP_5_4
  142. * reduce memory usage by caching 1 for multiple same content files
  143. * correct __FILE__ __DIR__ supported for hardlinked files
  144. * fixed #275: one line struct definition was confusing struct parser
  145. * fixed #102: segv when var cacher is too small
  146. * fixed #55: segv php tokenizer on certain special situation
  147. * fixed #278: admin page: wrong layout in opera
  148. * compiler errors: all compiler warning (E_STRICT only currently) is now cached and is supported for user handler
  149. * tests/bug52160.phpt: report multiple error correctly
  150. 1.3.2 2011-06-04
  151. ========
  152. * avoid possible filename injection in admin page
  153. * adds 30 seconds timeout to "compiling" flag
  154. * decompiler: improved decompiling
  155. * disassembler: improper handling of null field
  156. * disassembler: DECLARE_INHERITED_CLASS/DELAYED class not found
  157. * disassembler: don't dump builtin functions
  158. * fix win32 build against win32 native gnu tools
  159. * compatibility fix: fix segv on shutdown when ionCube Loader is loaded
  160. * fixed undefined index for xcache.count=1 and xcache.var_size>1
  161. * fixed #258: builtin constant memory leak on compile
  162. 1.3.1 2010-11-27
  163. ========
  164. * 2G/4G limitation on 64bit arch
  165. * xcache_unset matching e.g. prefixed_ values
  166. 1.3.0 2009-08-04
  167. == ChangeLog ==
  168. * PHP 5.3 support
  169. * fixed #138: no segv if cache is not initialized correctly
  170. * default to 64M for xcache.size in xcache.ini
  171. * could not show module info in admin page when XCache is the last module
  172. * wrong http auth realm
  173. * coverager: font-size and newline fix for firefox
  174. * admin page is now magic quote gpc aware
  175. 1.2.2 2007-12-29
  176. == ChangeLog ==
  177. * added module dependency
  178. * live with wrong system time: allow caching files with mtime in further
  179. * bug fix for compatibility with Zend Optimizer and other non-cachable
  180. * #59: Maximum execution time of 60 seconds exceeded
  181. * #102: segv when var cacher is too small
  182. * #55: segv php tokenizer on certain special situation
  183. 1.2.1 2007-07-01
  184. == Ini Settings Changes ==
  185. * new: xcache.admin.enable_auth = On
  186. == ChangeLog ==
  187. * #86: remove/edit variable in admin page
  188. * fixed #109: fast inc/dec was trying to break ro protection
  189. * fixed #101, #105: Fixed compatibility issue for apache 1.x
  190. * fixed #94: Garbage collector disabled when xcache.cacher set to off
  191. * fixed #92: Zend Optimizer compatibility issue
  192. * fixed #77: hits/misses was not updated
  193. * fixed #59: pass by reference for internal function was broken
  194. * fixed #56: xcache_set segfaults when xcache.var_size=0
  195. ========
  196. 1.2.0 2006-12-10
  197. Ini Settings Changes
  198. ========
  199. * new: xcache.stat = On
  200. * new: xcache.coverager = Off
  201. * chg: xcache.coveragedump_directory default to ""
  202. * del: xcache.coveragedumper = Off
  203. New APIs
  204. ========
  205. * array xcache_coverager_decode(string data)
  206. * void xcache_coverager_start([bool clean = true])
  207. * void xcache_coverager_stop([bool clean = false])
  208. * array xcache_coverager_get([bool clean = false])
  209. ChangeLog
  210. ========
  211. * [290] [291] [292] build with the m4 on solaris
  212. * [283] removed zend_append_version_info. not needed after [282]
  213. * [282] fix possible alloca() scope problem in lock
  214. * [281] keep config.nice on make xcachesvnclean
  215. * [279] fixed #48, was leaking info when cacher is not enabled by size
  216. * [280] [278] trunk: fix coredump on shutdown when loaded as "extension" and after "suhosin" or "zend optimizer". thanks to Alex, Cristian and Esser
  217. * [271] fix auto detection of php-cli/php-cgi for test
  218. * [270] make [269] pass test cases
  219. * [269] do not destruct shallow copied tmp_auto_globals. also improve copying of other hash tables
  220. * [268] full compatible with auto_globals_jit, no need to disable it in ini from now on
  221. * [250] fixed css class on switcher
  222. * [231] fix zval reference handling
  223. * [230] update dprint support, added configure option: --enable-xcache-dprint
  224. * [228] more robust coverager
  225. * [227] cacher: remove redundant open_basedir check which broke php-src/ext/standard/tests/file/bug24313.phpt
  226. * [221] cacher: fix eleak in op_array non-shadow-copy (readonly_protection=on)
  227. * [220] fixed #36, Bug in inherited static class variables
  228. * [219] fix prototype for readonly_protection=off, fix testcase Zend/tests/bug37632.phpt
  229. * [217] kill leak warning on debug build
  230. * [216] avoid crash on php compiler error
  231. * [215] add `make xcachetest` to run xcache enabled test
  232. * [214] [212] fixed #41, early class binding
  233. * [272] [267] [263] [200] fixes for php6
  234. * [224] [193] kill 64bit warning when self test is enabled
  235. * [190] trick to load and work with zend optimizer
  236. * [189] call op_array_ctor handler on restore to be more compatible with other zend_extension
  237. * [257] [183] xcache module is not required by coverage viewer any more
  238. * [165] xcache.stat support to allow tuning off stat (new ini)
  239. * [164] better way to handle system level ini settings so it can be display in phpinfo standardly
  240. 1.1.0 2006-11-11
  241. * merged [254] fix xcache.var_ttl displaying in info, fix xcache_get for ttl-unlimited
  242. * merged [250] admin: fix switcher class on active
  243. * merged [249] return 0 s instead of empty for deltatime
  244. * merged [201] coverager: avoid crash when upstream failed to compile file
  245. * merged from trunk: 159,161-162,167-180,182,184,186-187,194
  246. * [194] PHP_5_2: new element in zend_brk_cont_element
  247. * [186] [187] fix build on some rare arch
  248. * [184] fix tplcov
  249. * [178] fix type processor_t conflict with Mac OS X
  250. * remove redundant open_basedir check, it's done before compiling
  251. * trick in_compilation state, don't trigger __autoload at compile time
  252. * FIX conflict between sandbox and user error handler
  253. * [154] fix segv on MSHUTDOWN
  254. * [153] win32/vc build fix
  255. * [150] avoid crash when OOM on mem_realloc
  256. * [148] reconstruct shm/allocator
  257. * [147] show module info in statistics page
  258. * [146] avoid reading of uninitialized data. thanks to valgrind
  259. * [144] compat size displaying in admin page func
  260. * [143] fixed string parameter parsing arg type for disassembler functions. thanks to check_paramaters.php
  261. * [141] fix cache clear corruption bug
  262. * [140] fix refcount on cache #1 #2 …
  263. * [133] admin-page: be more friendly if XCache isn't loaded
  264. * [132] fix zts on calling destroy_op_array
  265. * [131] move open_files out of sandbox, it's not needed
  266. * [130] improve locking for compile
  267. * [137] [138] changed the coding way of unlinking list. fixed ttl expires dead loop
  268. * [114] gc expired items, new ini: xcache.ttl xcache.gc_interval xcache.var_ttl …
  269. * [126] fix xcache_isset reported by http://forum.lighttpd.net/topic/1397
  270. * [119] fix leak in xcache.test=1; XCACHE_VERSION/XCACHE_MODULES length off-by-one
  271. * [118] show gc countdown in admin page
  272. * [113] zts build fix
  273. * [112] avoid crash when OOM on mem_(calloc|realloc|strndup)
  274. * [108] update percent bar to vertical/avail
  275. * [107] show XCache version in admin page
  276. * [105] trigger jit on $_SERVER when needed
  277. * [101] note: xcache.mmap_path is a file
  278. * [100] FIX: alloc'ed wrong size for string on restore
  279. * [99] sohosin compatible & TSRM fix.
  280. * [96] remove tailing \0 in filename of administration html output. reported by …
  281. * [94] PHP_5_2: __tostring cache was MFH by php
  282. * [93] try to show both count/size assert before abort
  283. * [92] PHP_5_2: auto module_global is maintained by php engine
  284. * [90] [91] kill compiler warnings
  285. * [87] XCACHE_INDENT fallback
  286. * [84] handle without inodes
  287. * [79] fix messy XCACHE_MAP_FAILED checking
  288. * [78] catch up with PHP_5_2, zend_property_info.ce
  289. * [77] leakcheck
  290. (not all changesets is list here)