並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 597件

新着順 人気順

コンパイラの検索結果241 - 280 件 / 597件

  • WebAssemblyに特化した言語「MoonBit」のコンパイラがGitHubで公開

    WebAssemblyに特化したプログラミング言語「MoonBit」のコンパイラが、GitHubで公開されたことを、開発元である中国広東省深セン市にある研究組織「International Digital Economy Academy (IDEA)」が発表しました。 Today is the day! The MoonBit compiler is now publicly available on GitHub! After 2 years of private development, we’re ready to build an open, collaborative community around MoonBit.https://t.co/M8y3e9rkn2 pic.twitter.com/BbJRLf7Vnm — MoonBit (@moonbitlang) Decemb

      WebAssemblyに特化した言語「MoonBit」のコンパイラがGitHubで公開
    • 『リンカー moldをいろんなターゲットに移植した話』を視聴してCPUやpsABIの世界を覗き見してみた #kernelvm

      Kernel/VM探検隊online part6 で Rui Ueyama 氏による『リンカー moldをいろんなターゲットに移植した話』のセッションを視聴し、普段は接点のないCPUやpsABIといった低レイヤーの世界を覗き見したので、メモを残しておきます。 動画 発表スライド Ruiさんは、LLVMのリンカlldの作者でもあり、過去には同勉強会のPart 2でもリンカについて発表されています。 超高速リンカmold 1/2 - ログミーTech 超高速リンカmold 2/2 - ログミーTech 今回も、前日に発表が決まったとはとても思えない、非常に濃い発表でした。 本テーマは筆者の普段の業務と大きく異なります。間違いなどがあればコメントで指摘していただけると助かります。 以下の様なキーワードが頻出します。 リンカ psABI ELF QEMU ISA RISC/CISC エンディアン

        『リンカー moldをいろんなターゲットに移植した話』を視聴してCPUやpsABIの世界を覗き見してみた #kernelvm
      • YJIT: Building a New JIT Compiler for CRuby - Shopify

        YJIT: Building a New JIT Compiler for CRubyA team of skilled engineers from Shopify and GitHub on YJIT, a new Just-in-time (JIT) compiler built inside CRuby. The 1980s and 1990s saw the genesis of Perl, Ruby, Python, PHP, and JavaScript: interpreted, dynamically-typed programming languages which favored ease of use and flexibility over performance. In many ways, these programming languages are a p

          YJIT: Building a New JIT Compiler for CRuby - Shopify
        • GitHub - chrisseaton/rhizome: A JIT for Ruby, implemented in pure Ruby

          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

            GitHub - chrisseaton/rhizome: A JIT for Ruby, implemented in pure Ruby
          • 原理原則で理解するPHP8のコンパイルと実行処理の仕組み(JITもあるよ) - Qiita

            はじめに PHPはプログラミング言語です。1995年に世に出てからこれまで多くの開発者に利用され、様々なソフトウェアを生み出してきました。 学習コストが低く手軽に実行できるトレードオフとして、バグを生み出しやすいコードになりやすかったりパフォーマンス上の懸念から大規模なアプリケーション開発に使うものではないという認識は結構あるのではないかと思っています。 しかしながら2021年現在の最新のメジャーバージョンであるPHP8では、機能面やパフォーマンス面においても大規模開発に対して十分使えるものになっていると個人的には思ってます。 今回は今PHPを使っている開発者やこれからPHPを使う予定の方、あるいは「PHPなんて興味ないけどどういう仕組みなのかは見てやろうじゃないか」と思っているような方にも、PHPの内部ってこういう感じで動いているんだっていうイメージを掴んで頂けたらと思って記事にしてみま

              原理原則で理解するPHP8のコンパイルと実行処理の仕組み(JITもあるよ) - Qiita
            • Rust 1.60を早めに深掘り - OPTiM TECH BLOG

              こんにちは、R&Dチームの齋藤(@aznhe21)です。 新オフィスは広くて快適です。 さて、本日4/8(金)にRust 1.60がリリースされました。 この記事ではRust 1.60での変更点を詳しく紹介します。 4/8は釈迦の誕生を祝う花まつりの日 ピックアップ コンパイル時間を計測できるようになった 機能(features)で名前空間付き・弱依存がサポートされた コード網羅率を計測できるようになった [u8]を文字列としてエスケープできるようになった 安定化されたAPIのドキュメント Arc::new_cyclic パニック サンプル Rc::new_cyclic パニック サンプル slice::EscapeAscii <[u8]>::escape_ascii サンプル u8::escape_ascii サンプル Vec::spare_capacity_mut サンプル Maybe

                Rust 1.60を早めに深掘り - OPTiM TECH BLOG
              • 難しい問題をコンパイラレベルで弾くことができるRustの並行処理 データ共有の有無から見る、2つのサンプルコード | ログミーBusiness

                Go、Python、Kotlin、Rust、TypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Rust編では鈴木文太氏が登壇。Rustの並行処理について、データ共有がないパターン、データ共有があるパターンそれぞれのコードを紹介します。 鈴木氏の自己紹介と、今日話すこと鈴木文太氏(以下、鈴木):よろしくお願いします。「Rustにおける並行処理」について発表していきたいと思います。私はGO株式会社の鈴木文太と申します。2021年6月に入社して、今はタクシー事業者向けの管理画面の開発などをやっています。 今回話すことについてですが、まずプロセスと並行・並列処理の基本について少しお話ししたあとに、スレッド間でデータ共有がない場合のRustのコードと、スレッド間

                  難しい問題をコンパイラレベルで弾くことができるRustの並行処理 データ共有の有無から見る、2つのサンプルコード | ログミーBusiness
                • チューリング賞、コンパイラ技術の開発に貢献した研究者2人に

                  コンパイラと呼ばれる重要なソフトウェア開発ツールがなければ、コンピューターを制御するために、人間には理解が難しい機械語の世界まで降りていく必要が生じていたことだろう。この功績を称えて、高い権威を誇るチューリング賞の2020年の受賞者に、コンパイラの開発に貢献したAlfred Aho氏とJeffrey Ullman氏が選ばれた。 計算機学会(ACM)は毎年チューリング賞の受賞者を選出し、100万ドル(約1億1080万円)の賞金を授与している。ACMによると、コンパイラ技術の先駆けとなったUllman氏とAho氏の共同研究は、1967年にAT&Tの著名な研究施設であるベル研究所で始まった。 現在、Ullman氏はスタンフォード大学の名誉教授で、コンピューターサイエンス関連のeラーニング企業Gradianceで最高経営責任者(CEO)を務めている。Aho氏はコロンビア大学の名誉教授だ。

                    チューリング賞、コンパイラ技術の開発に貢献した研究者2人に
                  • TypeScript Compiler API で型を自動生成する仕組みを TDD で実装する

                    Compiler API で yaml から型を自動生成する この記事は TypeScript Compiler API を実際に使って TypeScript の型を自動生成する方法を紹介しています。 記事内では Google Analytics のイベントの型の自動生成にトライしています。 題材として GA を選んだのは、以前 Next.js に Google Analytics(GA) を導入する方法を紹介した記事でGA のイベントで使う型を yaml から自動生成するのはどうか と書いていたからです。 正直なところ、GA のイベントに馴染みのない方もいらっしゃると思うので、最初はもっと一般的な例にしようかなとも考えました。 しかし、一般的なことを例に挙げると「ふーん、便利だね」という感想で終わってしまい、業務で自分が使うようなイメージが湧かないかもしれないと考えました。 そこで、あえ

                      TypeScript Compiler API で型を自動生成する仕組みを TDD で実装する
                    • YJIT: CRuby向けの新しいJITコンパイラを構築する(翻訳)|TechRacho by BPS株式会社

                      概要 Shopify Engineeringの許諾を得て翻訳・公開いたします。本記事は公開前にShopify Engineeringにレビューをいただいています。 英語記事: YJIT: Building a New JIT Compiler for CRuby — Development (2021) 原文公開日: 2021/10/14 原著者: Maxime Chevalier サイト: Shopify Engineering 画像は元記事のものです(追記2021/11/04: 冒頭イラストを削除いたしました)。 本記事はTwitterにて@shiroemonsshiromemonsさまからのリクエストを受けて翻訳いたしました。リクエストありがとうございます! なお、以下のissue #18229で、著者のMaxime Chevalierさんをコミッターに迎えるプロポーザルが出され、そ

                        YJIT: CRuby向けの新しいJITコンパイラを構築する(翻訳)|TechRacho by BPS株式会社
                      • Memory Allocation

                        One thing that all programs on your computer have in common is a need for memory. Programs need to be loaded from your hard drive into memory before they can be run. While running, the majority of what programs do is load values from memory, do some computation on them, and then store the result back in memory. In this post I'm going to introduce you to the basics of memory allocation. Allocators

                          Memory Allocation
                        • Codon: Python compiler takes scripts to C/C++ speeds

                          Python is among the one of the most popular programming languages, yet it's generally not the first choice when speed is required. While it can be optimized for better performance, Python is prized for qualities other than speed, such as readability, a manageable learning curve, an expansive ecosystem, and utility in both academia and business. MIT computer scientists and their colleagues, however

                            Codon: Python compiler takes scripts to C/C++ speeds
                          • Why LSP?

                            Why LSP? Apr 25, 2022 LSP (language server protocol) is fairly popular today. There’s a standard explanation of why that is the case. You probably have seen this picture before: I believe that this standard explanation of LSP popularity is wrong. In this post, I suggest an alternative picture. Standard Explanation The explanation goes like this: There are M editors and N languages. If you want to

                            • TypeScript Compiler APIを活用してi18nの不整合をチェックする - Commune Engineer Blog

                              こんにちは。業務委託としてコミューンのグローバルチームでエンジニアをしているhiro08と申します。 グローバルチームでは主に海外展開に向けた開発や施策を行なっています。もし、グローバルチームに興味のある方は日本のSaaSスタートアップが世界で戦うためのプロダクトを開発するということも一読ください。 今回はグローバルチームでの開発の一部として、TypeScript Compiler APIを活用したi18nの不整合をチェックするツールを作成したお話をしようと思います。 背景 海外展開に向けた開発でまず思いつくのがi18n (多言語化) 対応ではないでしょうか。コミューンのプロダクトではi18nの対応が完了しており、すでに運用フェーズに入っています。 しかし、運用していく中で対訳データのキーやネームスペースの不整合に気づく仕組みがないことが課題点として挙がってきました。 i18nでは、ネーム

                                TypeScript Compiler APIを活用してi18nの不整合をチェックする - Commune Engineer Blog
                              • Rustプログラム解析入門

                                この記事は、KMCアドベントカレンダー2022の3日目(12/3)の記事です。(執筆時点で10日の大遅刻。ごめんなさい!) 2日目の記事はkypさんの「2022年のNuitaにやったこと」です。 4日目の記事はwassさんの「ショートカットでコマンドを入力すると、どんな環境でもそこそこ便利になる」です。 この記事の対象読者 Rustやrustcに興味がある方 言語処理系, プログラム解析に興味がある方 はじめに 昨年夏にRustプログラムの解析方法について、KMC内でハンズオンを行いました。そこでRustプログラムの解析ツール minippy (GitHub) を自作し、参加者の方々にソースコードを改造して遊んでもらいました。この記事は、前半ではRustプログラムの解析方法について説明し、後半では解析ツール minippy のソースコードを解説します。 プログラムの解析とは? まず、プログ

                                • GitHub - CDSoft/luax: luax is a Lua interpreter and REPL based on Lua 5.4, augmented with some useful packages. It is also a "compiler" that produces standalone executables from Lua scripts.

                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                    GitHub - CDSoft/luax: luax is a Lua interpreter and REPL based on Lua 5.4, augmented with some useful packages. It is also a "compiler" that produces standalone executables from Lua scripts.
                                  • 正規表現とは何なのか、makenowjustが正規表現に興味を持ったきっかけ。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.1 - STORES Product Blog

                                    2023年6月15日に『深掘りRubyKaigi 2023 with spikeolaf & makenowjust』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第1部です。 hey.connpass.com イベントのアーカイブはYouTubeでも公開しています。 www.youtube.com 登場人物 ゲスト makenowjust/藤浪 大弥さん spikeolaf/金子 雄一郎さん STORES fujimura/藤村 大介 shyouhei/卜部 昌平 hogelog/小室 直 正規表現に興味を持ったきっかけ fujimura:最初は藤浪さん、makenowjustさんに正規表現の発表について伺おうと思います。まずは改めてRubyKaigi 2023でどんなことを発表したかを紹介いただけないでしょうか? makenowjust:Rubyの正規

                                      正規表現とは何なのか、makenowjustが正規表現に興味を持ったきっかけ。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.1 - STORES Product Blog
                                    • Introducing Triton: Open-source GPU programming for neural networks

                                      Triton makes it possible to reach peak hardware performance with relatively little effort; for example, it can be used to write FP16 matrix multiplication kernels that match the performance of cuBLAS—something that many GPU programmers can’t do—in under 25 lines of code. Our researchers have already used it to produce kernels that are up to 2x more efficient than equivalent Torch implementations,

                                        Introducing Triton: Open-source GPU programming for neural networks
                                      • 自作Goコンパイラでマルチスレッドが動くようにするまで

                                        自作Goコンパイラ babygo でマルチスレッドを動かすこと(=子スレッドの作成)に成功しました。 実は以前に挫折していた 1年半前に 一作目のGoコンパイラ minigo でもマルチスレッドに挑戦したことがあるんですが、そのときは子スレッド生成後すぐに Segmentation Faultが起きてしまい、解決方法わからずあきらめたのでした。(動かなかった syscall cloneの残骸 https://github.com/DQNEO/minigo/blob/5ab7420fbca2f65d81bc761d5cbe51a2b28953a8/internal/runtime/runtime.s#L41-L61 ) (当時は gdb でステップ実行すると他のスレッドも処理が進むということを知らなかったので、ただただ謎の挙動にしか見えなかった) 今回やったこと 今回は以下のように要素技術を

                                          自作Goコンパイラでマルチスレッドが動くようにするまで
                                        • mold: modern linker

                                          mold: modern linker Rui Ueyama

                                            mold: modern linker
                                          • 自作軽量 TS コンパイラが tsc より高速になった / mints v0.1

                                            実際、コード量に比例して遅くなります。 これは tokenize のステップがなく、すべての構文ルールが正規表現を個別に実行するのが遅い理由でした。またそのせいで空白制御のために構文定義が冗長になっていました。 そのため、事前に tokenize ステップを用意し、pargen を事前に分割された token 列を受け取るパーサコンビネータとして再実装しました。(元の pargen はあれはあれで使いやすいので別実装になってます) mints v0.1 の ベンチマーク 試した環境は MacBookPro M1 Max 64GB です。 --------- 2416chars [tsc] 58ms [esbuild] 14ms [mints] 6ms [mints_para] 12ms --------- e2981chars [tsc] 14ms [esbuild] 1ms [mints

                                              自作軽量 TS コンパイラが tsc より高速になった / mints v0.1
                                            • プログラマを育てる脳トレパズル 遊んでおぼえるPythonプログラミング&アルゴリズム | 翔泳社

                                              最初から最後まで、遊びっぱなし。 でも、「使えるコード」が書けるようになります。 【本書の特長】 <<遊び感覚でプログラミングとアルゴリズムをおぼえよう!>> ・イチからPythonのプログラミングとアルゴリズムがわかる ・ゲームをつくりながら基本を理解できる ・パズル問題で実践的なコードの書き方が身につく ・環境構築不要のGoogle Colaboratoryですぐ始められる ・パズル問題の解答はPythonに加え、JavaScriptとRubyのコードも提供 【内容紹介】 楽しくなきゃ、プログラミングじゃない! プログラミングを学ぶとき、 言語の文法などを勉強するのは退屈なものです。 何かつくりたいものがあり、 それを自分の手でつくることが 達成感となり、楽しさにつながります。 本書でも一般的なプログラミングで 必要な要素がひと通り登場しますが、 簡単なゲームをつくりながら基本をおぼえ

                                                プログラマを育てる脳トレパズル 遊んでおぼえるPythonプログラミング&アルゴリズム | 翔泳社
                                              • Hideyuki Tanaka on Twitter: "https://t.co/CgmiJVhVus Rustはメモリ安全性をコンパイルタイムに保障するプログラミング言語だが、ローレベルハードウェアにアクセスしたいなどのシステムソフトウェアの要求に応じるために、そういうコンパイラの… https://t.co/IAQ36vteVI"

                                                https://t.co/CgmiJVhVus Rustはメモリ安全性をコンパイルタイムに保障するプログラミング言語だが、ローレベルハードウェアにアクセスしたいなどのシステムソフトウェアの要求に応じるために、そういうコンパイラの… https://t.co/IAQ36vteVI

                                                  Hideyuki Tanaka on Twitter: "https://t.co/CgmiJVhVus Rustはメモリ安全性をコンパイルタイムに保障するプログラミング言語だが、ローレベルハードウェアにアクセスしたいなどのシステムソフトウェアの要求に応じるために、そういうコンパイラの… https://t.co/IAQ36vteVI"
                                                • An Introduction to Interpreters and JIT Compilation

                                                  Last week, I gave two lectures at the Programming Language Implementation Summer School (PLISS). PLISS was very well organized and the students and other presenters made for a very enjoyable week of new ideas, learning, and discussing. For my own lectures, I decided to take an approach that focused more on the high-level ideas and can introduce a wider audience to how we build interpreters and a r

                                                  • Porffor

                                                    An ahead-of-time JavaScript compiler Porffor compiles JavaScript ahead-of-time to WebAssembly and native binaries. It is currently in pre-alpha with usability beginning in 2025. JS -> Wasm Porffor's WebAssembly output is 10-30x smaller and faster compared to existing JS -> Wasm projects as Porffor compiles JS instead of bundling an interpreter in the Wasm output. JS as Wasm allows for sandboxed ex

                                                    • Shinjuku.rs#15 Rustでつくるx86アセンブラ

                                                      Making JIT assembler for x86-64 written in Rust.

                                                        Shinjuku.rs#15 Rustでつくるx86アセンブラ
                                                      • GitHub - oxc-project/oxc: ⚓ A collection of JavaScript tools written in Rust.

                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                          GitHub - oxc-project/oxc: ⚓ A collection of JavaScript tools written in Rust.
                                                        • GitHub - natalie-lang/natalie: a work-in-progress Ruby compiler, written in Ruby and C++

                                                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                            GitHub - natalie-lang/natalie: a work-in-progress Ruby compiler, written in Ruby and C++
                                                          • 括弧で34087重に囲んだ関数を食わせるとg++が死ぬ

                                                            TL;DR ((((printf("Hello World\n")))))みたいに関数をたくさんの括弧で囲むとコンパイラが死ぬので気をつけましょう。 はじめに 以前、printfに4285個アスタリスクをつけるとclang++が死ぬという記事や、GCCに27958段ネストした関数を食わせると死ぬという記事を書きました。 特に、printfにアスタリスクをたくさんつける記事では、clang++がわりとすぐ死んだのに対して、g++は5万個とかつけても大丈夫でした。一般に、コンパイラが死ぬ系のコンパイラいじめは、再帰でスタックを使い切るタイプのものが多く、LLVMよりもGCCの方が頑健という印象です。 さて、C++では、括弧を無駄につけることができます。例えば、

                                                              括弧で34087重に囲んだ関数を食わせるとg++が死ぬ
                                                            • Ruby Parser開発日誌 (10) - parse.y リファクタリングチャレンジ はじめました - かねこにっき

                                                              前回のあらすじ Ruby Parser開発日誌 (9) - RubyKaigi 2023で発表してきた ~ 世はまさに”大パーサー時代” ~ - かねこにっき RubyKaigiにいってきました。スライドや登壇時の動画は以下のリンクから参照できます。ぜひご覧ください。 rubykaigi.org parse.y リファクタリングチャレンジ "parse.y"を読んでいる時にrb_obj_hideやrb_builtin_class_name、RB_OBJ_WRITTENといった関数やマクロが出てきて驚いたことのある人は少なくないでしょう。RubyのparserではGCやRubyのObjectなどRuby本体の機能が多く使われています。それらはRubyの長い歴史のなかで洗練されてきた機能である一方、一定の御作法に従って使う必要があります。たとえばRB_OBJ_WRITEやRB_OBJ_WRIT

                                                                Ruby Parser開発日誌 (10) - parse.y リファクタリングチャレンジ はじめました - かねこにっき
                                                              • 『低レイヤを知りたい人のためのCコンパイラ作成入門』を使ってやってみた、縛り実況と初見実況 | ログミーBusiness

                                                                Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。hsjoihs氏は、『低レイヤを知りたい人のためのCコンパイラ作成入門』を用いた縛り実況、初見実況について発表しました。 縛り実況、初見実況と呼ばれるタイプのゲーム実況が大好きhsjoihs氏(以下、hsjoihs):プレゼンその2をやります。 プレゼンその2、「Rui Ueyama compiler book any% 縛り実況(C-to-ELF category)」というタイトルで発表をしたいと思います。自己紹介はさっきやったので飛ばします。 みなさん、ゲーム実況は好きですか? 私は、ゲーム実況が大好きです。ゲーム実況がきっかけで大学の進路が決まったぐらいには大好きです。 司会者:へぇ。 hsjoihs:その中でも特に好きなのが、縛り実況、

                                                                  『低レイヤを知りたい人のためのCコンパイラ作成入門』を使ってやってみた、縛り実況と初見実況 | ログミーBusiness
                                                                • 「Visual Studio 2019」v16.10が正式公開 ~コンパイラーとSTLライブラリがC++20に対応/「Git」や「Docker」関連のUIが改善。.NETの開発支援機能も強化される

                                                                    「Visual Studio 2019」v16.10が正式公開 ~コンパイラーとSTLライブラリがC++20に対応/「Git」や「Docker」関連のUIが改善。.NETの開発支援機能も強化される
                                                                  • Sparkplug — a non-optimizing JavaScript compiler · V8

                                                                    Show navigation Writing a high-performance JavaScript engine takes more than just having a highly optimising compiler like TurboFan. Particularly for short-lived sessions, like loading websites or command line tools, there’s a lot of work that happens before the optimising compiler even has a chance to start optimising, let alone having time to generate the optimised code. This is the reason why,

                                                                    • clang++に30740次元の配列を食わせると死ぬ

                                                                      $ ruby check.rb PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script. Stack dump: 0. Program arguments: /usr/local/bin/clang-16 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main

                                                                        clang++に30740次元の配列を食わせると死ぬ
                                                                      • The MIR C interpreter and Just-in-Time (JIT) compiler | Red Hat Developer

                                                                        For the past two years I've worked on a project implementing a universal lightweight Just-in-Time (JIT) compiler known as MIR. The cornerstone of the project is a machine-independent medium-level intermediate representation (MIR). A big part of the project consists of code that compiles C source code into MIR. Because MIR can be interpreted and just-in-timed, I easily extended this C-to-MIR compil

                                                                          The MIR C interpreter and Just-in-Time (JIT) compiler | Red Hat Developer
                                                                        • How to write a self hosted Go compiler from scratch (Gophercon 2020)

                                                                          GopherCon 2020 (GoVircon) Talk My compiler: https://github.com/DQNEO/babygo

                                                                            How to write a self hosted Go compiler from scratch (Gophercon 2020)
                                                                          • TypeScriptを他のツールで取り扱うためのコンパイラオプションについて - Qiita

                                                                            TypeScriptプロジェクトにおいては、ビルド速度が重要です。TypeScriptのビルド速度はCI/CDの効率に直結します。しかしながら、tscはそこまで速くないことも知られており、tsc以外のツールをTypeScriptのビルドパイプラインに混ぜることもよく行われています。 TypeScript(tsc)のコンパイラオプションの中には、そのようなユースケースをサポートするためのものも存在します。公式ドキュメントではInterop Constraintsとして分類されているもの(の一部)です。この記事ではそれらを紹介します。 isolatedModules isolatedModulesは古くからあるTypeScriptのコンパイラオプションのひとつで、tsc以外を用いてTypeScriptをトランスパイルするユースケースをサポートしてくれるものです。 TypeScriptの主な仕事

                                                                              TypeScriptを他のツールで取り扱うためのコンパイラオプションについて - Qiita
                                                                            • Onyx Programming Language

                                                                              An efficient, procedural, and pragmatic programming language Efficient The Onyx compiler is fast. Turnaround time is non-existent using Onyx's custom WebAssembly code generator. Procedural Onyx uses a simple programming and memory model. It is familiar to anyone with any programming experience.

                                                                              • 型チェックが緩いTypeScriptプロジェクトでコミット対象ファイルだけ厳格に型チェックしたい

                                                                                コメントをいただき、本記事の内容に誤りがあることが判明しました。 本記事の手法を用いると、コミット対象以外のファイルに関しても型チェックを行ってしまいます。 申し訳ございません。現在、他の実現方法を調査中です。(2021/02/06) 記事の内容を修正しました。コミット対象ファイルにのみ型チェックを行うことができるようになりました。(2021/02/07) はじめに TypeScriptプロジェクトにおいて、tsconfigのコンパイラオプションでの型に関するオプション(strict, noImplicitAny, strictNullChecks, strictFunctionTypesなど)が有効になっていない場合、型安全性が損なわれてしまいます。せっかくTypeScriptを利用しているので、可能な限り型安全性を高めておきたいです。 そのように型に関するルールが緩いプロジェクトがあっ

                                                                                  型チェックが緩いTypeScriptプロジェクトでコミット対象ファイルだけ厳格に型チェックしたい
                                                                                • M5StickC PLUSでミニゲームを動かそうとして久々にC言語と格闘 - ABAの日誌

                                                                                  JavaScriptのゲームライブラリcrisp-game-libで量産したミニゲームを、PCやスマホだけでなくて、何か小さなデバイスでも遊んでみたい。そう思って、移植性の高いC言語でライブラリを再実装してみている。 画面とボタンが付いていて入手が容易な小さなデバイスとして、まずはM5StickC PLUSで動かすことを目指してみた。いまのところ、まだ機能は限定的だが、いくつかのゲームが動くようになってきた。 SURVIVOR PIN CLIMB 小さなデバイス向けと言いながら、ブラウザでも遊べるようにしてある。C言語で書かれたゲーム本体やライブラリを、EmscriptenでビルドしてWebAssemblyファイルを生成し、JavaScriptのラッパを通じて動かしている。 デバイス依存で実装しなければいけない関数は、machineDependent.hに定義してある。M5StickC P

                                                                                    M5StickC PLUSでミニゲームを動かそうとして久々にC言語と格闘 - ABAの日誌