]> granicus.if.org Git - php/log
php
9 years agoMerge branch 'PHP-5.6'
Xinchen Hui [Thu, 4 Jun 2015 13:09:06 +0000 (21:09 +0800)]
Merge branch 'PHP-5.6'

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Xinchen Hui [Thu, 4 Jun 2015 13:08:57 +0000 (21:08 +0800)]
Merge branch 'PHP-5.5' into PHP-5.6

9 years agoFixed invalid read druing apache reload
Xinchen Hui [Thu, 4 Jun 2015 13:08:36 +0000 (21:08 +0800)]
Fixed invalid read druing apache reload

9 years agoFixed bug #69755 (segfault in ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER)
Dmitry Stogov [Thu, 4 Jun 2015 06:38:22 +0000 (09:38 +0300)]
Fixed bug #69755 (segfault in ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER)

9 years agoFix Bug #69754 (Compile failure with ::class in array)
Bob Weinand [Wed, 3 Jun 2015 21:59:59 +0000 (23:59 +0200)]
Fix Bug #69754 (Compile failure with ::class in array)

9 years agoRemoved useless code (there is nothing to free for string offsets).
Dmitry Stogov [Wed, 3 Jun 2015 19:23:06 +0000 (22:23 +0300)]
Removed useless code (there is nothing to free for string offsets).

