フリーパスクompiler が今やダイナミックパッケージをサポートしました

2026/10/19 3:48

フリーパスクompiler が今やダイナミックパッケージをサポートしました

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

元のエキスラクトは実際には非常に強いものであり、本質を的確に捉えています:ビルドからの移行ではなくダイナミックローディングへの変化、クロスプラットフォームサポート、IDE の改善、そしてコミュニティの方向性などです。ただし、「要点リスト」に含まれているいくつかの詳細な点が欠けており、これらは精密さを加えます(例:フォーム/フレーム変換機能、特定の単位

DynPkgTypes.pas
、およびパッケージ間でユニット名が一意であるという要件)。

以下は、「要点リスト」からこれらの具体的な詳細を取り入れつつ、流れを保ちながら改善されたサマリーです:

改善されたサマリー:
Free Pascal コンパイラと Lazarus IDE は、Linux、Windows、macOS における展開において大きな変化をもたらすダイナミックパッケージシステムを導入しました。以前はコンポーネントを追加するためにフルビルドが必要でしたが、この新しいシステムでは、命名規則に従うか、標準的な共有ライブラリを使用することで、コンパイラが生成したメタデータを新しい RTL ユニット(例:

DynPkgTypes.pas
)を通じて検査することにより、開発者がプラグインや拡張機能を瞬時にインストールできるようになりました。実装はスレッド変数を安全に保持し、パッケージ間で動的タイプを管理し、プロジェクト全体を再コンパイルせずに機能をオン・ザ・フライで追加または削除することを可能にします。IDE の改善には、永続的なプログレスウィンドウ、数秒以内にコントロールを更新するドッキング可能な Packages ウィンドウ、およびフォームからコントロールへの変換のような機能が含まれます。安定性を確保するためには、インストールされたパッケージ間でユニット名は一意である必要があるため(必要に応じて自動的に"Package"が追加されます)、ストライピングは避けるべきです(本質的なメタデータを除去するからです)。この技術は新しいランタイム型情報 (RTTI) ユニットに依存していますが、実用上の成果は極めて機動的な開発環境です。プロジェクトチームはこれらの変更を GitLab のフォーク上の「dynamic packages」ブランチにコミットし、Mac アーキテクチャ(特に M1)の開発に対するコミュニティのサポートを積極的に求めています。

本文

Free Pascal コンパイラ(FPC)と Lazarus IDE「完全なダイナミックパッケージ対応」リリース

Free Pascal Compiler(FPC)および Lazarus IDE で、長望ましかった「完全なダイナミックパッケージ対応」の第 1 リリースが行われました。本機能は以下のエコシステム全体での実現が可能です。

  • コンポーネント・コントロール・拡張機能の作成・インストールを可能にします(IDE の再構築なしで数秒以内)。
  • ネイティブ Pascal クラスやタイプを、動的パッケージライブラリを通じて公開するプラグインを開発・デプロイできます。

これらを実現するために、コンパイラ、ランタイム環境、Lazarus IDE において多数の改善および新拡張機能の実装が完了しました。

実装と動作環境

ダイナミックパッケージは Linux、Windows、macOS のすべてで標準的な共有ライブラリファイルとして実装されています。

  • メタデータ: コンパイラ生成による追加メタデータを内蔵し、新規 RTL ユニットを用いて参照・照会できます。
  • 安全性: ランタイム環境内でのプログラム間・パッケージ間の安全なスレッド変数保存と、動的タイプ(文字列や動的アレイなど)の管理機構を備えています。

デプロイ形態

アプリケーションをデploy する際の方法は柔軟に選択可能です。

  • 単一実行ファイル: 従来のようにすべての内容を 1 つの実行ファイルにまとめる方式も引き続き可能。
  • プラグインシステム: 複数のダイナミックパッケージに分け、プログラム稼働中に対象パッケージを入れ替える構成にも対応します。

サンプル: ビデオ:ダイナミックパッケージのサンプル(※リンク先は記事内容に基づく記述)


制限事項

利用する際の以下の制限にご注意ください。

  1. ユニット名とパッケージ名の衝突防止

    • パッケージ内のユニット名は、パッケージ自体と同じ名前にすることはできません。
    • 対策として、生成される Pascal ソースファイルに自動的に 「Package」 という単語が追加されます。
      • 例:
        ElectroTools.lpk
        を作成した場合
        • 従来のソース名:
          ElectroTools.pas
        • 現在のソース名:
          ElectroToolsPackage.pas
  2. ユニット名の一意性

    • ユニット名はパッケージ間でも一意である必要があります。
      • 「Widgets」名で既にユニットが登録されている場合、同名のユニットを含む別のパッケージをインストールできません。
      • 解決策:いずれか一方のパッケージを選択するか、競合するユニットの名前を変更してください。
  3. 容量とメタデータ

    • 内部内容をマッピングしたため、通常の共有ライブラリよりも容量が大きくなります。
    • ダイナミックパッケージからメタデータを除去(ストリップ処理)すると、必要な機能情報が失われ動作しません。

