RubyKaigi 2017 Lightning Talk http://rubykaigi.org/2017
![LLVM-Based JIT Compiler for CRuby](https://cdn-ak-scissors.b.st-hatena.com/image/square/b00a905b0b4fe07175de84d9ba6d088ffd08a040/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F4e2a3e794c024afabfcebbde6be9118d%2Fslide_0.jpg%3F8591706)
1/66 >> First Last LLVM と ELVM のはなし はまじしん一ろう
Hello, everyone! Click here for up to date build instructions Today I am happy to make the first release of the Common Lisp implementation “Clasp”. Clasp uses LLVM as its back-end and generates native code. Clasp is a super-set of Common Lisp that interoperates smoothly with C++. The goal is to integrate these two very different languages together as seamlessly as possible to provide the best of b
https://github.com/shinh/beflisp Lisp インタプリタを作りました。今度は Befunge で。 https://github.com/shinh/beflisp/blob/master/beflisp.bef コードを見ればわかりますが、手書きは諦めました。 前回の sed と違って Befunge は数値演算は素直に提供してくれてるので、アドレス計算なんかをするプリミティブが提供しやすいです。ただ、 Befunge-93 は文字列とか関数コールという概念が無いので、手動でフロー管理するのは地獄でしょうね… ということで、 C で lisp を書いて、それを clang で LLVM bitcode に変換してから、トランスレータで Befunge に変換、という構成になっています。 実装 トランスレータは任意の C コードを Befunge に変換でき
As a high level summary, I am a well-known leader who is distinguished by a hands-on approach to building systems. I am co-founder and CEO of Modular AI. I built and scaled many open source compiler infrastructures, including LLVM, Clang, MLIR, and CIRCT. These span the gamut of fundamental systems at the HW/SW boundary - powering iOS, Android, CUDA, TensorFlow, and countless other products and te
Batteries includedCrystal’s standard library comes with a whole range of libraries that let you start working on your project right away. Check the API docs # A very basic HTTP server require "http/server" server = HTTP::Server.new do |context| context.response.content_type = "text/plain" context.response.print "Hello world, got #{context.request.path}!" end address = server.bind_tcp(8080) puts "L
hello int main() { puts("hello"); } 生成されたコード // EMSCRIPTEN_START_FUNCS function _main() { var label = 0; var $1=_puts(((8)|0)); return 0; } Module["_main"] = _main; // EMSCRIPTEN_END_FUNCS 8がだだっぴろいメモリへのインデックスなのはわかるけど、それはどこで定義されてるのかな…と hello で検索しても見つからない。 104 で検索すると見つかった。 STATIC_BASE = 8; STATICTOP = STATIC_BASE + 8; /* memory initializer */ allocate([104,101,108,108,111,0,0,0], "i8", ALLOC_NONE, R
Lisp for iOS, Android, and OS X.Creating mobile applications shouldn't require you to do everything in Java and Objective-C. With mocl, you can put your application logic into a shared Lisp library that runs on iOS, Android, and even OS X. Furthermore, since mocl runs an expansive subset of Common Lisp, an ANSI standard like C, you can also run your CL code on other implementations, and target the
LLVM is a complex piece of software. There are several paths one may take on the quest of understanding how it works, none of which is simple. I recently had to dig in some areas of LLVM I was not previously familiar with, and this article is one of the outcomes of this quest. What I aim to do here is follow the various incarnations an "instruction" takes when it goes through LLVM's multiple compi
内容紹介本書は趣味でLLVMを触っている著者二人のLLVMをもっと普及させていきたいと思いから生まれたLLVM解説本です。 LLVMは今非常に注目されていますが、度重なるAPI仕様の変更や公式ドキュメントの充実さなどが理由で、まとまった解説がなされたものはありませんでした。本書によりまとまった情報が日本語で手に入るようになり、多くの方にLLVMを知って頂けると幸いです。 本書ではLLVMを使用したコンパイラの作り方を順を追って説明しLLVMへの理解を深めてもらおうというのがコンセプトになっています。フロントエンド(中間表現出力まで)、ミドルエンド(最適化)、バックエンド(オブジェクト生成)と幅広く解説していますので多くの方に有用な内容を含んでいるのではないでしょうか。 LLVMの用途は多岐にわたり,本書では解説できていない部分もありますが,初心者向けの情報としてLLVMを利用するための基礎
Fast Julia was designed for high performance. Julia programs automatically compile to efficient native code via LLVM, and support multiple platforms. Dynamic Julia is dynamically typed, feels like a scripting language, and has good support for interactive use, but can also optionally be separately compiled. Reproducible Reproducible environments make it possible to recreate the same Julia environm
Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds
なにやら @/id:TAKESAKO さんから 「8/30 の LL Future でパネルディスカッション や ら な い か ?」 (もちろん,実際はもっと非常に丁寧な文章です) というお誘いを受け,ホイホイ快諾してしまったら 「なにやら llvm-gcc を使ってブラウザ上で C とか Python のコードを動かすという構想があるそう.というわけで 『gcc と LLVM が紡ぎだす未来 〜ブラウザで言語処理系を無理やり動かして未来を先取りする〜』 みたいなことをテーマに,gcc フロントエンドとか LLVM とか AVM2 とかと LL の未来についてネタふりしてパネラーの皆さんと楽しく議論してください,超期待してます」 と,いきなりものすごいプレッシャーが. Running C and Python Code on The Web C言語をブラウザで実行、Ruby/Python
Over the past several years, I’d been watching educational YouTube videos while on an elliptical in a gym. During the pandemic, however, gyms closed down, and I had to figure out what to do. Late last year I bought a cheap exercise bike that I’m actually very satisfied with. Instead of watching videos on my phone or tablet, I can just roll my bike in front of my computer monitor and watch whatever
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く