2019年1月25日 星期五

gdb 顯示 polymorphic type (derived type) 的方法

C++ 中有 polymorphism 的功能
可以讓我們用同一個型別的 pointer 產生不同的功能
然而在 debug 這樣的 code 因為 pointer 是同一種
會產生理解上的困難

2018年12月20日 星期四

隨筆兩篇 - Clang++ vs g++ 速度;Verilator 使用簡易心得

最近在使用 Verilator 這個 tool
這是一個可以把可合成 RTL 轉換成 C++ 然後跑 RTL-sim 的開源工具
verilator 產生出來的 code 動輒數十萬行 C++,compile time 數分鐘
中型的 RTL-sim 也是在秒~分鐘上下
於是就想說以此為 benchmark
比較用不同的 C++ compiler 的本身性能以及產出的 code 的速度

2018年8月7日 星期二

C++11 rvalue 使用筆記

C++11 中多了一個叫 rvalue 的東西表示「可以破壞的暫時變數」
當這些東西跟 STL, return value optimization (RVO) 等等的東西融合時
就讓事情變得很複雜了,讓我現在都不敢跟別人說我會 C++ 了
因此本文紀錄了一些我遇到的 case,希望未來也會繼續更新

2018年7月6日 星期五

在 Arch 安裝 CIC EDA tool 紀錄

由於 EDA 公司跟數位 IC 領域比較封閉的關係
很多的 EDA tool 還是會「建議」用 CentOS 5 之類的環境
甚至有公司在 2018 的現在,電腦的系統還是 gcc 3 或是 Python 2.4 的
雖然有很多 tool 其實就算放到最新的 Archlinux 可以跑
但是有很多情形會缺少一些老舊的 library
有時候是會有一坨智障 script 檢查的時候會不讓你執行

2018年4月23日 星期一

git submodule 複製現有的副本

Git 有提供一個 submodule 的功能
可以把另外的 Git repo 引入現在的 project 使用
然而,有時候我們會需要複製包含 submodule 的 repo 給別人
如果是遇到超大型 project 或是 project 裡面放超大 test data
這時候 clone ~100MB 的時間就會超級久
(有時候 Github 的連線 < 100KBps)

2018年2月19日 星期一

在 WSL (Windows subsystem linux) 模擬 xdg-open

WSL 是 Windows 10 提供的執行原生 Linux 程式的方法
但是如果不能跟 Windows 做某些互動的話很不方便
例如 Linux 中,有時會用 nautilus . 或是 dolphin . 把目前終端機的資料夾打開

2018年1月9日 星期二

遊戲介紹:Factorio(二)

上一篇中提到了因為 Factorio 的關係
導致我的 journal 的進度嚴重落後
呃不對,這件事對這篇文章並不重要
總之因為 journal 草稿寫完了,所以來寫個第二集
讓我們重新開始
上一篇中提到了 Factorio 之中的初期開局
維持了半手動的鐵、銅、電力生產
接著就要來提昇自動化的程度