JavaScript

QML コンパイラパイプラインの最適化

Published Tuesday September 18th, 2018 | Leave a comment
Posted in Qt | Tags: , , , , , ,

この記事は The Qt Blog の Optimizing the QML compiler pipeline を翻訳したものです。 執筆: Lars Knoll, 2018年05月22日 Qt QML は Qt Quick でユーザーインターフェースを構築する際のプログラミング言語である QML を実行するためのエンジンです。Qt QML 自体には描画機能に関する依存が一切ありません。このモジュールでは、QML 言語のサポートに加え、ECMAScript 5.1 に準拠した JavaScript のエンジンを提供しています。 Qt Quick というユーザーインターフェース技術の基礎を提供するこのモジュールは、Qt のユーザーに向けた核となるものです。内部的には主に2つの要素で構成されています。QML と ECMAScript をバイナリデータ構造とバイトコード/アセンブリにコンパイルするためのコンパイラパイプラインと、そこで生成されたコードを実行するためのランタイムです。今回の記事は前者についてのものになります。 5.10 まで利用していた Qt QML のコンパイラパイプラインはここ数年の Qt のアップデートでとても複雑になってしまいました。 以下の図は簡易化した以前のコンパイラパイプラインを示したものです。 まず QML と JavaScript のコードを 字句解析器(Lexer) と 構文解析器(Parser) に送り、抽象構文木(AST) というコンパイル用のコードに変換します。この […]

Read More

みなさん、Qt の JavaScript はますます速くなります

Published Friday February 25th, 2011 | 1 Comment on みなさん、Qt の JavaScript はますます速くなります
Posted in Qt | Tags: ,

この記事は Qt Blog の “Qt people, our JavaScript platform is burning rubber” を翻訳したものです。 執筆: Kent Hansen 2011年2月24日 現在、Qt で Google の V8 JavaScript エンジンの利用について研究を行っています。法務的な問題から、極秘にこのプロジェクトを進めてきましたが、ようやく表に出せるようになりました: http://qt.gitorious.org/qt/qt-script-ng 今のところ、このリポジトリは Qt の完全なクローンです。このプロジェクトに関する詳細な説明は QtScript wiki にあります。また、JavaScript/Qt の開発に関するメーリングリストも作成しました。FreeNode の IRC の #qt-script チャンネルもあります。(将来の) Qt の JavaScript エンジンの統合(QML, QtWebKit もしくは独自のアプリケーションへの組み込みなど)に興味がある方は、是非ともご参加ください。 V8 ベースのバックエンドのステータスですが、いくつかの QtScript の API が実装されていませんし、失敗するオートテストの項目([qtbug QTBUG-17640])もあります。しかし、いくつかの QtScript や QML のサンプル、デモプログラムは動作しています。現在の Qt […]

Read More

みなさん、Qt の JavaScript はますます速くなります

Published Friday February 25th, 2011 | Leave a comment
Posted in Qt | Tags: ,

この記事は Qt Blog の “Qt people, our JavaScript platform is burning rubber” を翻訳したものです。 執筆: Kent Hansen 2011年2月24日 現在、Qt で Google の V8 JavaScript エンジンの利用について研究を行っています。法務的な問題から、極秘にこのプロジェクトを進めてきましたが、ようやく表に出せるようになりました: http://qt.gitorious.org/qt/qt-script-ng 今のところ、このリポジトリは Qt の完全なクローンです。このプロジェクトに関する詳細な説明は QtScript wiki にあります。また、JavaScript/Qt の開発に関するメーリングリストも作成しました。FreeNode の IRC の #qt-script チャンネルもあります。(将来の) Qt の JavaScript エンジンの統合(QML, QtWebKit もしくは独自のアプリケーションへの組み込みなど)に興味がある方は、是非ともご参加ください。 V8 ベースのバックエンドのステータスですが、いくつかの QtScript の API が実装されていませんし、失敗するオートテストの項目([qtbug QTBUG-17640])もあります。しかし、いくつかの QtScript や QML のサンプル、デモプログラムは動作しています。現在の Qt […]

Read More

QtScript の「レガシー」API の対応

Published Monday January 24th, 2011 | 3 Comments on QtScript の「レガシー」API の対応
Posted in Qt | Tags: ,

我々は Qt に出来る限り最高の JavaScript テクノロジーをもたらしたいと考えています。しかし、そのためにはパブリックな API の下で、実装の大幅な変更、場合によっては入れ替えを可能にしなくてはなりません。もし、API に実装の詳細が含まれてしまうようでは、変更はゆっくりしたものになるでしょう。 既存の JavaScript エンジン(WebKit プロジェクトの JavaScriptCore や Google の V8 エンジン)に対する大規模な検討から、QtScript モジュールの C++ API のどの部分が「そのまま利用可能」で、どの部分が「頭の痛いコード」かが明確になり始めています。 私たちには「フォレスト・ガンプ」の「走れ! フォレスト、走れ!」のシーンを再現する道筋が必要です。そのため、 [qtbug QTBUG-15571] を作成しました。このタスクはこの件に関する情報を集め、解決し、そして QtScript API の実装の方針を決めるためのハブとなります。 理想的には、Qt 自体のライブラリとツール以外の誰もこれらの実装の変更が問題にはならず、大きな「Obsolete」ボタンを押して古いコードから切り替えるだけで済めばいいと思います。しかし、実際のところ、我々はそれらがどのように使用されているかを十分に把握しておりません。もし、あなたかあなたの知る誰かが懸念となる API を使用しているのであれば、JIRA にサブタスクを作ってコメントしていただければ、非常に助かります。おそらく、私たちが見落としている利用法があるはずです。 ソースおよびバイナリコンパチビリティを確保するために、私たちは Qt 4.x ではこれらの API は削除しません。それが足かせであるとしても。

Read More
Get started today with Qt Download now