タグ

ブックマーク / qiita.com/hnw (8)

  • macOSの$TMPDIR以下のファイルが部分的に削除された理由 - Qiita

    MacOSX El Capitan(10.11)で起きたトラブルです(2020-06-06追記: Mojave(10.14)でも状況は同じです)。 某OSSのtar ballを$TMPDIR以下に展開してビルドしていたのですが、なぜか展開後のファイルのうち一部のファイルだけ1日後に消える事件が発生しました。 消されるファイルのうちinstall-shはconfigureで必要なファイルなので、昨日作業したディレクトリで今日も./configureしようと思ったら次のようにエラーで怒られてしまいます。 $ ./configure checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for a sed that does

    macOSの$TMPDIR以下のファイルが部分的に削除された理由 - Qiita
  • PHP 7.1からデフォルトで有効になる「Zend Signals」とは何か - Qiita

    下記PHP Internals MLでの議論によれば、今後「Zend Signals」がデフォルトで有効になる予定です。少なくとも7.1.0beta2時点では有効になっており、特に問題が見つからなければこのままリリースされるはずです。 [PHP-DEV] Enable Zend Signals by Default で、Zend Signalsって何? 「Zend Signals」または「Zend Signal Handling」というのはZend Engineの内部的なシグナルハンドリングの仕組みです。PHP言語の世界に新たな関数を追加するようなものではありません。 この有効・無効はphpinfo()で確認することができます。 先ほど紹介したML上での議論によれば、ざっくり次のような話のようです(かなり端折ってます)。 Dmitry「Zend Signalsを有効にすればOPcacheの

    PHP 7.1からデフォルトで有効になる「Zend Signals」とは何か - Qiita
    shimooka
    shimooka 2016/08/10
    『全体的に謎が多め』
  • PHP5とPHP7の違い(extension編) - Qiita

    PHP5用のextensionは変更なしではPHP7上で動きません。#ifで分岐して両対応にするのも厳しい印象で、多くのextensionは別ブランチで開発しているようです(調べた範囲ではAPCu、msgpack、memcachedなどが別ブランチで開発しているようです)。 今回PHP7用の実験的なextension「php7_explorer」を書いてみました。書いてみてPHP5用のextensionとの違いを改めて実感したので、ざっくりの違いをまとめてみます。 「おまじない」を書かなくてよくなった PHP5までは、Zend APIのプロトタイプ宣言最後にTSRMLS_DCを、呼び出し時の引数リストの最後にTSRMLS_CCをつけるという「おまじない」が必要でした。これはZTS (Zend Thread Safety)サポートのため、必要なときだけ余計な引数を引き回すようなマクロ定義です

    PHP5とPHP7の違い(extension編) - Qiita
    shimooka
    shimooka 2015/09/18
    拡張モジュールの対応具合によって、PHP7への移行が進むかどうかかなり違いそう。。。runkit対応マダー
  • PHP7調査(26)無名クラスの導入 - Qiita

    PHP7から無名クラスがサポートされました。次のような文法で、クラス定義なしでオブジェクトが生成できます。 通常のクラス定義と同様にextendsやimplementsなども書くことができます。 この構文はnewまで必須です。newなしで無名クラスが第1級オブジェクトになりそうに見えますが、現時点ではそのような記述はできません。無名クラスのインスタンスを作ることだけが可能です。 ユースケース RFCによれば次のような状況で便利なのでは?とのことでした。 テスト用のモックオブジェクトで、その場限りでインターフェースを実装する状況。 そのクラスを外部に公開したくないような場合 オブジェクトメソッドが呼ばれたりするのは構わないが、継承して使われるのがイヤな場合…? 自明な実装でオートローダーを叩きたくない 1クラス1ファイルというルールで運用している場合、1ファイル増えてしまうのが悲しいこともあ

    PHP7調査(26)無名クラスの導入 - Qiita
  • PHP7調査(11)??演算子の新設 - Qiita

    PHP7で2項演算子「??」が新設されます。左オペランドがnull以外の値であればその値を、そうでなければ右オペランドを返すようなものです。

    PHP7調査(11)??演算子の新設 - Qiita
    shimooka
    shimooka 2015/04/23
    『??演算子はisset()と同様に未定義値をチェックしてもエラーになりません』これはでかい!
  • PHP7調査(23)致命的エラーが例外としてキャッチできるようになった - Qiita

    (2015/07/02追記:PHP 7.0.0alpha2に合わせて修正しました) PHPのエラーは、エラー文言を表示するだけの警告・注意と、その場で処理を終了してしまう致命的エラー(fatal error)の2種類に大別できます。 ところで、PHP5の致命的エラーには不便な点があります。それは、set_error_handler()やその他の方法でエラーハンドリングできず、必ず終了してしまう点です。これでは致命的エラーをユニットテストするのも不便ですし、ReactPHPのようにサーバ動作させるようなプログラムも安心して使えません。 PHP7では致命的エラーが例外として実現されるようになり、エラーハンドリングの自由度が格段に上がりました。この変更の概要を紹介します。 例外のクラス階層の変更 まず、PHP7で例外クラスの階層がどう変わるかを説明します。PHP5までの例外のクラス階層は次のよう

    PHP7調査(23)致命的エラーが例外としてキャッチできるようになった - Qiita
  • PHP7調査(10)名前空間のuseをまとめて書けるようになった - Qiita

    PHP7から、名前空間を使うときに複数のuseを中カッコでまとめて書くことができます。 具体的には次のように書けるようになりました。 <?php use Symfony\Component\Console\{ Input\InputInterface, Input\InputArgument, Input\InputOption, Output\OutputInterface, Output\ConsoleOutputInterface };

    PHP7調査(10)名前空間のuseをまとめて書けるようになった - Qiita
    shimooka
    shimooka 2015/04/14
    ほー
  • PHP処理系の一覧 - Qiita

    PHPの処理系について調べてみたところ、想像以上にたくさんあることがわかりました。マイナーなPHP処理系に興味を持った人のために、一覧形式で紹介します。また、他の処理系をご存じの方のタレコミをお待ちしております。 公式処理系 実装言語はC。Windowsを含む全てのプラットフォームに対応しており、実行可能バイナリの形でビルドできる(CLI・CGI・ビルトインサーバ)。また、ApacheモジュールやFastCGIを受け付けるデーモン(PHP-FPM)などの形でも動作する。 その他の処理系(PHPコードがそのまま動くもの) HHVM Facebook製のPHP実行環境。実装言語はC++。JITコンパイルによる高速化が特徴。現時点ではx64 Linux環境がメインターゲットで、MacではJITコンパイラが動かない模様。FastCGIを受け付けるWebアプリケーションサーバとして動作する。また、コ

    PHP処理系の一覧 - Qiita
    shimooka
    shimooka 2015/03/23
    PHP ParserのStandardなPrittyPrinterを拡張してZepherのコードを吐かせたりして遊んでみると面白い
  • 1