並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 120件

新着順 人気順

llvmの検索結果1 - 40 件 / 120件

  • 元Google植山 類の“実装力”の源をSakana AI・秋葉拓哉が探る「集団開発のしがらみに、個人開発で殴りこむ」 - エンジニアtype | 転職type

    moldを作ったのは「大学院の単位を取るため」だった 秋葉:植山さんと最初に接点を持ったのは、僕がマウンテンビューのMicrosoft Researchでインターンをしていた時だったと記憶しています。エンジニアならば誰が見ても驚くような開発を成し遂げ続けているので、ぜひ詳しくお話を聞きたいと思い対談のリクエストをさせていただきました。 植山:ありがとうございます。初めてお会いした当時から、秋葉さんはプログラミングコンテストの上位ランカーで実力があって、おまけに話も上手かった。なかなか直接関わる機会はなかったけど、時流に乗ってディープラーニングに着手して活躍しているという話はよく耳にしていました。 秋葉:確かに、植山さんと知り合った頃はまだディープラーニングには手を出していなかったですね。今ではAIへと専門領域を移して久しいので、振り返ると長い時間が経ちました。 今回は、個人の力で優れたプロ

      元Google植山 類の“実装力”の源をSakana AI・秋葉拓哉が探る「集団開発のしがらみに、個人開発で殴りこむ」 - エンジニアtype | 転職type
    • 高速なPython互換言語「Mojo」のMac版登場、Appleシリコンにネイティブ対応。Pythonの9万倍、C言語に比肩する高速性

      高速なPython互換言語「Mojo」のMac版登場、Appleシリコンにネイティブ対応。Pythonの9万倍、C言語に比肩する高速性 Modular社はPythonの高速なスーパーセットと同社が位置づける開発中の新言語「Mojo」の、Appleシリコンにネイティブ対応したMac版をリリースしました。 Today is the day! Mojo for Mac is live! Download it right now! Read our launch blogpost on how to get startedhttps://t.co/XSMkqUmHKt — Modular (@Modular_AI) October 19, 2023 Mojoは9月に初めてローカル環境でコンパイルなどを実行可能なLinux対応のツール群を公開しています。今回のAppleシリコンにネイティブ対応した

        高速なPython互換言語「Mojo」のMac版登場、Appleシリコンにネイティブ対応。Pythonの9万倍、C言語に比肩する高速性
      • プログラマーがソースコード内に書いた「アスキーアート」図2000点以上を収集 使われ方を分析しデータベース化【研究紹介】 レバテックラボ(レバテックLAB)

        米カリフォルニア大学サンディエゴ校に所属する研究者らが発表した論文「Taking ASCII Drawings Seriously: How Programmers Diagram Code」は、ソースコード内で使用するアスキーアート(ASCII art)を収集し分析した研究報告である。 ▲ソースコード内で活用されたアスキーアートの一例 keyboard_arrow_down 研究背景 keyboard_arrow_down 研究内容 オープンソースのソフトウェア開発では、プログラマーがコードの中にアスキーアートを使って図を描き、アイデアを視覚的に表現することがよくある。アスキーアートはコードや自然言語では表現しにくい概念を視覚的に明快に説明でき、またコードよりも詳細度は低いものの、コードを理解するうえで「サムネイル」のような役割を果たす。 こうしたアスキーアートは、実際のソフトウェア開発

          プログラマーがソースコード内に書いた「アスキーアート」図2000点以上を収集 使われ方を分析しデータベース化【研究紹介】 レバテックラボ(レバテックLAB)
        • Python普及しろ協会に入会したい

          この記事はタナイ氏によるPython滅ぼす協会に入会したいを読んでから執筆したものです。 この記事の趣旨はPython滅ぼす協会に入会したいに対する反論という形をとりながら、タナイ氏により「バカの言語」と揶揄され、「使ってエンジニアを名乗るというのは」「滑稽」とまで言われたPythonの立場を再考することです。 追記 本記事は「Pythonはこれだけ優れた言語だからみんな使おう!」というものではなく「言うほど酷くないと思うよ」程度のものです。 型アノテーションがあるからと言って静的型付けを軽視しているわけでもなければ、map関数をもってmapメソッドを不要だと言っているわけでもありません。 この記法は嫌い〜この記法が好き〜と表明することは個人の自由ですが、同様に「この記法は実はこういう意味があって〜」という意見があればそれを聞いた上で、物事を判断して欲しいです。もちろん、聞いても意見が変わ

            Python普及しろ協会に入会したい
          • 次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは?

            次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは? 機械学習やAI処理の分野を中心に非常に高い人気のプログラミング言語である「Python」の次期バージョンに、処理速度の向上を目指したJITコンパイラが搭載される見通しです。 このJITコンパイラは、PythonコアデベロッパーのBrandt Bucher氏が提案し、実装しています。 そしてPython Software FoundationのフェローであるAnthony Shaw氏がブログ「Python 3.13 gets a JIT」で、このJITコンパイラについて解説しています。 これらの情報を元に、PythonのJITコンパイラがどのように実装されようとしているのか、少し紹介していきましょう。 RubyもJavaScriptもJITが高速化を実現してき

              次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは?
            • WebAssembly所感

              WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想 WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 Webサンドボックス JavaScript および asm.js Javaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

                WebAssembly所感
              • 高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita

                アリスは驚きと興奮を抑えきれませんでした。彼女はすぐに新しいコードを試し、その速さに目を見張りました。今まで数時間かかっていた計算が、ほんの数分で終わったのです。 翌日、アリスはこの発見を友人たちに話しました。友人たちも同じように魔法の本を使い、彼らのコードを高速化しました。こうして、プログラミング王国全体で「JITの魔法の本」が広まりました。 やがて、アリスは王国のプログラミング大会で優勝し、JITの魔法の本の力をさらに広めることになりました。彼女は「JITの守護者」として称えられ、プログラミング王国はかつてない繁栄を迎えました。 アリスはいつも心に誓いました。どんなに強力なツールも、それを使う人々の努力と情熱があってこそ、本当の力を発揮するのだと。彼女の言葉は次世代のプログラマーたちに伝わり、JITの魔法の本は永遠に受け継がれていくのでした。 前回のあらすじ。 Python count

                  高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita
                • WebAssembly の過去・現在・未来 - Qiita

                  はじめに WebAssembly (略して Wasm) では WASI や WIT、 Component Model など様々な仕様があります。 それぞれが登場した背景、モチベーションなどを理解することでなんとなく概要を掴んでいくことができるのではないかと考えたため、過去・現在・未来と時間軸で整理してみました。 まず Wasm とその特徴に関して簡単に紹介した後、Wasm の過去として生まれた背景やモチベーションを紹介します。 そして現在の Wasm がなぜ注目を集めているのか、そして現在策定中の仕様と目指している未来について紹介します。 WebAssembly とはなにか WebAssembly はスタックベースの仮想マシン用バイナリ命令フォーマットの仕様です。Wasm と略されます。 Wasm ファイル(Wasm モジュール)は一般に .wasm という拡張子で表されるバイナリファイル

                    WebAssembly の過去・現在・未来 - Qiita
                  • Z80+C言語で16ビット機級の本格的なゲームが創れるゲーム機(VGS-Zero)を作ってみた - Qiita

                    はじめに 2024年1月1日に VGS-Zero (Video Game System - Zero) という RaspberryPi Zero 2W のベアメタル環境で動作するオリジナルのゲーム機エミュレータと SDK を公開しました。 VGS-Zero は、RaspberryPi Zero 2W をテレビに HDMI ケーブルで接続し、USB ゲームパッドで遊ぶタイプ(据え置き型)の新しいゲーム機です。 無料でゲームを開発&販売ができる SDK も公開していて、開発したゲームを完全ロイヤリティフリーで自由に販売して頂くことができます。 なお、OS は Linux ではなく独自カーネルです。 特徴 VGS-Zero の特徴について、カーネル視点とゲーム機視点の両面から解説します。 独自カーネルの特徴 ラズパイ全般(※Picoを除く)は Linux で動かすのが一般的ですが、VGS-Zer

                      Z80+C言語で16ビット機級の本格的なゲームが創れるゲーム機(VGS-Zero)を作ってみた - Qiita
                    • WasmLinux: WebブラウザでLinuxカーネルとBusyBoxを動かす(エミュレーションなしで)

                      WebブラウザでOS動かしてどうすんだよ という根源的な疑問に回答が無いままとりあえずできちゃった。。 ※ コマンドが終了してもプロンプトが出ません。Enterを空打ちする必要があります (バグ) WasmLinuxは、WebAssembly "ネイティブ" なLinux環境です。カーネルもユーザーランドも、WebAssemblyのツールチェインでコンパイルされたWebAssemblyモジュール(をwasm2cでCにしたもの)です。 前回はカーネルしか動いていなかったんですが、今回はブラウザ上で ifconfig lo up して ping 127.0.0.1 したり top したり vi したりできます。BusyBox入ってるので。 ただしまだ実用性は皆無 です。Proof of Conceptって奴ですね。 前回の記事: 今回はMUSL libcを移植してBusyBoxが動くようになっ

                        WasmLinux: WebブラウザでLinuxカーネルとBusyBoxを動かす(エミュレーションなしで)
                      • 「LLVM lld」「mold」が解決した、リンクが遅い問題 間違った思い込みの解消に必要だったのは“クレイジーな人”

                        Blue Whale Systems株式会社の植山類氏は、「LLVM lld」「mold」が解決したプログラムのビルドの問題を例に、“大きな問題”を解決することについて話しました。全3回。 1個の本質的な問題を解いてしまうほうが細かいことを考えるよりも簡単 植山類氏:では始めます。本日、機会をいただいて講演をすることになった植山と申します。この講演の内容は「大きな問題のほうが小さな問題より解くのは簡単だ」というタイトルです。 どういう趣旨かというと、常に簡単だというわけではないのですが、いろいろな場面で、1個の本質的な問題をドッカンと解いてしまうほうが、いろいろな細かいことを考えるよりも簡単なことが多いという話です。 そういうソリューションが往々にして見逃されがちということがけっこうあって、そういうことにどうやって挑戦していくのかという気持ちの話を、僕がそういう大きな問題を解決した経験を踏

                          「LLVM lld」「mold」が解決した、リンクが遅い問題 間違った思い込みの解消に必要だったのは“クレイジーな人”
                        • WebAssemblyへのコンパイルだけに特化した新言語「Onyx」登場

                          米Wasmer社が、WebAssemblyへのコンパイルだけに特化した新しいプログラミング言語「Onyx」をブログで紹介しています。 Onyxは(Wasmer社ではなく)Brendan Hansen氏が開発に3年を費やしたプログラミング言語です。 (2023/12/13 お詫びと訂正。当初OnyxをWasmer社が開発したと紹介していましたが、Wasmer社とは直接関係のないBrendan Hansen氏が開発した者でした。お詫びして訂正します。タイトルと本文の一部を修正しました) We're so excited about Onyx . A new programming language which solely compiles to #WebAssembly. Read all about it in our new blogpost:https://t.co/L6yZ9Ls5Q

                            WebAssemblyへのコンパイルだけに特化した新言語「Onyx」登場
                          • Rustで作るプログラミング言語 ——コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

                            この本の概要 小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人 第1章:プログラミング言語概論 プログラミング言語の分類 他の切り口での分類方法 コンパイルパイプライン 第2章:スタックベース仮想マシン 仮想マシン概論 Rustでの実装 標準入力からの読み込み パースとコマンドの実行 ブロックとネスト構造 if制御構文 変数の定義 複数行のソースコードへの対応 関数呼び出し 関数の再帰呼び出し WebAssemblyへのコンパイルとブラウザでの実行 第3章:プログラミング

                              Rustで作るプログラミング言語 ——コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
                            • キャリアと給料 - たにしきんぐダム

                              (自分の気持ちを整理するために考えをダンプしただけの雑文です) 日本のエンジニア達は海外に出なければいけない|Kei というブログを見た。日本より海外の方がソフトウェアエンジニアの給料が一般に高いので海外に行こうという話 僕は今ポーランドの会社にコンパイラエンジニアとして(日本からリモートで)働いていて、コンパイラバックエンドやIDEなどの開発をフルタイムでしている。"海外" に関する話だけど上記ブログに載せられているスクショにはポーランドが見当たらないですね。 上記のブログのソースとなった Average Software Engineering Salaries by Country [2022] を見てみると、 Japan $36,024 に対して Poland $22,740 で日本のほうが200万円くらい平均が高い。実際、日本でフリーランスとしてWebアプリケーションとか書いてた

                                キャリアと給料 - たにしきんぐダム
                              • WasmLinux: LinuxカーネルをWebAssemblyにする

                                LinuxカーネルがWebブラウザで動いたらどう考えても面白い んだけど、そこに至るまではなかなか難しい道のりになる。その第一歩として、Linuxカーネルのユーザーランド版であるLKL( https://github.com/lkl/linux )をWebAssemblyにコンパイルして、wasm2cでC言語に変換した上、Visual Studio 2022でコンパイルしてWindows上で実行してみた。 まだWebブラウザでは動いていないが、思ったよりは簡単にWasmに移植できた(個人の感想です) ウケが良ければMUSL libc移植編 → デバイスドライバ活用編 → Webブラウザ上動作編と続ける感じで。。 EDIT: Visual Studioのスクリーンショットを撮りなおし。 memory-control はanonymousなmapしか救えないので、ここ数年スパンではエミュレーシ

                                  WasmLinux: LinuxカーネルをWebAssemblyにする
                                • Meta、LLMコンパイラを公開——AIがプログラミングの常識を変えるかも - BRIDGE(ブリッジ)テクノロジー&スタートアップ情報

                                  Image credit: Hugging Face Meta は、「Meta Large Language Model (LLM) Compiler」を発表した。Meta Large Language Model (LLM) Compiler は、コードを最適化し、コンパイラ設計に革命を起こすために設計された、堅牢でオープンソースのモデル群だ。この技術革新は、開発者がコード最適化に取り組む方法を変革し、より速く、より効率的で、費用対効果の高いものにする可能性を秘めている。 LLM Compiler を開発した研究者たちは、大規模言語モデル(LLM)をコードやコンパイラの最適化に適用する際に、これまで十分に検討されてこなかった重要なギャップに対処した。LLVM-IR とアセンブリコードの5,460億トークンからなる膨大なコーパスでモデルをトレーニングすることで、コンパイラの中間表現、アセン

                                    Meta、LLMコンパイラを公開——AIがプログラミングの常識を変えるかも - BRIDGE(ブリッジ)テクノロジー&スタートアップ情報
                                  • bpftraceによるGoアプリケーションのトレース|hayajo

                                    はじめにシステムの状態を的確に捉え、運用に必要なインサイトを継続的に得るための特性は「オブザーバビリティ」と呼ばれます。オブザーバビリティを実現することで、パフォーマンスのモニタリングやトラブルシューティングを効果的に行い、システムの信頼性を高めることができます。 この重要な特性を実現する上で、eBPFやbpftraceは強力なツールとなります。 本記事では、Goアプリケーションにおけるオブザーバビリティを実現するための一つの方法として、bpftraceを用いたトレースの手法を紹介します。 内容が多いため、目次を活用して段階的に読み進めることをお勧めします。 eBPFとbpftraceはじめに、eBPFとbpftraceについて簡単に説明します。 eBPFとはeBPF(Extended Berkeley Packet Filter)はLinuxカーネル内で動作する柔軟なプログラミングフレー

                                      bpftraceによるGoアプリケーションのトレース|hayajo
                                    • 第793回 自作のカーネルモジュールをRustで作る | gihyo.jp

                                      第791回では基本的なカーネルモジュールの作り方とそれをDKMSに対応させる方法を紹介しました。今回はカーネルの新しい機能のひとつである「Rustでカーネルモジュールを作る方法」を紹介しましょう。 UbuntuカーネルにおけるRustの対応 Linuxカーネルでは、Kernel 6.1からプログラミング言語である「Rust」の機能が取り込まれました。これは「Rust for Linux」の成果で、カーネルの機能をC言語やアセンブラだけでなく、Rustでも書けるようにするというものです。メモリー安全性や強い静的型付けなどの特徴を取り込むことで、カーネルのセキュリティ問題の原因の多くを占めるメモリー関連の不具合に対して、一種の対策になることが期待されます。 あらゆるケースにおいてRustに置き換えられるというわけではありませんが、今後カーネルのコードを読み書きする上でC言語やアセンブラだけでな

                                        第793回 自作のカーネルモジュールをRustで作る | gihyo.jp
                                      • MySQL 8.0 は遅くなってきてる?何故?(2)

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

                                          MySQL 8.0 は遅くなってきてる?何故?(2)
                                        • Rustがサポートするアーキテクチャ少なすぎる!

                                          「RustでLinuxカーネルモジュールを実装しよう!」とはしゃいできましたが、実は、X86-64とLoongArchという2つのCPUアーキテクチャしかサポートされていません。近いうちに、ARM64もサポートされそうですが、Linuxカーネルがサポートする大半のアーキテクチャで、Rustは使えません。 Linuxカーネルの標準コンパイラのGCCは、CのソースコードをLinuxカーネルがサポートする様々なCPUアーキテクチャ用の実行ファイルに変換することができます。一方、Rustの公式コンパイラがサポートを保証しているCPUアーキテクチャはARM64とX86、X86–64だけです。 Rustの公式コンパイラがサポートしているアーキテクチャが少なすぎるということで、別のコンパイラを試してみました。 Rustの公式コンパイラRustの公式コンパイラは、コンパイラを実装するための基盤的なソフトウ

                                            Rustがサポートするアーキテクチャ少なすぎる!
                                          • ZigでWriting an OS in 1,000 Linesをやる

                                            ZigでWriting an OS in 1,000 Linesをやる #2023-11-21 自作 OS で学ぶマイクロカーネルの設計と実装(通称エナガ本)の補足資料として公開されているWriting an OS in 1,000 Linesを、できるだけZigでやってみることにした。 目次成果物 #repositoryは以下。 さいしょに #エナガ本は一通り読んでいたのだが、機能に対していくつかのOSの実装を眺める。という構成になっており、個人的には「同じような難易度でRV32を対象に 0->1 でシンプルなOSを作る書籍があるといいなあ」と思いながら読んでいたのだが、まさに欲していたものが公開されたので大喜びで実装を開始した。 自分はそのまま写経してしまうと頭に入らないため、異なる言語で書いてみたり、何らかの制約を課して実施することが多い。今回はZigで書いてみることにした。 概ね問

                                              ZigでWriting an OS in 1,000 Linesをやる
                                            • LINE LLMをMacで動かす - きしだのHatena

                                              先日、LINE(現LINEヤフー)のNLP Foundation Devチームから日本語言語モデルが公開されました。(以降LINE LLMと表記します) 36億パラメータの日本語言語モデルを公開しました Instruction Tuningにより対話性能を向上させた3.6B日本語言語モデルを公開します でも「NVIDIAのGPUがないと動かないんでしょ」と、試していない人も多いんではないでしょうか。 そこでこのブログでは、MacでLINE LLMを動かす手順をまとめたいと思います。 Windowsや他のLLMでもほぼ同じ手順で動かせるはずです。 次のような手順で進めます。 pythonインストール ライブラリインストール 1.7Bのサンプルコードを動かす チャットインタフェースで1.7Bを動かす CTranslateによる3.6B llama.cppによる3.6B Pythonインストール

                                                LINE LLMをMacで動かす - きしだのHatena
                                              • Rustで有名アルゴリズムに挑戦(20) RustとTcl/TkでGUIアプリを作ろう

                                                普段使うツールをRustで作る場合、コマンドラインベースのものが多いと思います。それでも、Rustを使ってデスクトップアプリを作ることもできます。今回は、実績のあるGUIツールキットの「Tcl/Tk」をラップしたクレートを使って簡単なGUIを作成してみましょう。 Rustで単位変換ツールを作ったところ GUIツールキット「Tcl/Tk」のインストール Rustのライブラリを集約したcrates.ioを見ると、多くのGUIライブラリが存在します。Rustはさまざまな環境で動作することを想定していることもあり、「これこそGUIの定番」というものはありません。多くの選択肢があり、用途に応じて使い分けるのが正しい作法です。 WebブラウザベースのTauri、ゲーム開発と相性の良いegui、GTK+を利用するGTK-rs、Tcl/Tkをラップしたライブラリのtcl/tkなど、いろいろなクレートがあり

                                                  Rustで有名アルゴリズムに挑戦(20) RustとTcl/TkでGUIアプリを作ろう
                                                • なぜ成功者たちは一部の会社や地域に偏っているのか? “優秀だから”だけではない2つの要因

                                                  Blue Whale Systems株式会社の植山類氏は、「LLVM lld」「mold」が解決したプログラムのビルドの問題を例に、“大きな問題”を解決することについて話しました。全3回。前回はこちらから。 同じ人が何回も成功できる外部的要因と心理的要因 植山類氏:「では、挑戦していくにはどうしたらいいの?」という話をしようと思います。(スライドを示して)この人たちが誰だかわかりますか? まぁ偉い人たちなんですけど。右がケン・トンプソンという人で、「UNIX」の開発者です。左がロブ・パイクという人で、Go言語を作った人です。 この人たちは、ロブ・パイクは、僕のGoogleのオフィスのわりと近くで働いていて、見たことがあります。ケン・トンプソンも1回オフィスで見たことがあります。 この人たちはUNIXやGoを作っただけじゃなくて、他にもPlan 9というOSやInfernoというOSを作った

                                                    なぜ成功者たちは一部の会社や地域に偏っているのか? “優秀だから”だけではない2つの要因
                                                  • Rustで作る!自作言語・コンパイラ入門:学園生活研究部

                                                    Rustで自作言語とコンパイラを作るために必要な知識と実装手法を初心者向けに簡単に説明することを試みました。パーサコンビネータやLLVM関連のライブラリを利用し、Rustで自作言語やコンパイラ作りをやっていきます。

                                                      Rustで作る!自作言語・コンパイラ入門:学園生活研究部
                                                    • Kubernetesクラスタの可観測性の隙間を埋めるeBPF - LIFULL Creators Blog

                                                      KEELチームの相原です。 今回はeBPFを利用してKubernetesクラスタの可観測性の隙間を埋めている話です。 前回のエントリではLLMにうつつを抜かしていたので本業(?)の話をしようと思います。 www.lifull.blog LIFULLの可観測性の現在地 eBPFとは 可観測性の隙間 NAT Loopback eBPFを実行するには BPF CO-RE libbpf-rsを利用したNAT Loopbackの検知 1. (ユーザ空間) コマンドライン引数として受け取ったDNSをTTLごとに名前解決してIPアドレスを取得する 2. (ユーザ空間) IPアドレスに変化がある度にカーネル空間で動くBPFプログラムにそのIPアドレスのリストを渡す 3. (カーネル空間) Kprobesで tcp_v4_connect/tcp_v6_connect にフックを仕込む 4. (カーネル空間)

                                                        Kubernetesクラスタの可観測性の隙間を埋めるeBPF - LIFULL Creators Blog
                                                      • 自分が Moonbit 言語について知っていること

                                                        I will write an English version later to give back to the moonbit community. Addition: https://gist.github.com/mizchi/aef3fa9977c8832148b00145a1d20f4b この記事はリバースエンジニアリングを含んでいる。公式の Discord サーバーで質問して得られた内容を含むが、ここに書かれたものは自分の理解であって、公式の見解ではない。 前の紹介記事では煽り気味だったので、実際に調べながら書いてみてどう感じているかという実践的な話をする。 作者と開発組織 開発母体は深センの研究組織 IDEA 元 Meta で BuckleScript | ReScript を開発していた Hongbo Zhang 氏がチーフアーキテクト。 ReScript を知らない人の

                                                          自分が Moonbit 言語について知っていること
                                                        • Python 3.13 gets a JIT

                                                          Happy New Year everyone! In late December 2023 (Christmas Day to be precise), CPython core developer Brandt Bucher submitted a little pull-request to the Python 3.13 branch adding a JIT compiler. This change, once accepted would be one of the biggest changes to the CPython Interpreter since the Specializing Adaptive Interpreter added in Python 3.11 (which was also from Brandt along with Mark Shann

                                                            Python 3.13 gets a JIT
                                                          • MySQL アンカンファレンスを開催したい - tom__bo’s Blog

                                                            MySQL アンカンファレンス開催したい。というかします。 概要 最近のMySQLはバージョニング方針も変わって、周辺ツールを含めた機能追加も着々とされている一方で、MySQL関連のイベントは減ってしまったような気がします。 コロナ以降、イベントが少ない気がするのは残念に思いつつも、最近の私には社外で活動できる余力がなく、社内にMySQLのプロ、その他DBのプロがたくさんいるので、なんとなく満足してしまっていました。 ですが、MySQL Advent Calendar 2023でいろいろなブログを一気に読んでいて、社内の会話だけで満足するのはもったいない。2024年はMySQLコミュニティのイベントに参加していきたいと思っていました。 オフラインで集まることも以前ほど慎重にならなくて良いので、MySQL Casualを開催することもできます(手を上げれば誰でも開催できると思っていますし、私

                                                              MySQL アンカンファレンスを開催したい - tom__bo’s Blog
                                                            • Taming Floating-Point Sums | orlp.net

                                                              Suppose you have an array of floating-point numbers, and wish to sum them. You might naively think you can simply add them, e.g. in Rust: fn naive_sum(arr: &[f32]) -> f32 { let mut out = 0.0; for x in arr { out += *x; } out } This however can easily result in an arbitrarily large accumulated error. Let’s try it out: naive_sum(&vec![1.0; 1_000_000]) = 1000000.0 naive_sum(&vec![1.0; 10_000_000]) = 1

                                                              • 自動車業界初、プログラミング言語「Rust」を使用可能に…ドイツのVectorとHighTec | レスポンス(Response.jp)

                                                                ドイツのVectorとHighTec EDV-Systemeは8月6日、世界初となるRustアプリケーションとCベースのAUTOSAR Classic基本ソフトウェアの統合に成功した、と発表した。これにより、自動車業界でのプログラミング言語「Rust」使用における最後の障害が取り除かれたという。 VectorのMICROSAR Classic Safe基本ソフトウェアと、HighTecの自動車グレードLLVMオープンソースベースのRustおよびC/C++コンパイラツールを組み合わせることで、組み込み開発者はInfineon AURIX TC3xおよびTC4x向けにRustのメモリ安全性プログラミング言語を利用できるようになった。これらのツールは、ISO 26262のASIL Dまでの安全認証を受けている。

                                                                  自動車業界初、プログラミング言語「Rust」を使用可能に…ドイツのVectorとHighTec | レスポンス(Response.jp)
                                                                • Cassette

                                                                  Cassette is a small, Lisp-like programming language. It looks like this: import List import Math import Canvas import System let width = 800, height = 480, canvas = Canvas.new(width, height) canvas.text("Lines!", {200, 2}) System.seed(System.time()) def rand-line(i) do let x0 = Math.floor(i * width / 100), y0 = Math.rand-int(20, height / 10), x1 = Math.rand-int(0, width), y1 = Math.rand-int(20, he

                                                                  • Onyx, a new programming language powered by WebAssembly · Blog · Wasmer

                                                                    Back to articlesOnyx, a new programming language powered by WebAssemblyLearn about Onyx, a new imperative programming language that leverages WebAssembly and Wasmer for seamless cross-platform support What is Onyx? Onyx is a new programming language featuring a modern, expressive syntax, strict type safety, blazingly-fast build times, and out-of-the-box cross platform support thanks to WebAssembly

                                                                      Onyx, a new programming language powered by WebAssembly · Blog · Wasmer
                                                                    • 「Webに対して不満があるからWebブラウザに手を加える」は大げさか? 植山類氏が語る、“クレイジーなアイデアに挑戦する”ということ

                                                                      Blue Whale Systems株式会社の植山類氏は、「LLVM lld」「mold」が解決したプログラムのビルドの問題を例に、“大きな問題”を解決することについて話しました。全3回。前回はこちらから。 サーバーサイドのアプリケーションで分散処理をさせる必要は本当にあるのか? 植山類氏:「では、大きな問題って何?」という話で、いくつか例を挙げてみたいと思います。これは必ずしもそうするべきという話ではなくて、エンジニアリングはトレードオフなので、すべての選択肢に良いところもあれば悪いところもあります。 ただ、検討もしない、最初から考えてもみないというのは、それはそれで正しいエンジニアリングとは言えないので、気づきを与えるという意味で「こういうふうに考えてみることもできるんじゃないの」という話をいくつかしたいと思います。 このセッションを見ている方で、サーバーサイドのアプリケーションを書い

                                                                        「Webに対して不満があるからWebブラウザに手を加える」は大げさか? 植山類氏が語る、“クレイジーなアイデアに挑戦する”ということ
                                                                      • A new way to bring garbage collected programming languages efficiently to WebAssembly · V8

                                                                        A recent article on WebAssembly Garbage Collection (WasmGC) explains at a high level how the Garbage Collection (GC) proposal aims to better support GC languages in Wasm, which is very important given their popularity. In this article, we will get into the technical details of how GC languages such as Java, Kotlin, Dart, Python, and C# can be ported to Wasm. There are in fact two main approaches:

                                                                        • レッドハット、「Red Hat Enterprise Linux 9.4」を一般提供--「RHEL 7.9」に4年間の追加サポートも

                                                                          レッドハット、「Red Hat Enterprise Linux 9.4」を一般提供--「RHEL 7.9」に4年間の追加サポートも Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 編集部 2024-05-02 10:03 Red Hatは米国時間5月1日、同社OSの最新版「Red Hat Enterprise Linux(RHEL)9.4」をリリースした。また、「RHEL 7.9」のサポートを4年延長することも発表した。 他のバージョンのRHELではこのような延長サポートは期待できないだろう。CanonicalがUbuntuの長期サポート(LTS)版に12年間のサポートを提供しているのとは異なり、Red Hatは「RHEL 7 Extended Life Cycle Support(ELS)」に1回限りの4年間の追加サポートを

                                                                            レッドハット、「Red Hat Enterprise Linux 9.4」を一般提供--「RHEL 7.9」に4年間の追加サポートも
                                                                          • Progress toward a GCC-based Rust compiler [LWN.net]

                                                                            This article brought to you by LWN subscribersSubscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible. The gccrs project is an ambitious effort started in 2014 to implement a Rust compiler within The GNU Compiler Collection (GCC). Even though the task is far from comp

                                                                            • 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 がリリース
                                                                              • RubyKaigi 2024に参加できて本当に良かった - joker1007’s diary

                                                                                RubyKaigi 2024に参加してきました。 今回参加までに紆余曲折あったので、一時は参加を諦めていたんですが、何とか無事参加することが出来ました。 2011年に初参加して以来休まず参加していたので、ついに連続参加が途絶えるのかと思ってましたが、無事連続参加を達成できて嬉しい限りです。 今回はそういう事情もあってか、コミュニティとの繋がりを強く感じることができたRubyKaigiでした。 色々思いが溢れてしまって、技術的に楽しかったこと、自分が嬉しかったこと、参加前の事情とか全部書いてたらえらい分量になってしまいました。気が向いたら目に付いたところだけ読んでくださいw 参加前 そもそも何があったかというと、大体去年の12月ぐらいから咳が止まらなくなり、更に年明けぐらいに高熱が出た上で咳が出続けている状態でした。 余りに咳が酷かったので、喉に傷が付いた後胃酸が逆流したりして声帯の近くに潰

                                                                                  RubyKaigi 2024に参加できて本当に良かった - joker1007’s diary
                                                                                • Biscuit Language

                                                                                  Biscuit Language The Biscuit Language (BL) is simple imperative programming language using LLVM backend implemented in C. Language syntax and all it's features are still in development and not ready for 'real' use yet. Biscuit is designed to be simple, fast and explicit. Simple small language. Manual memory management. ABI compatibility with C libraries. Game development oriented. Compilation to n