Releases: ccns/bbs-ruby
Releases · ccns/bbs-ruby
v0.3-DL-2 - Dreamland Patch Release 2
修改紀錄 | Changelog
- API 變更 | API Changes
- 重新定義全域物件
BBS
為 Ruby module 而非 Ruby class
Redefine Ruby global objectBBS
to be Ruby module rather than Ruby class
- 重新定義全域物件
- 問題修正 | Fixed issues
- 修正執行 BBS-Ruby 時沒有真的清除螢幕的問題
Fix the issue that the screen is not really cleared when BBS-Ruby is launched - 避免 BBS-Ruby 執行失敗時印出的錯誤訊息可能與背景同色而隱形的問題
Prevent error messages produced by BBS-Ruby from being invisible due to being in the same color as the background - 解決 Ruby 全域變數/物件不會重設的問題 (需要 mruby)
Resolve the issues that Ruby global variables/objects never reset (mruby required)
- 修正執行 BBS-Ruby 時沒有真的清除螢幕的問題
- 功能改進 | Functionality improvements
- 增加對 mruby 的支援,解決 Ruby 全域變數/物件不會重設的問題
Add support for mruby; resolve the issues that Ruby global variables/objects never reset - 使用白名單控制 Ruby gem library 的載入 (需要 mruby)
Use a white list to determine which Ruby gem libraries will be loaded (mruby required)
- 增加對 mruby 的支援,解決 Ruby 全域變數/物件不會重設的問題
- 程式改進 | Code quality improvements
- 強化程式碼的 const correctness
Enhance the const correctness of the code - 讓程式碼符合 ISO C++98 標準,支援使用 C++ 編譯器編譯
Make the code conform to ISO C++98; thus allow it to be compiled with a C++ compiler - 用型別安全的
rb_funcallv()
取代rb_funcall()
的使用
Replace usages ofrb_funcall()
with type-saferb_funcallv()
- 將接受任意數量參數的 C API 函數改寫成接受 C array 而非 Ruby array
Rewrite variadic C API functions to accept a C array rather that a Ruby array - 其他程式碼重構/細節修正
Other refactors and detail corrections
- 強化程式碼的 const correctness
- 其他 | Other changes
- 不再設定 signal handler
Signal handlers are no longer replaced when BBS-Ruby is launched - 避免在 Ruby interpreter 初始化前印錯誤訊息
Prevent printing error messages produced by Ruby interpreter before the interpreter is initialized
- 不再設定 signal handler
v0.3-DlPatch-1 - Dreamland Patch Release 1
修改記錄 | Changelog
- API 變更 | API Changes
- 重新定義
getyx()
/getmaxyx()
結果的y
為 row,x
為 column
Redefine the result ofgetyx()
/getmaxyx()
:y
for row andx
for column- 避免與其他 BBS 系統的定義衝突
Prevent they
andx
definition clashing with other BBS systems - 可以透過
bbsruby.c
開頭的環境設定恢復成x
為 row,y
為 column 的定義
The environment settings in the beginning ofbbsruby.c
can be used to re-enable the previous definition wherey
is for row andx
is for column - 建議改用如
r, c = getyx().values
的方式讀取結果
It is recommended to use a construction liker, c = getyx().values
to make use of the result
- 避免與其他 BBS 系統的定義衝突
- 重新定義
- 問題修正 | Fixed issues
- 修正 memory leak 以及其他記憶體存取問題
Fix memory leaks and other memory accessing issues- 修正 Ruby interpreter 會隨機顯示 parse 錯誤的問題
Fix the issue that the Ruby interpreter sometimes reports parsing errors while loading a script
- 修正 Ruby interpreter 會隨機顯示 parse 錯誤的問題
- 修正 BBS-Ruby 執行失敗會造成 segmentation fault 的問題
Fix the issue that segmentation faults occurs when BBS-Ruby produces run-time errors - 修正執行 BBS-Ruby 會造成所有的 signal handler 被取代的問題
Fix the issues that all the signal handlers are replaced permanently when BBS-Ruby is launched - 部分解決 Ruby 變數/物件不會重設的問題
Fix the issue that Ruby variables/objects never reset - 修正
move()
/moverel()
的結果不正確的問題
Fix the issue thatmove()
/moverel()
produce wrong results - 修正不接受說明文件中的 TOC 標籤格式的問題
Fix the issue that the documented TOC format is not accepted by the implementation
- 修正 memory leak 以及其他記憶體存取問題
- 功能改進 | Functionality improvements
- 增加對 Ruby 2.0 ~ 2.2 的支援
Add supports for Ruby 2.0 - 2.2- 由於安全上的問題,暫不支援 Ruby 2.3+
Ruby 2.3+ is not support for now due to security considerations - 目前建議使用 Ruby 2.2 編譯
For now, it is recommended to compile BBS-Ruby with Ruby 2.2
- 由於安全上的問題,暫不支援 Ruby 2.3+
- 現在 BBS-Ruby 可以在其他 Maple3 / PttBBS 上編譯了
BBS-Ruby now compiles on other Maple3 and PttBBS systems- 可能需要自行調整
bbsruby.c
開頭的環境設定
You might still need to adjust the environment settings in the beginning ofbbsruby.c
- 可能需要自行調整
- 讓程式出錯時的錯誤訊息更為詳細
Make error messages reported by Ruby interpreter more detailed - 現在 BBS-Ruby 在執行前會檢查版本
Now BBS-Ruby checks the target API level before executing the script - 讓程式行號與文章行號一致
The line number of the script and the line number of the article is now consistent - 現在執行 BBS-Ruby 時會先清除螢幕
The screen will be cleared when BBS-Ruby is launched - 放寬 TOC 標籤語法
Make the TOC syntax less restrictive- TOC 標籤可以用
##
或###
開頭
A TOC entry may start with##
or###
- TOC 標籤可以包含空格,也接受大小寫混合
A TOC entry may contain spaces and mixed-case titles - 可以用全小寫的 key 存取 TOC 標籤
TOC entries may be accessed with lower-cased keys
- TOC 標籤可以用
- 讓
getdata()
在支援的 BBS 上可以用 Ctrl-C 跳出
Ctrl-C now makesgetdata()
return when the configuration of the BBS system permits
- 增加對 Ruby 2.0 ~ 2.2 的支援
- 其他 | Other changes
- 重新排版程式碼,修正程式碼錯字及亂碼
Re-indent the code as well as fix typos and mojibake - 將程式碼改寫成符合 ISO C90/C99 標準
Make the code conform to ISO C90/C99 - 修正程式碼中誤用函數/參數型別不符的問題
Fix misuses of library function and type mismatches - 不再load空白檔案
empty.rb
;移除RubyFix.h
The empty fileempty.rb
is no longer needed to be loaded;RubyFix.h
is now unneeded and has been removed - 將 C API 函數名稱改為以
brb_
開頭
Change the prefix of BBS-Ruby C API functions tobrb_
- 其他程式碼重構/細節修正
Other refactors and detail corrections
- 重新排版程式碼,修正程式碼錯字及亂碼
v0.3 - Legacy Release
This is a legacy version released by the original author, Zero Cho (@itsZero).
Original changelog:
- 修正getch()對於特殊按鍵沒反應的問題
Fix getch() not responding to special keys