Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:80335 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 97405 invoked from network); 10 Jan 2015 22:39:58 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Jan 2015 22:39:58 -0000 Authentication-Results: pb1.pair.com header.from=smalyshev@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=smalyshev@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.214.176 as permitted sender) X-PHP-List-Original-Sender: smalyshev@gmail.com X-Host-Fingerprint: 209.85.214.176 mail-ob0-f176.google.com Received: from [209.85.214.176] ([209.85.214.176:49073] helo=mail-ob0-f176.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 94/86-48183-D3AA1B45 for ; Sat, 10 Jan 2015 17:39:57 -0500 Received: by mail-ob0-f176.google.com with SMTP id vb8so17991447obc.7 for ; Sat, 10 Jan 2015 14:39:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=fIQN84VAd2de/txwLvM3aCK/zD4zHxU34fkbV2L6UVw=; b=skpxo7yVuP6jzfdcHHg6ibBjfM9YfVh+4RsdVMQIJdEGkMuB36TenLLfdPrvT+qRw6 P2kaQobCKT9RhWMUiYdtdrZHH4F5/FNW3+4L52DOsRsGADSnF2nRvGjRibIGEptj7ciG Ss6B+qzwwyImHio8b3sv5DESluD9l2RVWje/HpXLMvKaZ0/wWCS+oNNkzKm8NZVcu3Q/ 7p7m46t3wUPhOUSKHZ7IEu49MO/dkkMZrreyx7pRzP5NJxhGE+dmEl7Yzysm5p8WfnQN e/Ss3s+6WC0+TSZCZd1frBerO1kJ6+e6iYCcX91t9SwEcpaag7sZ6L642BWMYqCg/+pj FTuQ== X-Received: by 10.60.131.232 with SMTP id op8mr13622190oeb.59.1420929595254; Sat, 10 Jan 2015 14:39:55 -0800 (PST) Received: from [192.168.2.145] (108-66-6-48.lightspeed.sntcca.sbcglobal.net. [108.66.6.48]) by mx.google.com with ESMTPSA id l200sm6476645oig.26.2015.01.10.14.39.54 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 10 Jan 2015 14:39:54 -0800 (PST) Message-ID: <54B1AA31.6050703@gmail.com> Date: Sat, 10 Jan 2015 14:39:45 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Sara Golemon , Pierre Joye , PHP internals References: In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] One API to rule them all? (Was: Extension Prepend Files) From: smalyshev@gmail.com (Stanislav Malyshev) Hi! > Funny to see you mention this. I literally just pulled together a > meeting today to discuss HHVM's admittedly unstable extension API. > One idea to emerge from this was to design a new extension API > agnostic of underlying implementation. An API which, if done right, What extensions do right now is pretty closely linked to how the engine is functioning. Of course, for simple things like "take number from C library, wrap it in zval, send to PHP" the API would be pretty simple, but if you have something like simplexml, it relies a lot on the details of the engine and how things are done there. So I think it would be useful to define what exactly would be covered and what not, i.e. which APIs are supported, which can be supported, which can not. Right now we don't even have the API as such for the engine itself (i.e., you can just go to EG(...) or bits of the zval and mess with them, and not only you can but many extensions do). Also I wonder how that would sit with phpng effort. Lately it was very focused on performance-based optimizations, and working via abstract APIs may not be always the most performant way of doing things. > learn from. Heck, we're actually halfway there with HHVM's > "ext_zend_compat" layer, which makes PHP extensions (mostly) source > compatible with HHVM. Is there some docs for what ext_zend_compat does and which APIs it supports/doesn't support? -- Stas Malyshev smalyshev@gmail.com