From 46ba789ffbf66c88b30b9adf446470132af979b0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 19 Aug 2023 19:58:08 +0900 Subject: スライドを作成 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - note.md | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ slide.pdf | Bin 0 -> 180966 bytes slide.saty | 90 +++++++++++++++++++++++- 4 files changed, 316 insertions(+), 2 deletions(-) create mode 100644 note.md create mode 100644 slide.pdf diff --git a/.gitignore b/.gitignore index 3a108ac..19780ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/slide.pdf /slide.satysfi-aux diff --git a/note.md b/note.md new file mode 100644 index 0000000..0088ba1 --- /dev/null +++ b/note.md @@ -0,0 +1,227 @@ +Personal Home Page Tools (PHP Tools) +1995/6/8 + +https://ja.wikipedia.org/wiki/PHP_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E) +https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B9%E3%83%9E%E3%82%B9%E3%83%BB%E3%83%A9%E3%83%BC%E3%83%89%E3%83%95 + +FI (Form Interpreter) +Personal Home Page Construction Kit +PHP/FI + +PHP/FI Version 2.0 (PHP 2) 1996/6 + +PHP 3.0 (PHP: Hypertext Preprocessor) 1998/6 + +PHP 4.0 (Zend Engine) 2000/5 +PHP 5 +PHP 6 (欠番) +PHP 7 +PHP 8 + +https://www.php.net/manual/ja/history.php.php + +https://groups.google.com/g/comp.infosystems.www.authoring.cgi/c/PyJ25gZ6z7A/m/M9FkTUVDfcwJ?pli=1 + +> Announcing the Personal Home Page Tools (PHP Tools) version 1.0. +> These tools are a set of small tight cgi binaries written in C. +> They perform a number of functions including: +> +> . Logging accesses to your pages in your own private log files +> . Real-time viewing of log information +> . Providing a nice interface to this log information +> . Displaying last access information right on your pages +> . Full daily and total access counters +> . Banning access to users based on their domain +> . Password protecting pages based on users' domains +> . Tracking accesses ** based on users' e-mail addresses ** +> . Tracking referring URL's - HTTP_REFERER support +> . Performing server-side includes without needing server support for it +> . Ability to not log accesses from certain domains (ie. your own) +> . Easily create and display forms +> . Ability to use form information in following documents +> +> Here is what you don't need to use these tools: +> +> . You do not need root access - install in your ~/public_html dir +> . You do not need server-side includes enabled in your server +> . You do not need access to Perl or Tcl or any other script interpreter +> . You do not need access to the httpd log files +> +> The only requirement for these tools to work is that you have +> the ability to execute your own cgi programs. Ask your system +> administrator if you are not sure what this means. +> +> The tools also allow you to implement a guestbook or any other +> form that needs to write information and display it to users +> later in about 2 minutes. +> +> The tools are in the public domain distributed under the GNU +> Public License. Yes, that means they are free! +> +> For a complete demonstration of these tools, point your browser +> at: http://www.io.org/~rasmus +> +> -- +> Rasmus Lerdorf +> ras...@io.org +> http://www.io.org/~rasmus + + +https://www.jetbrains.com/ja-jp/lp/php-25/ + +https://twitter.com/rasmus/status/226405807305138176 + +https://www.php.net/releases/ + +https://www.php.net/manual/php3.php + +http://museum.php.net/php3/php-3.0.18.tar.gz + + + + + +$ ./php -h +Usage: php [-q] [-h] [-s] [-v] [-i] [-f ] | { [args...]} + -q Quiet-mode. Suppress HTTP Header output. + -s Display colour syntax highlighted source. + -f Parse . Implies `-q' + -v Version number + -p Pretokenize a script (creates a .php3p file) + -e Execute a pretokenized (.php3p) script + -c Look for php3.ini file in this directory + -i PHP information + -h This help + + +$ ./php -i +X-Powered-By: PHP/3.0.18 +Content-type: text/html + +

PHP Version 3.0.18

+by Rasmus Lerdorf, +Andi Gutmans, +Zeev Suraski, +Stig Bakken, +Shane Caraveo, +Jim Winstead, and countless others.

+


System: Linux my-notebook 6.2.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jul 13 16:27:29 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Build Date: Aug 11 2023
+
+

Extensions

+ + + + + + + + + + + + + + + + + + + + + +
ExtensionsAdditional Information
PHP coreCFLAGS=
+HSREGEX=
Basic FunctionsNo additional information.
PHP_DLDynamic Library support enabled. +
PHP_dirNo additional information.
PHP_filestatNo additional information.
PHP_fileNo additional information.
PHP_headNo additional information.
SendmailPath to sendmail: /usr/lib/sendmail -t
SyslogNo additional information.
Socket functionsNo additional information.
Regular ExpressionsBundled regex library enabled +
DBMflat file support enabled
bcmathNo additional information.
browscapNo additional information.
PHP_packNo additional information.
PCREPerl Compatible Regular Expressions
PCRE library version:2.05 21-Apr-1999
Posix$Revision: 1.19 $ +
LCGNo additional information.
+

