MENU
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
PCやMacの性能を100%発揮
ソフトアンテナ
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
ソフトアンテナ
  • このブログに関して
  • 特集アーカイブ
    • Windows更新情報
    • Windows11使いこなし
    • Windows 10使いこなし
    • macOS/iOS/iPadOS更新情報
    • macOS使いこなし
    • iOS使いこなし
    • Webブラウザ更新情報
  • ソフトウェア
  • Windows
  • Mac
  • iOS
  • セール
  1. ホーム
  2. ソフトウェア
  3. Apple、Swift Systemをオープンソース化しLinuxをサポート

Apple、Swift Systemをオープンソース化しLinuxをサポート

2020 9/28
ソフトウェア
2020年9月28日 2020年9月28日
  • URLをコピーしました!

S 20200928 103328

Appleは9月25日(現地時間)、システムコールや低レベルな通貨タイプへの一貫性のあるインターフェイスを提供する「Swift System」をオープンソース化し、Linuxのサポートを追加したことを発表しました(Phoronix)。

元々SwiftはC言語へのインターフェイスをサポートしていますが、SwiftからインポートしたC言語のAPIを使用する場合、エラーが発生しやすく、扱いづらいという問題が存在しました。例えばLinuxやAppleプラットフォームのようなUNIX風システムでopenシステムコールをインポートすると以下のようになります。

func open(_ path: UnsafePointer, _ oflag: Int32) -> Int32
func open(_ path: UnsafePointer, _ oflag: Int32, _ mode: mode_t) -> Int32

関数は型付けが弱く、Swiftの表現力と型の安全性を利用することができないという問題が存在します。

Swift Systemはこの問題を解決するためのもので、例えば、FileDescriptor名前空間ではデフォルトの引数を持つ静的関数としてopenシステムコールを以下のように定義しています。

extension FileDescriptor {
  /// Opens or creates a file for reading or writing.
  ///
  /// - Parameters:
  ///  - path: The location of the file to open.
  ///  - mode: The read and write access to use.
  ///  - options: The behavior for opening the file.
  ///  - permissions: The file permissions to use for created files.
  ///  - retryOnInterrupt: Whether to retry the open operation
  ///    if it throws `Errno.interrupted`.
  ///    The default is `true`.
  ///    Pass `false` to try only once and throw an error upon interruption.
  /// - Returns: A file descriptor for the open file
  ///
  /// The corresponding C function is `open`.
  public static func open(
    _ path: FilePath,
    _ mode: FileDescriptor.AccessMode,
     options: FileDescriptor.OpenOptions = FileDescriptor.OpenOptions(),
     permissions: FilePermissions? = nil,
     retryOnInterrupt: Bool = true
  ) throws -> FileDescriptor
}

C言語をインポートした関数と比較すると、強力な型が使われていて、エラーがコンパイル時に検出することが可能となっています。また例外は標準の言語メカニズムによってスローされます。

Swift Systemはプラットフォームごとの能力に応じて、個別のAPIと動作を提供するマルチプラットフォームライブラリです。現在全てのシステムコールがサポートされているわけではありませんが、Appleは今後カバー範囲を拡大し、Windows用のSwiftにも継続して取り組むと説明しています。

ソフトウェア
Swift
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • Windows 10の設定アプリでMicrosoft Edgeのプロモーションが開始
  • 【10/2まで】Kindleストアで全巻100円の『侍ジャイアンツ』 フェアが開催中

関連記事

  • PowerToys 0.67.0がリリース - Quick access system tray launcherが追加
    2023年2月2日
  • elementary OS 7が正式リリース - アプリ入手性の改善や設定の改良など新機能多数
    2023年2月1日
  • AutoHotkey v2が正式に主要バージョンに
    2023年1月30日
  • 画面録画機能を搭載したMicrosoftの「Snipping Tool」の正式公開が一歩近づく
    2023年1月30日
  • M1/M2/Intel MacでWindows 11を実行できる「UTM 4.1」
    2023年1月29日
  • Microsoft、プロジェクト「Phoenix」でEdgeブラウザを刷新
    2023年1月28日
  • OpenCore Legacy Patcher 0.6.1がリリース - 非互換MacでmacOS Venturaを動かすためのツール
    2023年1月26日
  • Windows Terminal Preview 1.17がリリース - Micaサポートとプロセス再起動など
    2023年1月26日
スポンサーリンク
サイト内検索
特集アーカイブ
  • Windows更新情報
  • Windows11使いこなし
  • Windows 10使いこなし
  • macOS/iOS/iPadOS更新情報
  • macOS使いこなし
  • iOS使いこなし
  • Webブラウザ更新情報
Feedlyに登録

登録お願いします!

follow us in feedly

人気記事
  • Lp logo 3 1000x657 質問に対し流暢な日本語で回答してくれる「ChatGPT」が公開 - 試し方はこちら
  • S 20230125 112030 Microsoft Edgeに「ウィンドウの分割」機能が導入。2つのページを同時に閲覧可能に
  • S 20221123 111042 Windows 11のタスクトレイ時計の秒表示を有効にする方法
  • S 20221206 204658 メニューバーから対話できる「ChatGPT for Mac」がリリース
  • S 20210923 114221 Windows 11で「管理ツール」を開く方法
  • S 20220219 172234 【Tips】iPhoneで撮影した特定の写真だけをiCloudに保存する方法
  • Img3File M1/M2/Intel MacでWindows 11を実行できる「UTM 4.1」
  • S 20230127 111050 Windows 11 Version 22H2用のプレビューアップデートKB5022360が公開 - タスクバー検索やIMEの不具合修正
  • Mac mini M2 2023 【悲報】M2搭載ローエンドMac miniとMacBook ProのSSD速度は前世代より低下
  • S 20230119 111028 Microsoft、Windows 11 22H2でシステムの復元ポイントがアプリを破壊する事を確認
カテゴリー
タグ
Amazon Android App Apple applewatch appsale Chrome Edge Firefox Git Github Google iOS iPad ipados iPhone iPhone6 iphone7 iphone8 iTunes JavaScript Kindle Linux Mac MacBook MacBookPro macos Microsoft Nintendo OS X OSX Parallels Rails Ruby Sale Steam Swift Twitter VMware Windows windows7 windows10 windows11 Wine Yosemite
新着記事
  • AmazonでiPad Airが14%OFFになるタイムセールが実施中
  • 【悲報】Twitter APIの無償提供が2月9日に完全終了【更新】
  • あらゆる画像をベクター形式に変換できる「Super Vectorizer」がセール中の本日のアプリセールまとめ
src256
ソフトアンテナを開発しています。

Windows/Mac/Linux全部使用中。ソフトウェア、ハードウェアいろいろなモノに興味があります。

好きなエディタはEmacs。好きな言語はRubyです。


srcw.net
  • プライバシーポリシー

© 2022 ソフトアンテナ

目次