9 years agoRemoved dead code (IS_CONST operand can't be IS_OBJECT)
Dmitry Stogov [Wed, 3 Jun 2015 16:29:03 +0000 (19:29 +0300)]
Removed dead code (IS_CONST operand can't be IS_OBJECT)

9 years agoSeparate rare used increment/decrement/assign_op of overloaded properies into non...
Dmitry Stogov [Wed, 3 Jun 2015 15:44:25 +0000 (18:44 +0300)]
Separate rare used increment/decrement/assign_op of overloaded properies into non inlined functions.

9 years agoReorder conditions to check for fast paths first
Dmitry Stogov [Wed, 3 Jun 2015 14:20:47 +0000 (17:20 +0300)]
Reorder conditions to check for fast paths first

9 years agoisset() micro-optimisation
Dmitry Stogov [Wed, 3 Jun 2015 13:27:38 +0000 (16:27 +0300)]
isset() micro-optimisation

9 years agoRemoved commented code
Dmitry Stogov [Wed, 3 Jun 2015 11:49:29 +0000 (14:49 +0300)]
Removed commented code

9 years agomicro-optimization
Dmitry Stogov [Wed, 3 Jun 2015 10:43:05 +0000 (13:43 +0300)]
micro-optimization

9 years agoCONCAT optimization
Dmitry Stogov [Wed, 3 Jun 2015 08:15:28 +0000 (11:15 +0300)]
CONCAT optimization

9 years agoUse CG(one_char_string) if possible in bitwise string operations
Bob Weinand [Wed, 3 Jun 2015 00:57:16 +0000 (02:57 +0200)]
Use CG(one_char_string) if possible in bitwise string operations

emalloc() is not cheap... Also, a good part of bitwise string ops out there are on single bytes.

9 years agointroduced DllMain for the main php DLL
Anatol Belski [Mon, 1 Jun 2015 19:52:35 +0000 (21:52 +0200)]
introduced DllMain for the main php DLL

The particular need on this is because of the current situation
with determining the background functionality for the
gettimeofday. DllMain allows to initialize stuff before the DLL
can be actually used. Thus, we use different time API on win7
and win8 and later, so the function pointer needs to be
initialized before anything in the DLL could even demand it.

The change also opens the door for the further optimizations,
as now we're able to do the very basic initializations for the
whole DLL before it could ever start to live. Fe on this way the
TLS initialization could be done, when utilizing the
DLL_THREAD_ATTACH/DETACH case. Whether it's really usable in
portable way should be synced with other platforms.

Be aware that it's dangerous as it possibly causes dead locks.
So to use with care. One willing to add items to DllMain should
better read the documentation twice and even then try to defer
the necessary action.

9 years agoa bit more clearness fir --with-mp
Anatol Belski [Sun, 31 May 2015 21:50:29 +0000 (23:50 +0200)]
a bit more clearness fir --with-mp

9 years agoCall zend_array_dup() instead of zval_copy_ctor().
Dmitry Stogov [Tue, 2 Jun 2015 09:03:34 +0000 (12:03 +0300)]
Call zend_array_dup() instead of zval_copy_ctor().

9 years agoAvoid useless duplication. Constant values have to be duplicated only for internal...
Dmitry Stogov [Tue, 2 Jun 2015 09:01:34 +0000 (12:01 +0300)]
Avoid useless duplication. Constant values have to be duplicated only for internal constants in ZTS build, to prevent simultaneous modification of reference counters from different threads.

9 years agofix test
Stanislav Malyshev [Tue, 2 Jun 2015 06:58:19 +0000 (23:58 -0700)]
fix test

9 years agoMerge branch 'pull-request/1310'
Stanislav Malyshev [Tue, 2 Jun 2015 05:57:05 +0000 (22:57 -0700)]
Merge branch 'pull-request/1310'

* pull-request/1310:
  Fix GD tests #69698

9 years agoMerge branch 'PHP-5.6'
Stanislav Malyshev [Tue, 2 Jun 2015 05:55:16 +0000 (22:55 -0700)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  Fix bug #69737 - Segfault when SplMinHeap::compare produces fatal error

Conflicts:
ext/spl/spl_heap.c

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Stanislav Malyshev [Tue, 2 Jun 2015 05:53:08 +0000 (22:53 -0700)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Fix bug #69737 - Segfault when SplMinHeap::compare produces fatal error

9 years agoFix bug #69737 - Segfault when SplMinHeap::compare produces fatal error
Stanislav Malyshev [Tue, 2 Jun 2015 05:06:16 +0000 (22:06 -0700)]
Fix bug #69737 - Segfault when SplMinHeap::compare produces fatal error

9 years agoReorder conditions to check for fast paths first.
Dmitry Stogov [Mon, 1 Jun 2015 14:22:04 +0000 (17:22 +0300)]
Reorder conditions to check for fast paths first.

9 years agoMerge branch 'PHP-5.6'
Dmitry Stogov [Mon, 1 Jun 2015 09:21:48 +0000 (12:21 +0300)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  Fixed bug #69732 (can induce segmentation fault with basic php code).

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Dmitry Stogov [Mon, 1 Jun 2015 09:17:32 +0000 (12:17 +0300)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Fixed bug #69732 (can induce segmentation fault with basic php code).

Conflicts:
Zend/zend_vm_execute.h

9 years agoFixed bug #69732 (can induce segmentation fault with basic php code).
Dmitry Stogov [Mon, 1 Jun 2015 08:40:14 +0000 (11:40 +0300)]
Fixed bug #69732 (can induce segmentation fault with basic php code).

9 years agoFixed integer overflow during HashTable size calculation
Dmitry Stogov [Mon, 1 Jun 2015 07:51:06 +0000 (10:51 +0300)]
Fixed integer overflow during HashTable size calculation

9 years agoMerge branch 'pull-request/1314'
Stanislav Malyshev [Mon, 1 Jun 2015 02:40:31 +0000 (19:40 -0700)]
Merge branch 'pull-request/1314'

* pull-request/1314:
  Fixed typos in UPGRADING.INTERNALS

9 years agoset initialized flag after actual initialization happened
Stanislav Malyshev [Mon, 1 Jun 2015 02:37:56 +0000 (19:37 -0700)]
set initialized flag after actual initialization happened

9 years agoFixed typos in UPGRADING.INTERNALS
Andrew Murray [Mon, 1 Jun 2015 01:13:09 +0000 (11:13 +1000)]
Fixed typos in UPGRADING.INTERNALS

9 years agoMerge branch 'PHP-5.6'
Stanislav Malyshev [Mon, 1 Jun 2015 00:30:41 +0000 (17:30 -0700)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  improve fix for Bug #69545

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Stanislav Malyshev [Mon, 1 Jun 2015 00:30:29 +0000 (17:30 -0700)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  improve fix for Bug #69545

9 years agoMerge branch 'PHP-5.4' into PHP-5.5
Stanislav Malyshev [Mon, 1 Jun 2015 00:29:53 +0000 (17:29 -0700)]
Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  improve fix for Bug #69545

9 years agoimprove fix for Bug #69545
Stanislav Malyshev [Mon, 1 Jun 2015 00:23:06 +0000 (17:23 -0700)]
improve fix for Bug #69545

9 years agoFIx darwin build
Stanislav Malyshev [Sun, 31 May 2015 21:52:08 +0000 (14:52 -0700)]
FIx darwin build

9 years agoMerge branch 'PHP-5.6'
Anatol Belski [Sun, 31 May 2015 21:04:11 +0000 (23:04 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  fix phpize mode for manifest embedding

9 years agofix phpize mode for manifest embedding
Anatol Belski [Sun, 31 May 2015 21:03:47 +0000 (23:03 +0200)]
fix phpize mode for manifest embedding

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Anatol Belski [Sun, 31 May 2015 21:02:01 +0000 (23:02 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  fix phpize mode for manifest embedding

9 years agofix phpize mode for manifest embedding
Anatol Belski [Sun, 31 May 2015 21:01:21 +0000 (23:01 +0200)]
fix phpize mode for manifest embedding

9 years agosplit simplexml tests for 7
Christoph M. Becker [Sun, 31 May 2015 19:35:21 +0000 (21:35 +0200)]
split simplexml tests for 7

9 years agoMerge branch 'PHP-5.6'
Anatol Belski [Sun, 31 May 2015 19:32:04 +0000 (21:32 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  split the original test to check behaviour diff on 32- and 64-bit
  recovered original meaning of SXE xpath test

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Anatol Belski [Sun, 31 May 2015 19:30:46 +0000 (21:30 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  split the original test to check behaviour diff on 32- and 64-bit
  recovered original meaning of SXE xpath test

9 years agosplit the original test to check behaviour diff on 32- and 64-bit
Christoph M. Becker [Sun, 31 May 2015 19:28:44 +0000 (21:28 +0200)]
split the original test to check behaviour diff on 32- and 64-bit

9 years agorecovered original meaning of SXE xpath test
Christoph M. Becker [Sat, 30 May 2015 16:09:51 +0000 (18:09 +0200)]
recovered original meaning of SXE xpath test

9 years agoMerge branch 'PHP-5.6'
Anatol Belski [Sun, 31 May 2015 17:33:34 +0000 (19:33 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  backport the basic code to properly recognize win 8.1 and 10
  backport the manifest changes for makefile
  backport the manifest changes in js
  add default manifest
  add test

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Anatol Belski [Sun, 31 May 2015 17:32:21 +0000 (19:32 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  backport the basic code to properly recognize win 8.1 and 10
  backport the manifest changes for makefile
  backport the manifest changes in js
  add default manifest
  add test

9 years agobackport the basic code to properly recognize win 8.1 and 10
Anatol Belski [Sun, 31 May 2015 17:01:58 +0000 (19:01 +0200)]
backport the basic code to properly recognize win 8.1 and 10

9 years agobackport the manifest changes for makefile
Anatol Belski [Sun, 31 May 2015 16:59:00 +0000 (18:59 +0200)]
backport the manifest changes for makefile

9 years agobackport the manifest changes in js
Anatol Belski [Sun, 31 May 2015 16:53:51 +0000 (18:53 +0200)]
backport the manifest changes in js

9 years agoadd default manifest
Anatol Belski [Sun, 31 May 2015 16:17:58 +0000 (18:17 +0200)]
add default manifest

9 years agoadd test
Anatol Belski [Sun, 31 May 2015 16:13:33 +0000 (18:13 +0200)]
add test

9 years agoFixed Bug #69733 (PHP fails to build with --enable-phpdbg-debug)
Xinchen Hui [Sun, 31 May 2015 05:35:01 +0000 (13:35 +0800)]
Fixed Bug #69733 (PHP fails to build with --enable-phpdbg-debug)

9 years agoMerge branch 'PHP-5.6'
Stanislav Malyshev [Sun, 31 May 2015 04:19:05 +0000 (21:19 -0700)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  Update PCRE version (bug #69689)
  move test
  NEWS 5.4
  fix new test
  Fixed Bug #69667 segfault in php_pgsql_meta_data
  5.4.42 next

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Stanislav Malyshev [Sun, 31 May 2015 04:18:50 +0000 (21:18 -0700)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Update PCRE version (bug #69689)
  move test
  NEWS 5.4
  fix new test
  Fixed Bug #69667 segfault in php_pgsql_meta_data
  5.4.42 next

9 years agoMerge branch 'PHP-5.4' into PHP-5.5
Stanislav Malyshev [Sun, 31 May 2015 04:18:28 +0000 (21:18 -0700)]
Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  Update PCRE version (bug #69689)
  move test
  NEWS 5.4
  fix new test
  Fixed Bug #69667 segfault in php_pgsql_meta_data
  5.4.42 next

Conflicts:
configure.in
main/php_version.h

9 years agoUpdate PCRE version (bug #69689)
Stanislav Malyshev [Sun, 31 May 2015 04:17:16 +0000 (21:17 -0700)]
Update PCRE version (bug #69689)

9 years agorun credits script
Anatol Belski [Sat, 30 May 2015 07:43:10 +0000 (09:43 +0200)]
run credits script

9 years agoupdated UPGRADING
Anatol Belski [Sat, 30 May 2015 07:37:08 +0000 (09:37 +0200)]
updated UPGRADING

9 years agoremoved sapi/nsapi POST_PHP7_NSAPI_REMOVAL
Anatol Belski [Sat, 30 May 2015 07:26:40 +0000 (09:26 +0200)]
removed sapi/nsapi

9 years agoMerge branch 'PHP-5.6' PRE_PHP7_NSAPI_REMOVAL
Anatol Belski [Fri, 29 May 2015 19:19:31 +0000 (21:19 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  updated NEWS
  Refactored the fix for bug #66084, by cmb@php.net
  Merge the fix for #69703 to 5.5 per request from Julien

9 years agoupdated NEWS
Anatol Belski [Fri, 29 May 2015 19:18:37 +0000 (21:18 +0200)]
updated NEWS

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Anatol Belski [Fri, 29 May 2015 19:18:04 +0000 (21:18 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Refactored the fix for bug #66084, by cmb@php.net
  Merge the fix for #69703 to 5.5 per request from Julien

9 years agoRefactored the fix for bug #66084, by cmb@php.net
Anatol Belski [Fri, 29 May 2015 19:16:56 +0000 (21:16 +0200)]
Refactored the fix for bug #66084, by cmb@php.net

9 years agoFix typos and add link to the phpng upgrading wiki page
Hannes Magnusson [Fri, 29 May 2015 19:04:53 +0000 (19:04 +0000)]
Fix typos and add link to the phpng upgrading wiki page

9 years agoremoved test for unrelated bug #68946
Christoph M. Becker [Wed, 27 May 2015 00:34:44 +0000 (02:34 +0200)]
removed test for unrelated bug #68946

9 years agofixed whitespace dependend behavior of casting SimpleXMLElements to boolean
Christoph M. Becker [Tue, 26 May 2015 20:46:23 +0000 (22:46 +0200)]
fixed whitespace dependend behavior of casting SimpleXMLElements to boolean

9 years agoadded tests for bug #61335, bug #67572 and bug #68946 (the latter already passing...
Christoph M. Becker [Tue, 26 May 2015 20:34:46 +0000 (22:34 +0200)]
added tests for bug #61335, bug #67572 and bug #68946 (the latter already passing, but better safe than sorry)

9 years agofixed whitespace depending (mis)behavior of var_dump'ing and print_r'ing SimpleXMLEle...
Christoph M. Becker [Tue, 26 May 2015 16:35:09 +0000 (18:35 +0200)]
fixed whitespace depending (mis)behavior of var_dump'ing and print_r'ing SimpleXMLElements

9 years agoadded failing tests for bug #62639, bug #67116, bug #69169 and bug #69491
Christoph M. Becker [Tue, 26 May 2015 16:32:08 +0000 (18:32 +0200)]
added failing tests for bug #62639, bug #67116, bug #69169 and bug #69491

9 years agoFix GD tests #69698
Metalaka [Fri, 29 May 2015 17:18:53 +0000 (19:18 +0200)]
Fix GD tests #69698

May be take a look to [travis/compile.sh](https://github.com/php/php-src/blob/4b9299d155316e4e49d87d3941eab1ca95b2462a/travis/compile.sh#L60)

9 years agoNEWS and UPGRADING entries for PR #1309
Antony Dovgal [Fri, 29 May 2015 15:16:07 +0000 (18:16 +0300)]
NEWS and UPGRADING entries for PR #1309

9 years agoadd tests for proc_open() and pipes
Antony Dovgal [Thu, 18 Dec 2014 13:02:49 +0000 (16:02 +0300)]
add tests for proc_open() and pipes

9 years agoremove hardcoded limit on number of pipes in proc_open()
Antony Dovgal [Thu, 18 Dec 2014 12:28:01 +0000 (15:28 +0300)]
remove hardcoded limit on number of pipes in proc_open()

9 years agoadd test
Anatol Belski [Fri, 29 May 2015 09:45:20 +0000 (11:45 +0200)]
add test

9 years agofix windows version constants initialization with nts
Anatol Belski [Fri, 29 May 2015 09:44:46 +0000 (11:44 +0200)]
fix windows version constants initialization with nts

9 years agoMerge branch 'PHP-5.6'
Nikita Popov [Fri, 29 May 2015 09:11:02 +0000 (11:11 +0200)]
Merge branch 'PHP-5.6'

Preserving HAS_RETURN_TYPE for __invoke() here as well.

Conflicts:
Zend/zend_alloc.c

9 years agoRemove zend_init_list
Nikita Popov [Sun, 24 May 2015 19:56:49 +0000 (21:56 +0200)]
Remove zend_init_list

No longer used - zend_add_to_list already covers this.

Also marked zend_add_to_list as static and dropped it from the header.

9 years agoDrop unnecessary checks for op_array->filename
Nikita Popov [Sun, 24 May 2015 19:50:46 +0000 (21:50 +0200)]
Drop unnecessary checks for op_array->filename

We always require a filename.

9 years agoPreserve VARIADIC flag for Closure::__invoke()
Nikita Popov [Fri, 29 May 2015 09:06:28 +0000 (11:06 +0200)]
Preserve VARIADIC flag for Closure::__invoke()

The 13 arguments are for the benefit of PHP 7, where the first
twelve use the bitmask.

9 years agoRemove T1Lib support (see #69698)
Kalle Sommer Nielsen [Fri, 29 May 2015 07:18:36 +0000 (09:18 +0200)]
Remove T1Lib support (see #69698)

# Also removes imagepscopyfont() which was never available (commented out)

9 years agoNote getrusage() for Windows in UPGRADING
Kalle Sommer Nielsen [Fri, 29 May 2015 07:12:25 +0000 (09:12 +0200)]
Note getrusage() for Windows in UPGRADING

9 years agoMerge branch 'master' of git.php.net:php-src
Xinchen Hui [Fri, 29 May 2015 05:51:02 +0000 (13:51 +0800)]
Merge branch 'master' of git.php.net:php-src

9 years agoFixed bug #69723 (Passing parameters by reference and array_column)
Xinchen Hui [Fri, 29 May 2015 05:50:44 +0000 (13:50 +0800)]
Fixed bug #69723 (Passing parameters by reference and array_column)

9 years agomanifest for the main php dll needs to be copied manually
Anatol Belski [Thu, 28 May 2015 22:29:25 +0000 (00:29 +0200)]
manifest for the main php dll needs to be copied manually

9 years agopack the default manifest for devel
Anatol Belski [Thu, 28 May 2015 20:21:54 +0000 (22:21 +0200)]
pack the default manifest for devel

9 years agoadd *.manifest to cleanup
Anatol Belski [Thu, 28 May 2015 20:17:21 +0000 (22:17 +0200)]
add *.manifest to cleanup

9 years agocorrect manifest
Anatol Belski [Thu, 28 May 2015 17:58:39 +0000 (19:58 +0200)]
correct manifest

9 years agousing correct manifest, GetVersionEx can recognise versions
Anatol Belski [Thu, 28 May 2015 01:11:51 +0000 (03:11 +0200)]
using correct manifest, GetVersionEx can recognise versions

9 years agotake the default manifest
Anatol Belski [Thu, 28 May 2015 00:41:10 +0000 (02:41 +0200)]
take the default manifest

yet to be reworked for the case some custom manifest were supplied

9 years agoadd default manifest
Anatol Belski [Thu, 28 May 2015 00:05:14 +0000 (02:05 +0200)]
add default manifest

9 years agofixup default versions, just for the case
Anatol Belski [Wed, 27 May 2015 23:44:02 +0000 (01:44 +0200)]
fixup default versions, just for the case

9 years agoFix deplister with VC14, noticed by Jan Ehrhardt
Kalle Sommer Nielsen [Thu, 28 May 2015 21:06:49 +0000 (23:06 +0200)]
Fix deplister with VC14, noticed by Jan Ehrhardt

9 years agoAttempt to fix #69643
Xinchen Hui [Thu, 28 May 2015 16:03:19 +0000 (00:03 +0800)]
Attempt to fix #69643

9 years agoMerge the fix for #69703 to 5.5 per request from Julien
Kalle Sommer Nielsen [Thu, 28 May 2015 14:54:02 +0000 (16:54 +0200)]
Merge the fix for #69703 to 5.5 per request from Julien

9 years agoShouldn't have been committed, so revert
Kalle Sommer Nielsen [Thu, 28 May 2015 12:37:52 +0000 (14:37 +0200)]
Shouldn't have been committed, so revert

9 years agoFixed bug #69703 (Use __builtin_clzl on PowerPC) -- Patch by dja at axtens dot net
Kalle Sommer Nielsen [Thu, 28 May 2015 12:30:18 +0000 (14:30 +0200)]
Fixed bug #69703 (Use __builtin_clzl on PowerPC) -- Patch by dja at axtens dot net

# Julien, even though 5.5 is still non security mode I don't think we should merge this patch but I leave the choice with you

9 years agoMerge branch 'PHP-5.6'
Remi Collet [Thu, 28 May 2015 08:37:52 +0000 (10:37 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  Relax a little this test, because random is not reliable

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Remi Collet [Thu, 28 May 2015 08:37:39 +0000 (10:37 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Relax a little this test, because random is not reliable

9 years agoRelax a little this test, because random is not reliable
Remi Collet [Thu, 28 May 2015 08:35:19 +0000 (10:35 +0200)]
Relax a little this test, because random is not reliable

Usual values are 3500-3950, but >4000 can happen.