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
This is Part 1 of a series of posts. Part 2 is available here: Building a baseline JIT for Lua automatically It is well-known that writing a good VM for a dynamic language is never an easy job. High-performance interpreters, such as the JavaScript interpreter in Safari, or the Lua interpreter in LuaJIT, are often hand-coded in assembly. If you want a JIT compiler for better performance, well, you’
自作SML処理系進捗:Hello Lua! の続き。 自作SML処理系「LunarML」の言語機能の実装も佳境に入ってきて(equalityやexception等の厄介な奴らはだいたい片付けた)、残すところは withtype (derived form)abstype(Successor MLに従いderived formとして実装する予定)signaturefunctor くらいとなってきている。 derived formはいつでもできるとして、未実装の機能のうち大きなものがsignatureとfunctorだ。このうちfunctorはsignatureに依存するので、signatureを先に実装することになる。 第一級モジュールの動機 それとは別に、モジュール関連の実装したい機能として、第一級モジュールに相当する機能を入れたい。これのモチベーションは標準ライブラリーを実装するための実
この記事は Vim advent calendar 2022 その1 の12日目の記事です。 昨日は@isobe_mochiさんの記事「tataku.vim というプラグインを作っている話」でした。 明日は @hanlio さんの記事が公開される予定です。 はじめに 2022年ももうすぐ終わりそうですね。今年は Vim に関するお仕事がいただけたり、設定ファイルを Vim script から Lua に移行したりと、Vimmer としては非常に充実した一年となりました。これも Vim/Neovim コントリビュータの方々と、数多のプラグイン開発者のおかげです。本当にありがとうございます。 そこで本記事では、私が普段使っている Vim (Neovim) プラグインを主観強めで紹介します。私が普段メインで使っている Neovim には 2022/12/11 現在 91 個のプラグインが入ってい
LuaでもWebAssemblyがしたかった(した) そろそろWebAssemblyやっていくぞと思って手を付け始めたんですが、もう既に色んな言語からwasmにコンパイルできるようになってるんですね。 Goがwasm対応したと聞いたのでGoでやろうと思っていたんですが、なぜかLuaでやり始めました。 作ったのはこちら。まだPoCで全然機能はないけど、Hello Worldはできました: ysugimoto/webassembly-lua なお、既に参考実装にwasm_luaというのがあるんですが、これは入力したLua Scriptをwasm上で実行して結果を得る、というもので、これだと自分で書いたスクリプトをwasmにするのとはちょっと違うなーってことで、参考にしつつイチから作りました。 Lua -> C -> emscripten やってることはほぼ同じで、バンドル対象のLuaファイルの
100万ファイルあるホームディレクトリでファイル一覧を出すのに私の環境で2秒、vimのバッファ[1]に書き込んだり開いたりするのに10秒以上かかります。これはwebの文脈でさえ遅い[2]といえる数値です。こうした状況下で速さを求めたことについて書きます。 この記事を読まずともREADMEのコピペでプラグインを試すことができます。 導入 人間は横着なので頭を使いタイピングするより限られた選択肢から選ぶことを望みます。多くの人が使うwebページはそのように最適化されています。テキスト入力を目的とするテキストエディタにおいても、多くの人にはこのことが当てはまるでしょう。テキスト入力における入力補完もセレクタの一種ですが、今回は[3]プログラミング中におけるファイルを選択して開いたりといった操作に焦点をあてます。 こうした動作を行うファインダは数多くあり戦国時代呼ばれるほど選択肢があります[4]。
Luau (lowercase u, /ˈlu.aʊ/) is a fast, small, safe, gradually typed embeddable scripting language derived from Lua. It is designed to be backwards compatible with Lua 5.1, as well as incorporating some features from future Lua releases, but also expands the feature set (most notably with type annotations). Luau is largely implemented from scratch, with the language runtime being a very heavily mo
For basic information check the Website. For first steps and how to use Nelua, start at the Tutorial. For a tour of the language's syntax, features and usage read the Overview. For small examples written in Nelua look the Examples folder . For questions and discussions go to the Discussions. For a chat with the community join the Discord server. For cool stuff made with Nelua check Awesome Nelua w
The real 0.5 was the friends we made along the way The long-awaited release of Neovim v0.5.0 finally happened on July 2, 2021. It took longer than everybody had hoped for, but it was worth the wait: With over 4000 commits, it is so big that it broke some of the release tooling. So these notes will not be able to touch on each of the many changes that were made over the course of development and on
/* A bytecode instruction is about to be executed. Record it. */ void lj_trace_ins(jit_State *J, const BCIns *pc) { /* Note: J->L must already be set. pc is the true bytecode PC here. */ J->pc = pc; J->fn = curr_func(J->L); J->pt = isluafunc(J->fn) ? funcproto(J->fn) : NULL; while (lj_vm_cpcall(J->L, NULL, (void *)J, trace_state) != 0) J->state = LJ_TRACE_ERR; } /* State machine for the trace comp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く