Skip to content

Instantly share code, notes, and snippets.

@masakielastic
masakielastic / rfc-style2.md
Last active March 23, 2026 07:41
PHP RFC のためのレビュー。改訂版

PHP RFC の英文レビューと改稿を手伝ってください。対象は UTF-8 の code-point traversal を扱う str_iter() RFC です。レビュー方針と文章スタイルは次のとおりです。

目的

  • 小規模 RFC として、論点を増やしすぎず、仕様の境界を明確にする
  • 「なぜ追加する必要があるのか」「誰にとって意味があるのか」を重視する
  • 便利機能の寄せ集めではなく、shared primitive / building block という位置づけを明確にする
  • validation や grapheme cluster のような隣接論点とは意図的に切り分ける

議論のスタイル

  • まず節ごとの役割を明確にしてください

あなたは PHP RFC のレビューと構成整理を支援するアシスタントです。 今回の対象は、小規模だが論点の多い RFC です。目的は、仕様を増やすことではなく、設計判断・動機・スコープ・将来課題を適切な密度で整理することです。

以下の方針で応答してください。

【全体方針】

  • PHP RFC は単なる仕様書ではなく、投票前に設計判断を共有する公開文書として扱う。
  • 小規模 RFC では Proposal を主役にする。
  • Proposal を読めば仕様の骨格が分かる状態を重視する。
  • Introduction は必要なら短く置き、追加内容の宣言ではなく「争点設定・位置づけ」に使う。
@masakielastic
masakielastic / README.md
Last active March 21, 2026 20:28
Zig で embed PHP を利用する

Zig で embed PHP を利用する

構成

build.zig 
c
src/main.zig

実行

@masakielastic
masakielastic / 2026plan.md
Last active March 21, 2026 11:18
PHP ビルトインサーバー改善案

2026年版 新計画

PHP Built-in Server (sapi/cli/php_cli_server.c) 再設計計画

0. この計画の目的

この計画の目的は、php_cli_server.c を一気に全面改修することではなく、次の 3 つの将来課題に耐えられる構造へ段階的に変えることです。

  1. http_parser 依存の緩和と将来の llhttp 移行準備
@masakielastic
masakielastic / stream-client.c
Last active March 21, 2026 20:40
embed PHP と Stream API で HTTP/1 クライアント。最新版は https://github.com/masakielastic/php-embed-stream-http
#include <php.h>
#include <Zend/zend_smart_str.h>
#include <sapi/embed/php_embed.h>
#include <main/php_streams.h>
static int run_min_client(void);
int main(int argc, char **argv)
{
PHP_EMBED_START_BLOCK(argc, argv)
@masakielastic
masakielastic / server.c
Last active March 21, 2026 20:40
embed PHP と Stream API で TLS HTTP/1 サーバー。最新版は https://github.com/masakielastic/php-embed-stream-http
#include <php.h>
#include <Zend/zend_smart_str.h>
#include <sapi/embed/php_embed.h>
#define SERVER_ADDR "tls://127.0.0.1:8443"
#define SERVER_CERT_PEM "localhost.pem"
#define SERVER_KEY_PEM "localhost-key.pem"
static int run_min_server(void);
static php_stream_context *create_tls_server_context(void);
@masakielastic
masakielastic / server.c
Last active March 21, 2026 20:41
embed PHP と Stream API で HTTP/1 サーバー。最新版は https://github.com/masakielastic/php-embed-stream-http
#include <php.h>
#include <Zend/zend_smart_str.h>
#include <sapi/embed/php_embed.h>
static int run_min_server(void);
int main(int argc, char **argv)
{
PHP_EMBED_START_BLOCK(argc, argv)
@masakielastic
masakielastic / php_rfc_style.md
Last active March 19, 2026 02:09
PHP RFC の書き方・議論スタイル共有メモ

PHP RFC の書き方・議論スタイル共有メモ

概要

このメモは、今回の FILTER_VALIDATE_STRLEN RFC 検討を通じて整理した、PHP RFC の書き方と議論の進め方の実践メモである。目的は、他のチャットや今後の RFC 作成で再利用できる形で、論点設定・文章構成・FAQ 設計・スコープ管理の勘所を共有することにある。


1. PHP RFC は「仕様書」だけではなく「公開討論のための設計文書」

PHP RFC は、単に機能仕様を列挙する文書ではない。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/socket.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/x509_vfy.h>
@masakielastic
masakielastic / tls-client.c
Last active March 11, 2026 06:20
Minimal TLS Client in C with Explicit Connection State (QUIC Preparation)
/*
Minimal TLS Client in C (Architecture Exercise for QUIC Preparation)
This program implements a small TLS + TCP client using OpenSSL.
The goal of this code is not merely to demonstrate how to perform
a TLS request, but to illustrate a connection-oriented design that
resembles modern network protocol libraries.
Instead of writing everything inside main(), the implementation
intentionally separates responsibilities into multiple functions: