From: James Gingerich Date: Tue, 20 Jul 1999 01:15:34 +0000 (+0000) Subject: Remove a bunch of old junk. X-Git-Tag: php-4.0b1~48 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e0e331967f59439f4a04aa279aaf0e27c16a3e13;p=php Remove a bunch of old junk. --- diff --git a/BUGS b/BUGS deleted file mode 100644 index 8966692d58..0000000000 --- a/BUGS +++ /dev/null @@ -1,11 +0,0 @@ -If you think you've found a bug in PHP3, you can report it on the bug -reporting page at: - http://www.php.net/ - -Current Known Bugs: - -* split() function doesn't return regex errors nicely -* Preprocessed scripts don't work with require() and define() -* unset() doesn't actually erase the variables it just marks them as uninitialized -* Some parts in the language core prevent more than 256 arguments in function - calls from being possible \ No newline at end of file diff --git a/CHANGES-3.0 b/CHANGES-3.0 deleted file mode 100644 index b3b9d8bea5..0000000000 --- a/CHANGES-3.0 +++ /dev/null @@ -1,624 +0,0 @@ -Noticeable Changes between PHP/FI 2.0 and PHP 3.0 -================================================= - -This file was designed to be viewed with a tab size of 4 characters. - -This file is divided into 4 sections: -1. Downwards incompatible language changes. This section includes all of - the changes in the core language which may require people to modify - their scripts before using them with PHP 3.0. It does NOT list - changes made in the behavior of specific functions. -2. New language features. This section includes all of the new additions - to the core language, that may be used to enhance scripts designed for - PHP 3.0. Likewise, it does not include a listing of new functions. -3. Structural changes not directly effecting the end user. The core - of PHP 3.0 is a complete rewrite. As such, many issues effecting - PHP/FI 2.0 were addressed and vastly improved in this version, - resulting in a much more stable and efficient implementation. This - section lists these changes in design. -4. Other changes that don't fit in any of the above categories. - -Please remember that PHP 3.0's core is a complete rewrite, and thus, -there may be other undocumented incompatibilities we haven't thought -of ourselves. If you think you've found a incompatibility (or a new -feature) which is not listed here, please mail us at -php-dev@php.iquest.net. - - - - - Zeev - ------------------------------------------------------------------------------- - -Downwards incompatible language changes -======================================= - -[1] The close-PHP tag has changed from > to ?> - - This means that instead of writing: - - - - You should write: - - - - PHP3 also includes support for a longer-form start tag that is - XML-compliant: - - - - The ability to use the short start tag ('5) - break; - if ($i>5) - break 2; - } - } - - The first break statement would end the inner loop every time $j is - greater than 5. The second break statement would end both the inner - and outer loop when $i is greater than 5. - - Note: For this matter, switch statements are considered as loops. So - if you write "break 2;" inside a switch statement, you would be asking - to break out of the switch, and the innermost loop in which is nested. - - -[5] Switched to C-style declaration of functions. - - Here's a pretty useless function which makes a good example: - - function concat($str1,$str2) - { - return $str1.$str2; - } - - NOTE: The old style function definition is still supported, to - allow easier upgrading from PHP/FI 2.0 scripts. Simply - change 'function' to 'old_function' for these functions. - - -[6] OOP support - - Classes and inheritance are supported to a limited extent in PHP 3.0. - Here's how to declare a simple class: - - class simple_class { - var $property1,$property2; - var $property3=5; - - function display() { - printf("p1=%d, p2=%d, p3=%d\n", - $this->property1, - $this->property2, - $this->property3); - } - function init($p1,$p2) { - $this->property1 = $p1; - $this->property2 = $p2; - } - }; - - Here's how to create an object of that class: - - $obj = new simple_class; - - At this point, $obj is an object with 2 uninitialized variables, 1 - initialized variable, and 2 member functions. No protection is made on - the internals of the object, and using its properties is simple: - - $obj->property1 = 7; - - would assign 7 to $property1 inside $obj. Calling member functions is - also simple: - - $obj->display() - - would run the display() member function of $obj. Note that the - implementation of display() uses the special variable $this, which is - replaced with the object the function is called on. - - Inheritance is pretty simple too: - - class complex_class extends simple_class { - var $property4="test"; - - function display() { - printf("p1=%d, p2=%d, p3=%d, p4=%d\n", - $this->property1, - $this->property2, - $this->property3, - $this->property4); - } - } - - Basically, the class complex_class inherits everything from its parent, - simple_class, except properties or member functions which override the - ones in the parent. In this example, since we supply an alternative - display() function, it would be used with complex_class objects instead - of the display() function that was declared in simple_class. On the other - hand, since we don't supply an alternative init() function, complex_class - objects would have the same init() function as simple_class objects do. - - As with expressions, it's impossible to teach OOP in a few lines, and - personally I'm unclear as to how useful this would be in day to day - scripting. If you like this, play with this until you figure it out :) - - Objects can reside in arrays, and can contain arrays. However, - a limitation of the current implementation doesn't allow an object - to contain an array of objects (actually, this is allowed, but - there's no way to address the properties of such an object directly, - but only indirectly). For example, assuming $a[3] is an object, - $a[3]->b[2] is an object as well, you can't address the properties - of $a[3]->b[2] (i.e. you can't write $a[3]->b[2]->foo = "bar", for - instance). - - -[7] Function pointers are now supported. - - A simple illustrative example: - - $func_ptr = "time"; - $current_time = $func_ptr(); - - is identical to - - $current_time = time(); - - -[8] Indirect references are much more powerful. - - For example, one can use the dollar operator an infinite amount of times: - - $a = "b"; - $b = "c"; - $c = "d"; - $d = "e"; - $e = "Testing\n"; - - echo $$$$$a; - - Would display $e's content, which is "Testing\n". - - In addition, one can use complex expressions to generate variable names - using a perl-like notation: - - $i="123"; - ${"test".$i} = 5; - - would assign 5 to $test123. - -[9] A string concatenation operator was added, '+' no longer concatenates strings. - - A perl-like string concatenation operator was added, the '.' operator. - It converts both of its arguments to strings, and concatenates them. - For example: - - $result = "abcd".5; - - assigns "abcd5" to result. Note that under PHP 3.0, the '+' operator - no longer performs concatenation if its arguments are strings. Use - the '.' operator instead. - -[10] Supports passing function arguments by references instead of by value. - - Support for passing function arguments by reference instead of by value - has been added. This doesn't result in having to change the function - implementations in any way, but, when calling the function, you can - decide on whether the variable you supply would actually be changed by - the function, or a copy of it. - - Example: - - function inc($arg) - { - $arg++; - } - - $i=0; - inc($i); # here $i in the outer scope wouldn't change, and remain 0 - inc(&$i); # here $i is passed by reference, and would change to 1 - - -[11] Support for multidimensional arrays. - - (Or as Andi calls them, 'hyperdimensional variables'.) - - The easiest way to define this support of PHP 3.0 is inductive - - arrays can contain any type of variables, including other arrays. - A simple example: - - $a[0]=5; - $a[1]["testing"]=17; - $b["foo"]=$a; - - Ok, so it may be not so simple. Play with it, it's pretty powerful. - - -[12] Array initialization is now supported. - - For example, let's say you want to initialize a lookup table to convert - number to month names: - - $months = array("January", "February", "March", - "April", "May", "June", "July", "August", - "September", "October", "November", "December"); - - would assign $months[0] to be January, $months[1] to be February, etc. - Alternately, you may want the count to start at '1' instead of 0. - You can do so easily: - - $months = array(1=>"January", "February", "March", - "April", "May", "June", "July", "August", - "September", "October", "November", "December"); - - Also, you can specify an index for every entry, not just the first one: - - $first_names = array("Doe"=>"John", "Gates"=>"William", - "Clinton"=>"Bill" }); - - would assign $first_names["Doe"]="John", etc. - - -[13] Perl style lists now supported. - - Multiple values from arrays may now be assigned into several - variables using one assignment. For example: - - $str = "johndoe:x:555:555:Doe, John:/home/johndoe:/bin/tcsh"; - - list($username,$passwd,$uid,$gid,$realname,$homedir,$shell) = - explode(":",$str); - - Would assign 'johndoe' into $username, 'x' into $passwd, etc. - - -[14] Colons are supported in 'case' and 'default' statements. - - For example: - - switch($value) { - case 'A': - statement; - break; - case 'B': - statement; - break; - case 'C': - statement; - /* fall-through */ - default: - statement; - } - - Semicolons are still supported, but when writing new scripts, they - should be phased out in favour of colons. - - ------------------------------------------------------------------------------- - - -Non Language Related New Features -================================= - -[1] Persistent resource lists. - - In plain english this means that there's now an easy way of writing the - SQL drivers so that they don't open and close the SQL link every time, - but instead open it the first time it's required, and then use it on - every later hit. As of PHP 3.0a1, only the MySQL, mSQL and PostgresSQL - drivers have been changed (rewritten) to take advantage of this option. - To use it, use mysql_pconnect() instead of mysql_connect() (or the - equivalents for the two other databases). - - -[2] Configuration file. - - PHP now has its own configuration file, and many compile-time options - of PHP2 are now configurable at runtime. - - -[3] Syntax Highlighting. - - A syntax highlighter has been built into PHP 3.0, which means PHP 3.0 can - display your code, syntax highlighted, instead of executing it. - There are currently two ways to use the syntax highlighter. One is to - use the show_source() statement. This statement is identical to the - include() statement, except instead of executing the file, it displays - its source syntax highlighted. - The second way is possible only when running as an apache module, and is - to define a special extension for PHP 3.0 source files (e.g. .php3s) - and instruct apache to automatically syntax highlight them. - - -[4] Loadable modules. - - This would have a huge impact on the Windows version, and would probably - be used in the UNIX environment as well. One can now add PHP internal - functions in runtime by loading a dynamic module. This is known to work - under Solaris, Linux and Win32 at this time, but would be ported to any - other capable platform if an incompatability is found. - - ------------------------------------------------------------------------------- - - -Other Interesting Issues -======================== - - -[1] Improved performance. - - The performance of PHP 3.0 is much better than the one of PHP/FI 2.0. - Memory consumption has been dramatically reduced in many cases, due - to the use of an internal memory manager, instead of apache's pools. - Speedwise, PHP 3.0 is somewhere between 2 and 3 times faster than - PHP/FI 2.0. - - -[2] More reliable parser. - - After PHP 3.0 is well tested, it'll be pretty safe to say that it's - more reliable than PHP/FI 2.0 is. While PHP/FI 2.0 performed well on - simple, and fairly complex scripts, a fundamental design difference - from PHP 3.0 makes it more prone to errors. In PHP 3.0, obscure parser - problems are much less likely. - - -[3] Improved C API. - - If you're a C coder, adding functionality to PHP was never easier. - A pretty well documented API is available (apidoc.txt), and you no longer - have to touch the parser or scanner code when adding your function. - Also, it's more complicated to 'go wrong' when implementing a PHP3 - function than it was in PHP2 (no stack to maintain) - but of course, - you can mess up here too :) - - -[4] Name change. - - PHP/FI 2.0 was renamed to PHP 3.0, and the meaning has changed from - 'Personal Home Pages / Forms Interpreter' to 'PHP: Hypertext Preprocessor'. - 'Personal' home pages was an understatement for PHP/FI 2.0, and is - definitely an understatement for PHP 3.0. diff --git a/COPYING b/COPYING deleted file mode 100644 index a43ea2126f..0000000000 --- a/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/EXTENSION_STATUS b/EXTENSION_STATUS deleted file mode 100644 index 48be544e2d..0000000000 --- a/EXTENSION_STATUS +++ /dev/null @@ -1,54 +0,0 @@ -The core of PHP 3.0 is considered to be stable at this time. However, some of -the modules that are bundled with it are still undergoing development, or -contain known bugs. The purpose of this file is to document the status of -each module (extension). Patches to unstable modules will be available through -the CVS, and through periodic maintenance releases. - -Stability scale: -Rock solid - We believe it's safe to base a production site on it. -Stable - It should be safe to base a production site on it. - Isn't rated as rock-solid because it contained problems - in the not-so-far past, or doesn't have enough users - to test it to know it's rock solid. -Beta - This module probably contains bugs, sometimes even known - bugs. You can give it a try and there's a good chance - it'll work fine, but it might not be a good idea to base - a production site on it. -Alpha - This module is in initial development steps. Don't trust - it, play with it at your own risk. -Deprecated - This module is only available for downwards compatability, - and will not be supported in any way. The code quality - is usually around the Beta status. - -The standard disclaimers apply, that is, if a rock-solid module blows up on -you and ruins your site, nobody in the PHP development team is responsible. -We'll probably try to help, though. - - -Extension Name Status Comments ------------------------------------------------------------------------------ -DBM Rock Solid That relies on a working DBM library. - The flatfile support is probably not - as stable. -MySQL Rock Solid -mSQL Rock Solid -Sybase DB Stable -Sybase CT Stable -BC Math Rock Solid Arbitary precision math library -Postgres SQL Stable Postgres 6.2 and earlier is stable, - but problems were reported with 6.3 -Debugger Beta -Unified ODBC Beta -Solid Deprecated Replaced by Unified ODBC -iODBC Deprecated Replaced by Unified ODBC -Adabas Deprecated Replaced by Unified ODBC -LDAP Stable Lightweight Directory Access Protocol. -dBase -FilePro -Oracle Beta Not tested thoroughly enough. -IMAP Beta Bundled in the dl/ directory -SNMP Stable Very solid, but also very limited. - Only supports GET and WALK requests. -Raima Velocis Beta If use with Unified ODBC, replaced - by Unified ODBC -Raima Velocis Alpha If use without Unified ODBC diff --git a/TODO b/TODO deleted file mode 100644 index 5a35e411df..0000000000 --- a/TODO +++ /dev/null @@ -1,100 +0,0 @@ -$Id$ - -+---- -| * -- to be done -| ? -- to be done sometime if possible -| P -- in progress (name should appear in parentheses after task) -| D -- delayed until later date (specify in parentheses after task) -| U -- done, untested -| V -- done -+---- - -Configuration Issues --------------------- -* properly detect dbm routines when they're in libc -* add the appropriate #define magic for memmove and friends (see - GNU autoconf info pages for details) -* make it possible to disable support for some extensions (gd, dbm) -* make it possible to build selected extensions so they are - dynamically-loadable - -Core Language Issues --------------------- -* go through PHP2's php.h and see how each special #define might be - applied/supported in PHP3 -* move Treatdata() to language-scanner.lex where hash_environment() - is called including a decision about priority of variables and moving - Treatdata() to use hash_add() instead of hash_update() for insertions - to the symbol table. -* go through FIXME and XXX lines (egrep 'FIXME|XXX' *.[ch]) -* make lexer and parser thread-safe -* verify that binary strings are handled correctly -V don't evaluate truth expressions more than once -V make unset() work on arrays (tricky) - -Core Functions --------------- -* go through all file functions and make sure they are opened in binary - mode in win32 if needed (ie copy) -* go through all functions and look at PHP_SAFE_MODE issues -* have a look at return codes of fsockopen() function - we should - probably RETURN_FALSE and then set an error code somewhere (Rasmus) -* go through FIXME and XXX lines (egrep 'FIXME|XXX' functions/*.[ch]) -* add user-level flock() implementation to let people lock and unlock files -* add "'" modifier to sprintf to group thousands by comma -* Add an improved eval() that doesn't "leak" -? sorting of objects with a user-defined comparison function (like Perl) - (this shouldn't be expected before 3.1, if at all). - - -Extensions ----------- -* add version strings for all extensions -* Oracle persistent connections -U gd support for windows -* Illustra support (APIS) -? CQL++ support (http://www.cql.com/) -? GNU SQL support (does anybody actually use this?) -? DB2 support (http://www.sleepycat.com/) -? Shore support (http://www.cs.wisc.edu/shore/) -? PGP Interface (use PGPlib?) -? more Perl-like regex handling? - -Server Support --------------- -P ISAPI (Shane) - * process cookies - * blocking functions - * make sure it's Microsoft-clean so it can be used with other ISAPI - implementations -* WSAPI -* NSAPI - * process cookies - * check POST method handling code - * use Netscape memory allocation inside emalloc() and company -* FastCGI support - see http://fastcgi.idle.com/ - -Win32 Specific --------------- -* implement some kind of syslog->file log support for win95. -* change all file open/read/write functions from c library to win32 - api file functions. The win32 api functions handle both disk files - and network files. This will allow include and require to use http - or ftp files as the unix version does, and do away with my - workaround to support this. (3.1?) -* implement symlinks via windows shell links (shortcuts). This will - work only at the script level and is not a c language level port. - -Testing -------- -* truss/strace a typical PHP request and see if there are some system - calls that could be optimized out -* verify that regression tests exist for all core functions - -Miscellaneous -------------- -* remove hard-coded compilation options -? locale issues - funny things happen in PHP2 when the locale is set to - use , instead of . as the decimal seperator. ie. 1.5+1.5 = 1 -? SSI->PHP3 conversion script -? SQL-based access logging (start with examples/log-*.php3) diff --git a/WISHLIST b/WISHLIST deleted file mode 100644 index 99d3876a00..0000000000 --- a/WISHLIST +++ /dev/null @@ -1,17 +0,0 @@ -- Persistant per-process scripting - - Apache 1.3 has added things that makes this much easier than before. - The module structure now contains a child_init hook and a child_exit - hook where you can register functions to be called when an httpd - process starts up and when one shuts down (due to MaxRequestsPerChild - or a Kill). The only real trick now is to come up with some sort of - syntax for specifying what to do from the child_init call and the - child_exit call. - - One idea is to be able to add a ... block to the Apache - httpd.conf file which would somehow define a series of PHP statements - to be executed from the child_* calls. One for startup and another - block for shutdown. These blocks would work with the per-process - memory pool, so any variables initialized here would have a lifespan - equal to that of the httpd process. Basically request-spanning - global variables. diff --git a/WISHLIST-3.1 b/WISHLIST-3.1 deleted file mode 100644 index 1320f71907..0000000000 --- a/WISHLIST-3.1 +++ /dev/null @@ -1,55 +0,0 @@ -V Do yystype_ptr and hash pointers the right way - use the hash - pointer and the bucket pointer, instead of a pointer to the data. - Allows for a real unset() among other things. -V Improve performance of simple variable lookups -* Improve string performance by using smarter memory allocation methods -- Improve preprocessor (handle require() efficiently), possibly handle - automatic preprocessing for sites based on timestamp -V Use a reference count mechanism to prevent unnecessary duplication of data. -* Write and stabilize a complete persistent data API. Feature wishlist: - - memory manager using shared memory - - process-global symbol table - - make api inter-thread capable for win32 and some far off future where unix - version will be multithreaded -V Handle out of memory (inside emalloc()?) -* Try to figure out a way to declare *real* global variables -* Improve the reading of configuration variables into php3_ini (generalize) - Make it possible to implement config_get("configuration_variable") and - config_set("configuration_variable","value") that'll work with *php3_ini*, - not the configuration hash! -* Bundle some nice classes (like Bjørn's graphing class) -* Bundle some database abstraction classes -* Distribute binaries -* Clean up API and modules to make .so modules portable across CGI and server - binaries -* dbm cleanup (don't arbitrarily pick, and support multiple concurrent formats) -* start system defines so that we can move away from the standard c lib on - windows to the win32 lib. (file functions primarily) -* COM implementation so php can be used as an asp language (cant find any docs - on how this is done though) -* Clean up the file structure so the top-level directory isn't such a mess. -* Bring the module concept to maturity: use libtool and make it - possible to decide at compile time whether you want to compile a - module statically or dynamically. Remove the distinction between - the stuff currently in dl/ and functions/. -* a way of letting each module specify its options, so ini file options and - Apache directives can be set up from the same specification. -V Make it possible to declare smarter user functions: (done in 3.0) - - Optional parameters - - Parameters that are forced/prefered by reference -* Make object parsing more general, and allow nested arrays/objects with - unlimited levels. -V Make it possible to copy references of variables. -* data tainting (like perl -T) -* multi-dimensional array support in GET/POST/COOKIE handling code -* Persistent functions and classes -* odbc_fetch_assoc -* Add env handling to gpc_order -* Populate track_vars regardless of gpc_order -* a real exec() function -* Support passing arguments to functions by name (e.g. foo(arg1 => "bar", arg2 => "foobar")) -* Add an optional setting to destroy persistent resources if a PHP script terminates - abnormally -V COM automation support for Win32 -? Add a setting for making function names case sensitive -* stat() files before feeding them to flex - it doesn't handle special files very well diff --git a/cvsusers b/cvsusers deleted file mode 100644 index 9763c24bc3..0000000000 --- a/cvsusers +++ /dev/null @@ -1,62 +0,0 @@ -CVS login Name Email Works on -andi Andi Gutmans andi@php.net Core + API -jim Jim Winstead jimw@php.net Everything -rasmus Rasmus Lerdorf rasmus@php.net Everything -shane Shane Caraveo shane@php.net WIN32 + API -ssb Stig Bakken stig@php.net Everything -zeev Zeev Suraski zeev@php.net Everything -jaakko Jaakko Hyvatti jaakko@hyvatti.iki.fi Everything -veebert Rex Logan veebert@dimensional.com IMAP -chad Chad Robinson chadr@brttech.com Documentation -myddryn PostgreSQL -wojtek -mitch Mitch Golden Oracle -brian -lr Lachlan Roche lr@www.wwi.com.au MD5 -damian -ian -jah Jouni Ahto jah@cultnet.fi Postgres, Informix -adam -amitay Amitay Isaacs amitay@w-o-i.com LDAP -dizzy -mark -guy -jeffhu Jeffrey Hulten jeffh@premier1.net WIN32 + modules(?) -eschmid Egon Schmid eschmid@delos.lf.net Documentation -cslawi Torben Wilson torben@netmill.com Documentation -bwk -eric -tcobb Troy Cobb www -gareth www -willer Steve Willer willer@interlog.com pack -cmv Colin Viebrock cmv@privateworld.com www -soderman -tin -musone Mark Musone musone@afterfive.com IMAP -abelits Alex Belits abelits@phobos.illtel.denver.co.us fhttpd module -ars Ariel Shkedi ars@ziplink.net setup -mag Nikolay P. Romanyuk mag@redcom.ru Raima DB -rse Ralf S. Engelschall rse@engelschall.com Apache configuration -sr Stefan Roehrich sr@linux.de zlib module -owl Igor Kovalenko owl@infomarket.ru QNX support -pcurtis Paul Curtis pcurtis@netscape.com NSAPI work (??) -lynch Richard Lynch lynch@lscorp.com Documentation -steffann Sander Steffann steffann@nederland.net Safe Mode -wdiestel Wolfram Diestel wdiestel@debis.com Oracle WebServer cartridge -fmk Frank M. Kromann fmk@businessnet.dk Direct MS-SQL, NaVision, Lotus Notes -steinm Uwe Steinmann Uwe.Steinmann@fernuni-hagen.de Hyperwave Module -danny Danny Heijl Danny.Heijl@cevi.be Informix -kara Andreas Karajannis Andreas.Karajannis@gmd.de ODBC, Oracle -nyenyon Christian Cartus chc@idgruppe.de Informix -kk Kristian Köhntopp kk@shonline.de Documentation -ted Ted Rolle ted.rolle@usa.net Documentation -holger Holger Zimmermann zimpel@t-online.de Pi3Web support -sgk Shigeru Kanemoto sgk@happysize.co.jp Japanese language support -jimjag Jim Jagielski jim@jaguNET.com Misc scraps -martin Martin Kraemer Martin.Kraemer@Mch.SNI.De EBCDIC (BS2000 mainframe port) -kwazy Landon Bradshaw landon@bradshaw.org Documentation -thies Thies C. Arntzen thies@digicol.de implement IPTC reader, maybe some oracle stuff -cschneid Christian Schneider cschneid@relog.ch gzip run-time encoding of output stream -tommay Tom May tom@go2net.com Sybase-CT -swilliam Steve Williams swilliam@empress.com Empress support in unified ODBC -sas Sascha Schumann sas@schell.de Various tweaks diff --git a/press-release-3.0.txt b/press-release-3.0.txt deleted file mode 100644 index afef4b0cb4..0000000000 --- a/press-release-3.0.txt +++ /dev/null @@ -1,47 +0,0 @@ - - FOR IMMEDIATE RELEASE - - PHP 3.0 RELEASED - -June 6, 1998 -- The PHP Development Team announced the release of -PHP 3.0, the latest release of the server-side scripting solution already -in use on over 70,000 World Wide Web sites. - -This all-new version of the popular scripting language includes support -for all major operating systems (Windows 95/NT, most versions of Unix, -and Macintosh) and web servers (including Apache, Netscape servers, -WebSite Pro, and Microsoft Internet Information Server). - -PHP 3.0 also supports a wide range of databases, including Oracle, Sybase, -Solid, MySQ, mSQL, and PostgreSQL, as well as ODBC data sources. - -New features include persistent database connections, support for the -SNMP and IMAP protocols, and a revamped C API for extending the language -with new features. - -"PHP is a very programmer-friendly scripting language suitable for -people with little or no programming experience as well as the -seasoned web developer who needs to get things done quickly. The -best thing about PHP is that you get results quickly," said -Rasmus Lerdorf, one of the developers of the language. - -"Version 3 provides a much more powerful, reliable and efficient -implementation of the language, while maintaining the ease of use and -rapid development that were the key to PHP's success in the past", -added Andi Gutmans, one of the implementors of the new language core. - -"At Circle Net we have found PHP to be the most robust platform for -rapid web-based application development available today," said Troy -Cobb, Chief Technology Officer at Circle Net, Inc. "Our use of PHP -has cut our development time in half, and more than doubled our client -satisfaction. PHP has enabled us to provide database-driven dynamic -solutions which perform at phenomenal speeds." - -PHP 3.0 is available for free download in source form and binaries for -several platforms at http://www.php.net/. - -The PHP Development Team is an international group of programmers who -lead the open development of PHP and related projects. - -For more information, the PHP Development Team can be contacted at -core@php.net.