Configuration

+Configure command: ./configure '--prefix=/home/ken/src/nil/php-3.0/build'
+php3.ini file path is set to: /usr/local/lib
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DirectiveMaster ValueLocal Value
arg_separator & &
asp_tags00
auto_prepend_file none none
auto_append_file none none
browscap none none
cgi_ext none none
debugger.host none none
debugger.port00
define_syslog_variables00
display_errors11
doc_root none none
enable_dl11
engine11
error_log none none
error_append_string none none
error_prepend_string none none
error_reporting5555
extension_dir none none
gpc_order GPC GPC
ignore_user_abort00
include_path none none
isapi_ext none none
last_modified00
log_errors00
max execution time3030
magic_quotes_gpc00
magic_quotes_runtime00
magic_quotes_sybase00
memory limit83886088388608
nsapi_ext none none
open_basedir none none
precision1414
safe_mode00
safe_mode_exec_dir /usr/local/php/bin /usr/local/php/bin
sendmail_from none none
sendmail_path /usr/lib/sendmail -t /usr/lib/sendmail -t
short_open_tag11
smtp localhost localhost
sql_safe_mode00
track_errors00
track_vars00
upload_max_filesize20971522097152
upload_tmp_dir none none
user_dir none none
warn_plus_overloading00
xbithack00
browscap none none
y2k_compliance00
highlight_comment #FF8000 #FF8000
highlight_default #0000BB #0000BB
highlight_html #000000 #000000
highlight_string #DD0000 #DD0000
highlight_bg #FFFFFF #FFFFFF
highlight_keyword #007700 #007700

Environment

+ + + +
VariableValue
......
+

PHP Variables

+ + +
VariableValue
+

PHP License

+
This program is free software; you can redistribute it and/or modify
+it under the terms of:
+
+A) 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.
+
+B) the PHP License as published by the PHP Development Team and
+   included in the distribution in the file: LICENSE
+
+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 both licenses referred to here.
+If you did not, or have any questions about PHP licensing, please
+contact core@php.net.
+ + + +../build/php funclist.php3 diff --git a/slide.pdf b/slide.pdf new file mode 100644 index 0000000..cec3364 Binary files /dev/null and b/slide.pdf differ diff --git a/slide.saty b/slide.saty index 21501ba..af92bd0 100644 --- a/slide.saty +++ b/slide.saty @@ -47,8 +47,96 @@ document '< %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +frame{なぜ PHP 3.0 か?}< + +p{ソースコード入手できる最も古いバージョン} + +p{} + +p{"PHP" が PHP: Hypertext Preprocessor の略になった最初のバージョン} + > + + +frame{ビルドする}< + +p{ソースコードをダウンロードして、./configure して make} + > + + +frame{ビルドする}< + +p{ソースコードをダウンロードして、configure して make} + +p{} + +p{動いた。} + > + + +frame{いろいろ数えてみる}< + +p{3.0.18 と 8.2.9 で比較してみる} + +p{} + > + + +frame{いろいろ数えてみる}< + +p{3.0.18 と 8.2.9 で比較してみる} + +p{} + +listing{ + * ファイル数 (マニュアル除く) + ** 412 から 2249 (約5.5倍) + } + > + + +frame{いろいろ数えてみる}< + +p{3.0.18 と 8.2.9 で比較してみる} + +p{} + +listing{ + * ファイル数 (マニュアル除く) + ** 412 から 2249 (約5.5倍) + * 行数 (マニュアル除く) + ** 174,325 から 1,950,657 (10倍以上) + } + > + + +frame{いろいろ数えてみる}< + +p{3.0.18 と 8.2.9 で比較してみる} + +p{} + +listing{ + * ファイル数 (マニュアル除く) + ** 412 から 2249 (約5.5倍) + * 行数 (マニュアル除く) + ** 174,325 から 1,950,657 (10倍以上) + * 関数 (全拡張を有効にしてビルドした場合) + ** 1313 から 2153 (約1.6倍) + } + > + + +frame{コードリーディング}< + +p{全体的な実行フローが大きく異なる} + > + + +frame{コードリーディング}< + +p{全体的な実行フローが大きく異なる} + +p{} + +p{8.2: パースして AST を構築、VM 命令を生成して実行} + +p{3.0: パースして実行} + > + + +frame{if の実行}< + +code-block-php(` + + +frame{トリビア}< + +p{INI の設定の y2k_compliance} + +p{} + +p{2000年問題に対応するための設定} + +p{Off にすると日付の年の出力が下2桁に変わる} + > + +frame{まとめ}< - +p{TODO} + +listing{ + * PHP 3.0 は案外ビルドできる + * 素朴な実行アーキテクチャ + * 25年の進化 + } > > -- cgit v1.2.3-70-g09d2