並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 28 件 / 28件

新着順 人気順

LLVMの検索結果1 - 28 件 / 28件

  • LLVMベースのPython実装で10~100倍の高速化を実現する、Codon 0.17 がリリース

    8月26日、Codonプロジェクトは新たなPython実装であるCodon 0.17をリリースした。 CodonはLLVMコンパイラインフラストラクチャを活用し、Pythonコードをネイティブマシンコードにコンパイルすることで、従来のPythonよりも10〜100倍の高速化を目指すオープンソースプロジェクトである。GitHubでも14,000以上のスターを獲得しており、開発者たちからの注目度の高さが伺える。 Codonは、Pythonコードのランタイムオーバーヘッドを回避し、C/C++のパフォーマンスに匹敵する速度を目指している。また、ネイティブのマルチスレッド処理をサポートしており、さらに高いパフォーマンスを引き出すことができる。 今回のバージョン0.17では、LLVM 17コンパイラを基盤とし、新たにfloat16、bfloat16、float128といった浮動小数点型のサポートが追加

      LLVMベースのPython実装で10~100倍の高速化を実現する、Codon 0.17 がリリース
    • Why am I writing a Rust compiler in C?

      To bootstrap Rust, no cost is too great. Perceptive Rustaceans may have noticed my activity has gone down as of late. There are a handful of different reasons for this. I’ve been the subject of a truly apocalyptic series of life events, including the death of a relative that rattled me to my core. I’ve had more responsibilities at work, leaving me with less time and energy to contribute. Maybe I’v

        Why am I writing a Rust compiler in C?
      • jscodeshift + OpenAI API でソースコード内の日本語文字列を一括で変換する - ROUTE06 Tech Blog

        こんにちは、ROUTE06 でソフトウェアエンジニアをしている@MH4GFです。 私が関わるリポジトリでの共通言語を日本語から英語に変えることになり、既存のコードベースに散在する日本語文字列を一括で変換する方法を模索しました。 最終的に jscodeshift と OpenAI API を組み合わせて一括置換することで解決できました。今回はその手法について紹介します。 スクリプトの概要 早速、主要なコード部分と詳細な説明を示します。 #!/usr/bin/env zx import OpenAI from "openai"; import jscodeshift from "jscodeshift"; // コマンドライン引数の解析 const argv = minimist(process.argv.slice(2), { boolean: ["dry-run"], alias: { d

          jscodeshift + OpenAI API でソースコード内の日本語文字列を一括で変換する - ROUTE06 Tech Blog
        • .NETでWebAssemblyの最新仕様「WASI Preview 2」対応コンポーネントを作れる「componentize-dotnet」、Bytecode Allianceがオープンソースでリリース

          .NETでWebAssemblyの最新仕様「WASI Preview 2」対応コンポーネントを作れる「componentize-dotnet」、Bytecode Allianceがオープンソースでリリース WebAssemblyの普及と発展を目的とするByteCode Allianceは、WebAssemblyのコンポーネントモデルである「WASI Preview 2」仕様に対応したコンポーネントを、C#などの.NETテクノロジーを使って開発できるツール「componentize-dotnet」をオープンソースとしてリリースしました。 WASI Preview 2はWebAssemblyのコンポーネントモデル WebAssemblyはもともと、Webブラウザ上で高速に実行可能なバイナリフォーマットとして登場しました。さまざまなプログラミング言語から生成可能なバイナリであり、OSやCPUに依

            .NETでWebAssemblyの最新仕様「WASI Preview 2」対応コンポーネントを作れる「componentize-dotnet」、Bytecode Allianceがオープンソースでリリース
          • 「Binary Hacks Rebooted」が出ます | 雑記帳

            今月(2024年8月)末にオライリージャパンから出る「Binary Hacks Rebooted」という本の執筆に、著者の一人として参加しました。私は主に浮動小数点数周りの記事を執筆しました。 O’Reilly Japan – Binary Hacks Rebooted(2024年) サポートリポジトリはこちらになります。サンプルコードなどを掲載する予定です。 oreilly-japan/binary-hacks-rebooted: 『Binary Hacks Rebooted』のサポートリポジトリ また、各Hackの中に踏み込んだ詳細な目次を以下のページで公開しています。購入に迷った際の判断材料にしてください。 Binary Hacks Rebooted 目次 | Akira Kawata オライリーの本は全ての書店に並ぶわけではありません。店頭で確認したい方は、オライリーの本を扱ってい

            • MySQL 8.0 は遅くなってきてる?何故?(2)

              前のエントリの続きです。 念を押しておきますが、このブログの「内容は個人の考えであって、所属組織とは方針が異なる」と考えてください。 さて、MySQL 8.0.xの単スレッド性能がどんどん遅くなってきた要因は幾つかありそうなので切り分けていきたいと思います。 まずは、数年前のエントリ「やはりC++はCよりも遅い?」の影響をできるだけ正確に見積もりたいところです。実行バイナリの最適化レベルを合わせて比較して初めて、ロジックの劣化が判るわけです。コンパイラのオプションの範疇でできるだけ最大の最適化を行って計測したいところです。いくつか試した結果、clangのPGO+LTO が手軽な中では最も効果があったのでそれで同じ計測をしてみましょう。(GCCのPGO+LTO と clangのPGOのみ はこれよりも少し劣ったのでとりあえず。) (補足) PGO は、一旦ターゲットとなる処理をプロファイリン

                MySQL 8.0 は遅くなってきてる?何故?(2)
              • Language Server Protocol from Debug Symbols

                Language Server Protocol from Debug Symbols August 12th, 2024 I was recently writing some Jai code and ran into a problem - no intellisense. Unfortunately Jai is a closed beta language and no one has yet written an extension that allows for features such as goto definition. Lack of intellisense makes me sad. Being able to tap F12 to goto any function is so helpful for learning your way around an u

                • Rambles around computer science

                  Diverting trains of thought, wasting precious time Tue, 27 Aug 2024 How to really wrap a C compiler and preprocessor, really* * really Suppose we want to interfere with how a vaguely Unix-style C compiler does its job, and that we want to try compiling existing software with this modified compiler. Assuming the build system will let us do something like: CC=/path/to/my/wrapper make or CC=/path/to/

                  • RubyKaigi Speakers

                    RubyKaigi Speakers Source Year Name Title 2006 Masayoshi Takahashi Ruby の歴史 2009 Masayoshi Takahashi Keynote Address: Ruby, Nihon Ruby-no-Kai and me 2011 Masayoshi Takahashi Ruby-no-kai Itself and Some Related Projects. 2013 Masayoshi Takahashi The History of Ruby;20th Anniversary Ed. 2019 Masayoshi Takahashi (partially) Non-volatile mruby 2006 井上 浩 NaCl のオープンソース戦略〜そして今後の Ruby 戦略に関して〜 2006 Yukihir

                    • Rust dylib rabbit holes | David Lattimore

                      Bevy is a popular game engine for Rust. It’s pretty large and compilation times can be an issue. To help with this, Bevy provides an optional feature that when enabled, compiles most of Bevy as a dynamic library. This allows for faster iteration as you don’t need to relink all the Bevy internals each time you rebuild. cargo run --features bevy/dynamic_linking I was experimenting with this from the

                      • Swift is a more convenient Rust • Naman Goel

                        I’ve been learning Rust lately. Rust is one of the most loved languages out there, is fast, and has an amazing community. Rust invented the concept of ownership as a solution memory management issues without resorting to something slower like Garbage Collection or Reference Counting. But, when you don’t need to be quite as low level, it gives you utilities such as Rc, Arc and Cow to do reference c

                          Swift is a more convenient Rust • Naman Goel
                        • Godot 3.6 finally released!

                          After 2 years of development, Godot 3.6 is finally out and it comes fully packed with features and quality of life improvements! This includes 2D physics interpolation and hierarchical culling, and 3D mesh merging, level of detail, tighter shadow culling, ORM materials, and more. While most of the development focus today is on 4.x releases, enthusiasts have been busy improving the 3.x branch: fixi

                          • Yocto Project 5.0.3 リリース

                            はじめに 2024/8/21 に Yocto Project 5.0.3 がリリースされました。 Yocto Project 5.0 のポイントリリースとなります。 所感 今回はカーネルについて大量の脆弱性対応がなされています。 最新版のリリース物 リポジトリ情報 poky Repository Name: poky Repository Location: https://git.yoctoproject.org/poky Branch: scarthgap Tag: yocto-5.0.3 Git Revision: 0b37512fb4b231cc106768e2a7328431009b3b70 Release Artefact: poky-0b37512fb4b231cc106768e2a7328431009b3b70 sha: b37fe0b2f6a685ee94b4af55f8

                              Yocto Project 5.0.3 リリース
                            • Cコンパイラを作ろうとしてみた

                              はじめにみなさま、夏休みを満喫しておられるでしょうか。はじめましての方ははじめまして、@cp20 です。ちなみにこの記事は夏のブログリレー 2024の4日目の記事です。今年は去年にも増してたくさんのブログが書かれそうで楽しみにしています。 さて、この記事ではCコンパイラを自作した話をしていきます。結局バグが取れずに惜しくも完成 (完成の定義は後述) しなかったのですが、完成の3歩手前ぐらいまでは作れたので、その中で得られた経験などを書き連ねていこうと思います。 重要な追記 (2024/08/23): 実は完成していました (詳しくは後述します) ちなみに成果物は↓のリポジトリから見れますので良かったら覗いてみてください。 自作Cコンパイラについてコンパイラとは世の中にはたくさんのプログラミング言語がありますが、その中でもコンパイル型言語と呼ばれるような言語 (CやRust、Goなど) はプ

                                Cコンパイラを作ろうとしてみた
                              • JVMでWebAssemblyにコンパイルしたRustのコードを動かす - きしだのHatena

                                Chicoryを使うとJVM上でWebAssemblyを動かせるということで、RustからWebAssemblyにコンパイルしたコードを動かしてみます。 このときはRustをLLVMビットコードにしてGraalVMで動かしていましたね。 GraalVMでRust動かしたりレイトレをネイティブコンパイルしたり - きしだのHatena Rustからwasmを作成 まずはRustのプロジェクトを作成。 >cargo new --lib hello-wasm Creating library `hello-wasm` package lib.rsというファイルが作成されてadd関数が定義されているので、no_mangleをつけてu64をi32にします。 #[no_mangle] pub fn add(left: i32, right: i32) -> i32 { left + right } そ

                                  JVMでWebAssemblyにコンパイルしたRustのコードを動かす - きしだのHatena
                                • Rust、今後の開発マイルストーンを発表 — 2024エディション、非同期Rust、Linuxカーネルサポートなどを含む26の目標

                                  この目標は、Rustプロジェクトが初めて試みる新しいロードマップ策定プロセスの一環とであり、今後も半年ごとにこのプロセスが繰り返される予定である。 特に注目すべきは、 3つの主力目標 が設定されている点だ。これらの目標は、 Rust 2024エディション、 非同期Rust(Async Rust)の使用体験を同期Rust(Sync Rust)に近づける こと、そして Linuxカーネルが安定版Rustでビルドできるようにすること が挙げられる。 Rust 2024エディション Rustのエディションとは、Rust言語の進化における主要な節目を示すもので、過去の互換性を保ちながらも新しい機能や改善を導入するための方法である。エディションは通常、数年に一度リリースされ、言語自体の進化を促すものとされている。 具体的には、エディションは以下のような役割を果たす: 新機能の導入:エディションでは、言

                                    Rust、今後の開発マイルストーンを発表 — 2024エディション、非同期Rust、Linuxカーネルサポートなどを含む26の目標
                                  • セキュリティ・キャンプ2024 ネクスト 応募課題晒し - Ran350’s Blog

                                    応募課題はこちらに記載されています。 公開にあたり内容は一部伏字にしています。 www.ipa.go.jp 選考のポイント 基本として、加点法で判断します。 自身の技術力ややってきたこと、発信してきたこと、何ができるかといったことなど、アピールしたい点を存分に記述してください。 多く書くことにより、「文章が長過ぎる・まとまりが無い・重複している・冗長」などとして減点するようなことはありません。失敗した経験や落選の結果を書くことや、「文章が洗練されていない」「誤字脱字がある」などによる減点もありません(文章や作文のテストではありません。内容を見ます)。アピールをいっぱい書いて、得をすることはあっても、損をすることはありません。自身がアピールしたいことを思い付くままにいっぱい書いて、アピールしてください。 いかにやる気があるか、参加できたらいかに頑張ることができるか、ということを「示して」くだ

                                      セキュリティ・キャンプ2024 ネクスト 応募課題晒し - Ran350’s Blog
                                    • 最強の数学文書システムを作りたい | 雑記帳

                                      数学の文書を書いてWebで公開したい時にはどうするのが良いでしょうか。私がこれまでにやってきたのは、 LaTeXで書いて、PDFとして公開する(例:https://miz-ar.info/math/continued-fractions.html) Markdownで書いて、Pandoc等でHTMLに変換し、MathJaxやKaTeXで数式を表示する(例:「週刊 代数的実数をつくる」) です。 しかし、PDFという形式はあまりWebには適しません。一方、Markdownでは数学の文書を書くうえで足りないものが多すぎます(定理環境や相互参照など)。 LaTeXは数学の文書を書くための語彙が豊富なので、LaTeXで原稿を書いて何らかの方法でHTMLに変換できると良さそうです。そのためのシステムを作りたいです。 形態 まずは単体の変換ツールとして作ることになると思います。Pandocみたいなイメ

                                      • セキュリティ・キャンプ2024 全国大会 参加記

                                        これは夏のブログリレー6日目の記事です。 こんにちは、22Bのjippoです。 先日開催された「セキュリティキャンプ2024全国大会」に参加してきたので、すごく久しぶりにブログを書いています。こんなにtraP民らしい記事を書くのは初めて...! 先に結論から書いておくと、参加できて本当によかったです。最高でした。 参加が決まるまで そもそも私がセキュキャンの存在を知ったのは1年前くらいで、応募したのは今年が初めてです。 去年は夏休みが暇すぎかつ暑すぎたせいでだいぶ気分が落ち込んだので、なんとか夏休みの予定を埋めようといろいろ申し込もうと思っていました。 とはいえ、セキュリティキャンプはめちゃくちゃ技術のある雲の上の人が行くものだと思っていたし、応募課題も重そうだったのでどうも踏ん切りがつかずにくねくねしていたところ、「応募を迷っている人は参加する素質がある」というようなツイート(ポスト)を

                                          セキュリティ・キャンプ2024 全国大会 参加記
                                        • Intel、AVX10.2のドキュメントを公開 ~ Core Ultraに搭載されるAVX-512の後継命令 - Nishiki-Hub

                                          3行まとめ IntelがAVX10.2拡張命令セットのドキュメントを公開しました。 AVX10 AVX10.2 今後の計画 関連リンク AVX10 Intelはベクトル演算や浮動小数点演算を強化するSIMD命令、AVX拡張命令を長らく前から実装していますが、現在、最もハイエンドなAVX命令はAVX-512です。しかし、このAVX-512には重大な2つの問題点があります。 1つ目が、バリエーションが多すぎること。AVX-512は、広範に使用できるように拡張されており、扱うデータやフォーマットによって実に10以上のバリエーションがあります。それらはフラグとして管理されており、厄介なのが製品ごとに、どの機能(フラグ)に対応しているかがバラバラでありとん雑になっています。 2つ目が、512bitレジスタを必須としていること。これは主にIntel Hybrid Technologyを採用しているAl

                                            Intel、AVX10.2のドキュメントを公開 ~ Core Ultraに搭載されるAVX-512の後継命令 - Nishiki-Hub
                                          • [Arch Linux] 外出先から家のPCを使いたい

                                            学校でUnityを使うことになりました。しかしノートPCのメモリが足りないのかUnityとVSCodeを起動するとカックカクになって作業にならないです。なので家のPCに接続してそこで作業すれば良いのでは?と考えました。通信速度によっては遠隔地にPCを画面を送るだけでカクついて見えそうですが取り敢えずやってみます。 やること VNC設定 SSHポートフォワーディング Wake-on-LAN 環境 サーバー側(家PC) OS: Arch Linux Kernel: x86_64 Linux 6.5.5-arch1-1 Uptime: 13m Packages: 2316 Shell: zsh 5.9 Resolution: 1920x1080 DE: KDE 5.110.0 / Plasma 5.27.8 CPU: AMD Ryzen 7 5700G with Radeon Graphics

                                              [Arch Linux] 外出先から家のPCを使いたい
                                            • 1000行のコードでOSがかけるらしいのでやってみた Part1 - Qiita

                                              概要 OSを1000行のソースコードで書くことができるという本を目にしたので、これに挑戦している記事です。 この記事を執筆している時点では完成させることができなかったため、Part1です。 この記事では、第5章のブートさせる箇所までを扱います。 こちらのページの内容をやっていきます。 https://operating-system-in-1000-lines.vercel.app/ja/welcome この記事を書いている人間について この記事ではもっぱらC言語で記述されたコードが書かれていますが私は普段Goを用いたサーバーサイドの開発を行っており、C言語には不慣れです。また、ITやソフトウェアに関する専門的な教育を受けたわけではないしがない職業プログラマーです。そのため、記述に不正確な箇所が含まれる場合があります。ご容赦ください。 OSとわたし OS、オペレーティングシステムというもの

                                                1000行のコードでOSがかけるらしいのでやってみた Part1 - Qiita
                                              • C++ std::strong_orderと浮動小数点数型totalOrder - yohhoyの日記

                                                C++20標準ライブラリのstd::strong_order関数オブジェクト*1は、IEEE 754準拠の浮動小数点数型に対する全順序比較(totalOrder predicate)を実装する。 #include <compare> #include <concepts> #include <iostream> #include <limits> #include <map> #include <string> template<std::floating_point T> struct totalOrder { static_assert(std::numeric_limits<T>::is_iec559); bool operator()(T x, T y) const noexcept { return std::strong_order(x, y) < 0; }; }; using

                                                  C++ std::strong_orderと浮動小数点数型totalOrder - yohhoyの日記
                                                • Armにおけるスタックフレームベースのバックトレース | Miraxia Edge Technology

                                                  課題 Armの32ビットアーキテクチャでは、アーキテクチャ仕様としてはスタックフレームベースのunwindingをサポートしておらず(AAPCSで定義はあるがmandatoryではない)、処理系によってできたりできなかったりします。具体的にはClangはThumb interworkを使わなければ実現可能で、GCCはT32(Thumb-2)のときほぼ動きません。 現実的なシチュエーションとして、Thumb-2サポートのあるArmv7以降のCortex-Mのベアメタル環境でランタイムにバックトレース表示を実現したいというとき、GCCではほぼできません。動く条件は-march=armv6mまたは-march=armv8m.baseまたはコンパイラ==Clangです。 Thumb interworkにおける本質的な困難 A32のフレームレジスタはr11でT32(Thumb-2)のフレームレジスタ

                                                  • 【C言語】算術オーバーフローと回避方法

                                                    本記事の信頼性 リアルタイムシステムの研究歴12年. 東大教員の時に,英語でOS(Linuxカーネル)の授業. 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校(UNC)コンピュータサイエンス学部で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発. プログラミング歴15年以上,習得している言語: C/C++,Python,Solidity/Vyper,Java,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM). 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開. 2020年1月~現在はアメリカのノースカロライナ州チャペルヒルにあるGuarantee Happin

                                                      【C言語】算術オーバーフローと回避方法
                                                    • 悔しさと情熱のあの夏 #fukuokark04|Uchio Kondo

                                                      あの夏に消えた下書き僕のnoteの管理画面にはこういう下書きがある。 何これ…数ヶ月の間公開されていない。 2024年5月15日からのRubyKaigi 2024には2年ぶりに登壇者として参加した。それでも、終わった時に残った感情としては悔しさが大きかった。 その時はmruby/edge と仮に名付けた(そういえば、mrubyを勝手に名乗っていいのか、Matzや石井さんに聞き忘れてた)このプロダクトの話をしたのだが、 パフォーマンスをちゃんと最初に測った自分は偉いと思うが(計測にこだわる、偉い)、そもそも比較として妥当かどうか含めもうちょっとプランを考えた方がいいだろう PoC部分は動いたがVMとしてサポートしてる命令がずいぶん少ない(それはRucyとかもまあそうだけど…) やりたいことについても、ruby.wasm の仕様の調整やmruby/cベースでの実現可能性をちゃんと検討したのかど

                                                        悔しさと情熱のあの夏 #fukuokark04|Uchio Kondo
                                                      • M1MacのDockerでSelenium使う方法(&使いたくてハマった話😵‍💫) - Qiita

                                                        DockerでSeleniumを使いたい! 「PythonでWebページ解析したいときにはSeleniumとBeautifulSoupを使うのが有名なんですね(?)」っていうレベル感かつ「Dockerもしっかり理解していない」私ですが、「Seleniumちょっとサクッと試してみるか、ライブラリimportすればすぐ使えるんでしょ😙?とりあえずDockerで動かしたいな。」くらいの感じで試したら、全くサクッとできませんでした... 解決策というほどでもありませんが、解決策とハマった内容の共有です! ※ 上記のようなレベル感なので、以下、間違い含んでいたり他にも解決策があるものと思われますが、ご容赦ください🙇‍♂️ ※2023-11-02 追記 以下の記事では「なぜM1 MacのDockerでSeleniumが動かないのか」が、詳細にまとめていただいていたので、参考にリンク貼らせていただき

                                                          M1MacのDockerでSelenium使う方法(&使いたくてハマった話😵‍💫) - Qiita
                                                        • Ubuntu 24.04: すべてのフレーバーのニュースとダウンロード

                                                          今日、25月XNUMX日は、カレンダーの発売日としてマークされました。 Ubuntuの24.04、そして、 私たちは去年の10月からそれを知っていました。新しいLTSバージョンで、コードネームは「Noble Numbat」です。 Ubuntu はオペレーティング システムであり、すでに 11 の公式フレーバーがあります。メインバージョンでは名前が付けられていないため、すべて「Ubuntu」ですが、それぞれに独自のカスタマイズがあり、その存在理由が存在します。 ベータ版 利用可能でした 2週間、7日遅れのため XZの問題。この問題はすでに解決されており、日付も過ぎているため、すべての公式フレーバーをダウンロードできるようになります。または、すぐにダウンロードできるようになる予定です。通常、リリースは同期されていますが、いずれかのチームが ISO イメージのアップロードや Web サイトの更新

                                                          1