プログラミング
LuaJIT 3.0の構文拡張案
LuaJIT 3.0 proposed syntax extensions (github.com)
要約
LuaJIT 3.0の構文拡張に関する議論と提案をまとめるためのイシューです。開発者の使いやすさを向上させ、既存の言語やLuaの方言で実績のある機能を取り入れつつ、後方互換性を維持し、構文の曖昧さを避けることを目標としています。過度な複雑さを避け、機能と実用性に焦点を当てた議論が求められています。
全文翻訳
このイシューは、LuaJIT 3.0の構文拡張に関する包括的な議論の場です。ドキュメントは以下の最初のコメントで継続的に更新されます。
このイシューでは、構文拡張の選択、設計、セマンティクスについて自由に議論してください。ドキュメントの改善や明確化のリクエストも歓迎します。構文の好みは主観的なものが大きいため、フィードバックが建設的なものであることを確認してください。特定の提案が却下された場合は、その決定を尊重し、次に進んでください。一般的に、議論は機能に焦点を当て、エッジケースの演算子(いわゆるバイクシェディング)に対する外観上の記号の選択に関する長時間の議論を避けることを願っています。構文の選択肢の中には、すでに他の言語(C、Lua、JavaScriptなど)によって行われているものもあり、私はそれらすべてに満足しているわけではありません。しかし、適合性と互換性には価値があります。
目標は、以下の条件を満たす構文拡張のみを追加することです。
* 開発者のQoL(Quality-of-Life)を向上させる。
* 実績がある。他の言語やLua方言で。
* 構文の曖昧さを生じさせない。
* 後方互換性を損なわない。
* ツール開発者(構文フォーマッター、LSPなど)の作業を困難にしない。
これを明確にするために述べますが、Perl、Ruby、C++、Rustのような構文の複雑さをコピーするつもりはありません。関連イシュー #63 および #1379 は、このイシューに優先してクローズされました。
脚注:
LuaJITは長年にわたり多くの拡張を蓄積してきました。ドキュメントはあちこちに散らばっています。計画では、完全な言語の独立した統合ドキュメントを作成します。拡張機能は、最初に登場したバージョンでラベル付けされます。このドキュメントはそこに統合されます。