Skip to content

Releases: ccns/bbs-ruby

v0.3-DL-2 - Dreamland Patch Release 2

26 Feb 12:03
Compare
Choose a tag to compare

修改紀錄 | Changelog

  • API 變更 | API Changes
    1. 重新定義全域物件 BBS 為 Ruby module 而非 Ruby class
      Redefine Ruby global object BBS to be Ruby module rather than Ruby class
  • 問題修正 | Fixed issues
    1. 修正執行 BBS-Ruby 時沒有真的清除螢幕的問題
      Fix the issue that the screen is not really cleared when BBS-Ruby is launched
    2. 避免 BBS-Ruby 執行失敗時印出的錯誤訊息可能與背景同色而隱形的問題
      Prevent error messages produced by BBS-Ruby from being invisible due to being in the same color as the background
    3. 解決 Ruby 全域變數/物件不會重設的問題 (需要 mruby)
      Resolve the issues that Ruby global variables/objects never reset (mruby required)
  • 功能改進 | Functionality improvements
    1. 增加對 mruby 的支援,解決 Ruby 全域變數/物件不會重設的問題
      Add support for mruby; resolve the issues that Ruby global variables/objects never reset
    2. 使用白名單控制 Ruby gem library 的載入 (需要 mruby)
      Use a white list to determine which Ruby gem libraries will be loaded (mruby required)
  • 程式改進 | Code quality improvements
    1. 強化程式碼的 const correctness
      Enhance the const correctness of the code
    2. 讓程式碼符合 ISO C++98 標準,支援使用 C++ 編譯器編譯
      Make the code conform to ISO C++98; thus allow it to be compiled with a C++ compiler
    3. 用型別安全的 rb_funcallv() 取代 rb_funcall() 的使用
      Replace usages of rb_funcall() with type-safe rb_funcallv()
    4. 將接受任意數量參數的 C API 函數改寫成接受 C array 而非 Ruby array
      Rewrite variadic C API functions to accept a C array rather that a Ruby array
    5. 其他程式碼重構/細節修正
      Other refactors and detail corrections
  • 其他 | Other changes
    1. 不再設定 signal handler
      Signal handlers are no longer replaced when BBS-Ruby is launched
    2. 避免在 Ruby interpreter 初始化前印錯誤訊息
      Prevent printing error messages produced by Ruby interpreter before the interpreter is initialized

v0.3-DlPatch-1 - Dreamland Patch Release 1

26 Feb 11:46
Compare
Choose a tag to compare

修改記錄 | Changelog

  • API 變更 | API Changes
    1. 重新定義 getyx()/getmaxyx() 結果的 y 為 row,x 為 column
      Redefine the result of getyx()/getmaxyx(): y for row and x for column
      • 避免與其他 BBS 系統的定義衝突
        Prevent the y and x definition clashing with other BBS systems
      • 可以透過 bbsruby.c 開頭的環境設定恢復成 x 為 row,y 為 column 的定義
        The environment settings in the beginning of bbsruby.c can be used to re-enable the previous definition where y is for row and x is for column
      • 建議改用如 r, c = getyx().values 的方式讀取結果
        It is recommended to use a construction like r, c = getyx().values to make use of the result
  • 問題修正 | Fixed issues
    1. 修正 memory leak 以及其他記憶體存取問題
      Fix memory leaks and other memory accessing issues
      1. 修正 Ruby interpreter 會隨機顯示 parse 錯誤的問題
        Fix the issue that the Ruby interpreter sometimes reports parsing errors while loading a script
    2. 修正 BBS-Ruby 執行失敗會造成 segmentation fault 的問題
      Fix the issue that segmentation faults occurs when BBS-Ruby produces run-time errors
    3. 修正執行 BBS-Ruby 會造成所有的 signal handler 被取代的問題
      Fix the issues that all the signal handlers are replaced permanently when BBS-Ruby is launched
    4. 部分解決 Ruby 變數/物件不會重設的問題
      Fix the issue that Ruby variables/objects never reset
    5. 修正 move()/moverel() 的結果不正確的問題
      Fix the issue that move()/moverel() produce wrong results
    6. 修正不接受說明文件中的 TOC 標籤格式的問題
      Fix the issue that the documented TOC format is not accepted by the implementation
  • 功能改進 | Functionality improvements
    1. 增加對 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
    2. 現在 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 of bbsruby.c
    3. 讓程式出錯時的錯誤訊息更為詳細
      Make error messages reported by Ruby interpreter more detailed
    4. 現在 BBS-Ruby 在執行前會檢查版本
      Now BBS-Ruby checks the target API level before executing the script
    5. 讓程式行號與文章行號一致
      The line number of the script and the line number of the article is now consistent
    6. 現在執行 BBS-Ruby 時會先清除螢幕
      The screen will be cleared when BBS-Ruby is launched
    7. 放寬 TOC 標籤語法
      Make the TOC syntax less restrictive
      1. TOC 標籤可以用 ##### 開頭
        A TOC entry may start with ## or ###
      2. TOC 標籤可以包含空格,也接受大小寫混合
        A TOC entry may contain spaces and mixed-case titles
      3. 可以用全小寫的 key 存取 TOC 標籤
        TOC entries may be accessed with lower-cased keys
    8. getdata() 在支援的 BBS 上可以用 Ctrl-C 跳出
      Ctrl-C now makes getdata() return when the configuration of the BBS system permits
  • 其他 | Other changes
    1. 重新排版程式碼,修正程式碼錯字及亂碼
      Re-indent the code as well as fix typos and mojibake
    2. 將程式碼改寫成符合 ISO C90/C99 標準
      Make the code conform to ISO C90/C99
    3. 修正程式碼中誤用函數/參數型別不符的問題
      Fix misuses of library function and type mismatches
    4. 不再load空白檔案 empty.rb;移除 RubyFix.h
      The empty file empty.rb is no longer needed to be loaded; RubyFix.h is now unneeded and has been removed
    5. 將 C API 函數名稱改為以 brb_ 開頭
      Change the prefix of BBS-Ruby C API functions to brb_
    6. 其他程式碼重構/細節修正
      Other refactors and detail corrections

v0.3 - Legacy Release

26 Feb 10:12
Compare
Choose a tag to compare

This is a legacy version released by the original author, Zero Cho (@itsZero).

Original changelog:

  1. 修正getch()對於特殊按鍵沒反應的問題
    Fix getch() not responding to special keys