Common-Lisp 語言解析器,ECL 16.0.0 發布

jopen 9年前發布 | 8K 次閱讀 Common-Lisp

ECL (Embeddable Common-Lisp) 是一個嵌入式的 Common-Lisp 語言解析器。

ECL 16.0.0 發布,此版本改進了現有 CL 庫生態系統的各種互操作性,遵從 ANSI,提升跨平臺的便捷性。

最顯著的改進是提升常規代碼質量 – 移除了死鎖和接口,重構了部分代碼庫。同時還重做了測試框架,改進和更新了文檔。

已知 issues

  • In Windows, ECL comes with the bytecode compiler by default, because C compilers are normally not available. Unfortunately several libraries out there are not prepared for this.  If you plan to use quicklisp and have a C compiler accessible to ECL, you may use (ext:install-c-compiler) to switch back to the Lisp-to-C compiler.

    </li>

  • In order to test a package, programmer has to install ECL on a desired destination (specified with "–prefix" parameter given to the configure script).

    </li> </ul>

    API 改進

    • There is no UFFI nickname for the FFI package - we piggyback on cffi-uffi-compat for UFFI dependent systems (our UFFI wasn't version 2.0 compatible and there were problems with ADSF dependencies on UFFI - it wasn't a system)

      </li>

    • CLOS has the new nickname "MOP"

      </li>

    • The new ext:run-program :error argument can automatically create a separate stream if provided with the :stream keyword. The external-process structure also has a new field to hold that stream.

      </li>

    • ext:run-program accepts new arguments: :if-input-does-not-exist, :if-error-exists, :external-format

      </li>

    • ext:system no longer binds standard-input andstandard-output and now ignores input and output (use ext:run-program for more control)

      </li>

    • methods can be specialized on both single-float and double-float (built-in classes were added for them)

      </li>

    • LET/FLET/LABELS will signal an error if the parameter of the same name appears multiple times

      </li>

    • lambda lists with repeated required parameters name are considered invalid

      </li>

    • deprecated configure options "–with-system-boehm=x" and "–enable-slow-config" removed

      </li> </ul>

      功能增強

      • Verification if manual is up-to-date, providing corrections for outdated parts

        </li>

      • Documentation is now included in the main repository under the top-level directory `doc'

        </li>

      • Update libffi to version 3.2.1

        </li>

      • Update asdf to version 3.1.5.4

        </li>

      • Update Boehm-Demers-Weiser garbage collector to version 7.4.2

        </li>

      • Pathname string-parts internal representation is now character, not base-char

        </li>

      • Dead code removal, tabulators were replaced by spaces

        </li>

      • Better quality of generated code (explicit casting when necessary)

        </li> </ul>

        解決 issues 列表

        • Various fixes of bogus declarations

          </li>

        • Remove deprecated GC calls

          </li>

        • ROTATEF, SHIFTF, PSETF reworked to conform to the ANSI standard. Places were handled improperly in regard of multiple values.

          </li>

        • Improved Unicode support in character handling

          </li>

        • Format handles floats and exponentials correctly (major format rework)

          </li>

        • Stack limits refinements and cleanup, inconsistency and bug fixes

          </li>

        • Duplicate large block deallocation with GMP 6.0.0a fixed

          </li>

        • ECL builds on OpenBSD with threads enabled

          </li>

        • Closures put in mapcar work as expected in both compiled and interpreted code

          </li>

        • Improved readtable-case handling (:invert and character literals now conform)

          </li>

        • Library initialization functions have unique names - no risk of clashing symbol names in object files

          </li>

        • Format float bug fixed, when width and fdigits were not set, but k was

          </li>

        • `logical-pathname-translations' now signals an error if logical pathname wasn't defined yet, to conform with ANSI (it used to return NIL)

          </li>

        • Wildcards in logical pathname translations are replaced correctly

          </li>

        • Regression testing framework and unit tests cleanup

          </li>

        • deftype ANSI conformity fix (deftype accepts macro labda-lists)

          </li>

        • ECL built with MSVC doesn't crash when Control-C is pressed

          </li>

        • Other minor tweaks

          </li> </ul> 更多改進請看發行說明

           本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
           轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
           本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!