第十二屆 優選

iot
拿到錘子的我想在微控制器上面執行 Ruby
蒼時弦也

系列文章

DAY 1

Day 1 - 為什麼要自己實作 Ruby VM

2020 年中的時候意外看到了旗標的「雷切外殼復古街機」這個產品,以前在學 PHP 的時候很常的時間都是看旗標的書,沒想到這幾年旗標還有針對自造者領域推出產品。...

DAY 2

Day 2 - 從 mruby-L1VM 開始入門(ㄧ)

對一個非本科的工程師來說,對於這類知識大多是第一次接觸的,雖然跟讀資工的同事聊過他們在學校也只有實作簡單的功能,不過至少在要開始嘗試的時候會相對容易許多。在這樣...

DAY 3

Day 3 - 從 mruby-L1VM 開始入門(二)

上一篇我們已經了解了 mruby 編譯出來的檔案大致上有怎樣的結構,要能夠執行 Ruby 只需要實際上存取機器碼的區段讀取出來之後依照行為執行就可以了,不過在...

DAY 4

Day 4 - 從 mruby-L1VM 開始入門(三)

從前面兩篇文章我們已經透過 mruby-L1VM 大致上了解了 mruby 生成的機器碼檔案包含了哪些資訊,不過還有幾個相對重要而且會經常被使用的方法需要提出來...

DAY 5

Day 5 - 環境準備

這次的實作分為兩個階段,第一階段我們直接用 C 語言在電腦上實作來驗證我們自己實作的 Ruby VM 是可以運作的,第二階段則是將程式碼放到 D1 Mini 上...

DAY 6

Day 6 - 讀取 IREP 資料(ㄧ)

經過前面幾天的分析,我們目前已經有一個可以撰寫 Ruby VM 的環境,也了解該如何從 mruby 的機器碼中讀取到實際上要執行的 ISEQ 區段,這篇文章會先...

DAY 7

Day 7 - 讀取 IREP 資料(二)

延續上一篇的進度,我們將會開始撰寫 mrb_exec 的內容,我們先參考 mruby-L1VM 的方式直接讀取用於參考的 nlocals、nregs 和 nir...

DAY 8

Day 8 - 加法 OPCode 處理

我們已經在 mrb_exec 中將 IREP 的資訊讀取完畢,現在我們就可以開始針對 OPCode 的方式來讀取。 基本上在處理的時候會是一個無限迴圈,我們會不...

DAY 9

Day 9 - 顯示運算結果

經過幾天的努力,我們已經可以在我們自己實作的 Ruby VM 中進行加法的運算,不過到目前爲止都還是停留在透過除錯訊息看到結果的狀況,因此我們要來實作 Ruby...

DAY 10

Day 10 - 從 IREP 取出字串

在上一篇我們已經實作到要呼叫方法,但是卻無法從 IREP 中獲取要呼叫的方法名稱。因此我們要實作對應的方法來幫助我們讀取到 IREP 中的 POOL 和 SYM...