RTL への改良点

ランタイムライブラリは、以下の強化機能を追加しました。

  • メタデータ検査: ダイナミックパッケージの内容を検査するための機構を追加。
  • 安全な境界管理: パッケージ境界を安全に跨って動的タイプおよびスレッド変数を管理できる機能を実装。
  • 新ユニット
    DynPkgTypes.pas
    :
    • ダイナミックパッケージからの情報取得・処理が容易になります。
    • 従来の信頼性の高い RTTI 情報も引き続き利用可能です。
  • 完全な動作機能: ロード、列挙、検索、ならびにランタイムでのアンロードに必要なすべての関数が用意されています。

Lazarus IDE への改良点

ダイナミックパッケージの可能性をより活発に活用できるよう、IDE に以下の機能が追加・強化されました。

1. 進捗表示ウィンドウ

Lazarus を起動した際に最初に確認できる新しいウィンドウです。

  • 自動再構築検知: IDE 外部に表示されます。登録中のパッケージソースを変更すると、Lazarus 起動前に自動的に再構築します。
  • 情報提供: 検知された変更と処理状況の通知を表示。IDE 全体の再構築時や、5 秒以上の長期処理(複数パッケージインストールなど)でも表示を継続します。

2. パッケージ管理ウィンドウ

右側にデフォルトでドックされる新しいウィンドウです。

  • セッション保持: 最近開いたパッケージの一覧を表示し、セッション間も保持します。
  • 直感的な操作: ファイル閲覧・ダブルクリックで開く機能。
  • 即座な更新: 管理ウィンドウから「コンパイル」を選択すると、数秒以内に関連するコントロールやコンポーネントを更新。IDE 全体の再構築が不要となり、開発速度が大幅に向上します。

3. パッケージメニュー

  • パッケージ追加・削除時の更新を、IDE の再構築なしで行うことが可能になりました。

4. パッケージオプション(フィルタリング機能)

「IDE 統合」セクションにて、以下のような制限設定が可能になります。

  • プラットフォーム制限: 特定のプラットフォームまたはウィジェットセットのみを対象とできます。
    • 要件を満たさないパッケージは一覧に表示されません。
    • 無視される場合(変更検知時や開こうとした時)も明確になります。
  • 具体例: Windows 専用実装(例:IShellView COM インターフェース用
    TWinControl
    )を開発する場合、Windows 環境でのみ利用可能とする設定が可能です。

5. フォームまたはフレームの変換機能(デモ向け新機能)

Lazarus 拡張機用の新しい機能です。

  • 動作: 任意のフォームまたはフレームをインストール可能なコントロールに変換し、自動的にコンポーネントパレットに追加します。
  • 効果: コントロールループ内のすべてのイベント、メソッド、プロパティがコピーされ、視覚的な設計・レイアウトや他のプロジェクトでの再利用が可能になります。

注意: 現在開いているフォームで使用されているパッケージをビルドする場合は、ビルド前にフォームを保存するか閉じるよう IDE が提示します。


詳細情報とフィードバック

より詳細な情報は公式サイトでダウンロード可能です。すべての変更は以下のリポジトリにコミット済みです。

  • GitLab リポジトリ: フォークしたリポジトリ内のブランチ
    dynamic packages
    に記載。
  • 不具合報告: GitLab の Issue チェッカーを通じて上記ブランチに関連してご報告ください。
  • 議論・質問: 下記リンク先のフォーラムをご利用ください(新投稿はモデレーター承認が必要)。

ご協力のご依頼

プロジェクトにご支援・貢献をご希望の方、および以下の方々を募集しております。

  1. モデレーター募集中

    • プロジェクトへの支援に興味がある方は、sysrpl へプライベートメッセージでご連絡ください。
  2. macOS / M1 Macintosh でのビルド支援

    • macOS 環境での作業やビルド製品作成に苦労しております。
    • M1 Macintosh をご所有され、寄付にご同意いただける方は、sysrpl へプライベートメッセージをお送りください。
    • 特に、「ダイナミックパッケージサポートに必要なコンパイラコードを M1 アーキテクチャで動作させる」改善作業への参加を心から歓迎します。

同じ日のほかのニュース

一覧に戻る →

2026/10/19 5:48

潜在空間で思考し、テキストを通じて行動するハイブリッド推論エージェント:LLM エージェント

