VMに関するtsuwatchのブックマーク (6)
-
The English version of this article is available here: medium.com 2/4(日)に、去年のRubyKaigiが終わった直後の新幹線で開発を始め10月に公開したJITコンパイラをRubyのtrunk (2.6.0-dev) にマージし、昨日TDTech Talk 2018で以下のような内容の発表をしました。 speakerdeck.com まだそれほど速くできていないということもあり、私はTwitterでのみ共有して満足していたのですが、海外の方がいくつか記事を書いてくださいました。 Playing withruby's new JIT: MJIT - John Hawthorn Ruby’s New JIT – Square Corner Blog – Medium とても丁寧に書かれているので、私の記事がわかりにくければ
-
今年、クックパッドでは夏のインターンと題して20名弱のインターンを受け入れました。 このインターンは前半と後半に大きく分かれており、 後半が社員に混じって業務をするいわゆる普通のインターンで、 前半は7日間にわたってプログラミング関連の講義を受けるという仕組みです。 わたし︵青木︶はその前半の過程において、﹁プログラミングパラダイム﹂という1日の講義を担当し、 JavaScriptの処理系を書くという、ツッコミどころの多い課題を実施しました。 本稿では、その講義を開発する際に考慮したこと、特に難易度調整についてお話しします。 また講義のために開発したJavaScript処理系﹁JetSpider﹂についても軽くふれます。 ▼講義資料 Cookpad Summer Intern 2015 - Programming Paradigm from Minero Aoki JetSpiderコ
-
PHPカンファレンス福岡での発表資料です。
-
悪用された場合、攻撃者がゲスト仮想マシン︵VM︶から抜け出してホストシステムにアクセスし、任意のコードを実行できてしまう恐れがある。ホストシステムの他に、そのホスト上で実行されている他の全てのVMにアクセスできてしまう可能性もあるという。 この脆弱性は幅広い仮想プラットフォームに影響が及び、デフォルトの設定に対して攻撃が通用し、任意のコードを実行される恐れがあるという点で、過去に見つかった他のVMエスケープの脆弱性とは異なるとCrowdStrikeは指摘。悪用されれば企業などの知的財産や個人情報といった情報の流出につながりかねないと警告している。 脆弱性はハイパーバイザーのコードベースに存在することから、ホストOS︵Linux、Windows、MacOS︶に関係なく影響を受ける。また、ゲストOSにも左右されない。 影響を受けることが確認されているベンダーはQEMU、Xen Project
-
LuaをGo言語のみで実装した GopherLua を公開しました。 詳しくはGithubのREADMEを見ていただくとして、特徴としては以下になります。 Lua5.1ベース 5.1の機能はほぼ実装済み Compiler, VMともに完全にGo言語のみで実装 引数の受け渡し以外でのスタック操作が不要で使いやすいAPI なぜ作ろうと思ったか もともとC言語でものを作るときにはLuaを設定ファイルの代わりとして取り入れていました。Goではあまり拡張言語実装がないので、jsonだったりiniだったりを設定ファイルとして使っていましたが、やっぱり微妙にめんどくさい。変数くらい欲しいなあ・・・とか。 結局、固い言語だけでモノを作るのは難しく、やわらかさが必要になるポイントがあります。そういうところはまず、﹁設定ファイル﹂として外だしされます。そしてその設定ファイルがどんどん肥大化したり複雑化したりし
-
スクリプト言語処理系を高速化したくてしたくてたまらない少年少女に届け。表題の通りスクリプト言語処理系の高速化について書きます。対象言語はBrainf*ckにします。Brainf*ckというのはBrainf*ck Brainfuck - Wikipedia というような言語です。要は処理系を実装するのが簡単なおもちゃ言語。おもちゃ言語ゆえに他のどんな実用的スクリプト言語処理系にも出てくるような基本的な処理だけでできているので、Brainf*ck処理系の高速化で有用なテクニックは他の処理系でもうんたらかんたら。 じゃあまず叩き台になるような処理系を書いてみましょう。言語はC++です。JavaだのPythonだので高速な処理系を記述するテクニックやらなんやらというのもありますけども、まずはごく簡単にCPUやらメモリといったものと仲の良い言語で記述することで理解を深めましょう。本当はC言語の方が
-
1