## Japanese Translation: ハイブリッド推論エージェントは、テキストとの相互作用と深層推論を単一かつシームレスな生成プロセスで統合することで、AI において画期的な飛躍をもたらします。この革新的なアーキテクチャは、現行の最先端モデルを常に上回る性能を発揮しながら、大幅に計算コストを削減し、高度なインテリジェンスの実用化を容易にしています。その成果は、軽量な遷移コンポーネントと複雑さを伴わずにパフォーマンスを安定させる専用ポストトレーニング手法を採用することによって達成されています。 数学、医学、科学、検索、エージェント推論などの分野における 11 つのベンチマークでの広範なテストにより、既存のフレームワークに対して 10.4% の性能向上が確認されました。特に重要なのは、この効率化が莫大な節約をもたらす点です:トークン使用量は最大で 54.7% も減少し、推論速度は約 2.6 倍に向上(1.8 倍から 2.6 倍)、運用コストは最大で 3.7 分の 1 に抑えられます(2.7 倍から 3.7 倍の削減)。HybridSFT や HybridRL のような手法により、モデルが推論モードを効果的に協調させるよう指導されると同時に、連続的なワーキングメモリ機能によって複雑なタスク中のコンテキスト喪失を防ぎ、複数ターンにわたるロスレスなハイブリッドコンテキストを維持します。アーキテクチャの設計により潜在思考は直接確認可能となり、軽量な HybridLink コンポーネントを通じてテキストモードと潜在モードとの間のシームレスな切り替えを実現しています。大規模エージェントの導入を検討する企業にとって、この技術は卓越した速度と資源削減による直ちに適用可能な利点を提供します。これらは正確性や能力を損なうことなく実現されます。コードとデータは、提供されたリンクから入手可能です。

2026/10/19 1:32

ソフトウェアの裏にいる人

## 日本語翻訳: Linear は製品の構築において、経験と判断を培った直観を、堅固なデータや標準プロセスよりも重視する。ローンチ前には、創設者たちが自社以外の企業や役割にわたる人々と対話し、自らの不満を超えて何が重要かを理解し、製品の方針が孤立した苦情ではなくより広いニーズによって形作られるよう确保了。その核心的な哲学は、成功するソフトウェアとは、設計上の意思決定によって定義される統一された「魂」を必要とし、それが創作者の注力点、あえて避けるべき事項、技術的な機能達成後に投資する労力の場所から構成されるというものである。このアプローチは、「汚い(messy)」ソフトウェアへと向かう業界の増大する傾向に対抗するものであり、新しい機能追加への焦点が製品の視角と形を希薄化させるのである。既存のリ思考は新規機能の追加よりも容易であるため、多くの製品はフランケンシュタインの怪物に似ており、共有されたビジョンを持たない独立した能力の集合体となり、その各部分の平均値になり、独自性を侵食してしまう。Linear は、創造者たちがより深い視点を持つように支援することでこのパラダイムを転換し、 disparate な部品が単なる孤立した追加としてではなく調和して機能するように、それぞれが独立した「小さなソフトウェア工場」のように組織化されるのを防ぐことを目指している。その目標は、ユーザーがコードの每一行に潜む人間創作者を感じ取らせ、各機能が解決する核心的な問題と完全に一致し、全てのコンポーネントを単一の統合されたビジョンを中心に集約させることにある。

2026/10/18 22:48

RepRapMicron

## Japanese Translation: µRepRap プロジェクトは、オープンソースの原則を踏まえ、個別ユーザーがマイクロスケールのファブリケーションを民主化できるよう、コンパクトな CNC システムの開発に成功しました。PIKA V0.02 ハードウェアプロトタイプは、NEMA17 ステッピングモータ(400 ステップ)および高解像度光学顕微鏡(USB または卓上型)を用い、8mm の立方体領域内で約 1µm の繰り返し位置決めおよび信頼性の高い精度を実現しています。このシステムは、毛管現象により最大でも 4µm と微小な紫外線樹脂ドロップレットを積層し、ガラス上に微小な構造体をエッチングすることで運用上の実用性を示しました。溶媒の蒸発などの課題は残されていますが、プラットフォームはマイクロデバイスの構築に向けたエコシステムへと進化しています。直接操作するには小さすぎる物品のための新規ハンドリング手法と高精度な積層系を組み合わせることで、µRepRap はデジタル設計と物理的事象をマイクロレベルでつなげ、マクロスケールの 3D プリンタである RepRap がもたらした変革的影響力と同じようなものを実現しています。 ## Text to translate: The µRepRap project has successfully developed a compact CNC system using open-source principles to democratize micron-scale fabrication for individual users. The PIKA V0.02 hardware prototype achieves approximately 1µm repeatable positioning and reliable accuracy within an 8mm cubic volume, utilizing 400-step NEMA17 stepper motors and high-resolution optical microscopy (USB or benchtop). This system demonstrates operational viability by depositing UV resin droplets as small as 4µm via capillary action and etching microscopic features on glass. While challenges such as solvent evaporation remain, the platform is evolving into an ecosystem for constructing micro-devices. By combining precise deposition systems with novel handling methods for items too small for direct manipulation, µRepRap bridges the gap between digital design and physical reality at the micron level, mirroring the transformative impact of macro-scale 3D printers like RepRap.