Skip to content

Latest commit

 

History

History
132 lines (104 loc) · 4.43 KB

File metadata and controls

132 lines (104 loc) · 4.43 KB

TODO

Add

  • static output for the library (libjelal.a).
  • debloat the static output
  • support for crate::ffi type resolving in codegen crate
  • support for core::ffi type resolving
  • priority for crate::ffi types with the same name as core::ffi imports for resolving
  • more tests on all fronts
  • dedicated POSIX-compliant strftime and strptime functions without relying on other libraries
  • Go support
  • Elisp support
  • Php support
  • a class based C++ intermediate (possibly to codegen).
  • GitHub build tools, lints, and make in general
  • tests that ensure Mac and Windows suppport
  • a hook for automatically:
    • determining the most minimal size of the crate and add it to the README
    • building examples and adding them to tests
    • generating the changelog
    • generating the codegen output and amending the commit in post-commit if there is any change

Change

  • Default headers task to cffi.

Remove

  • codegen and move it to another crate

0.5.0

Add

  • Weekday for getting weekday of a date and weeks of given durations based on various initial days
  • more tm and jtm methods to convert between C and Rust more easily:
    • Date::from_jtm_yday and Date::from_jtm_mday
    • MonthDay::from_jtm and MonthDay::to_jtm_mday
    • Month::from_jtm_mon and Month::to_jtm_mon
    • Ordinal::from_tm_yday and Ordinal::to_tm_yday
    • Year::from_jtm_year and Year::to_jtm_year
  • support for core::ffi int types in codegen::resolve_type and cffi
  • IYmd (as a replacement for the removed IntYmd).
  • rlib type
  • support From<SystemTime> on std feature
  • support jiff feature

Remove

  • Date::update_jtm not to have mut references or pointer to FFI if not necessary
  • deprecated MonthDay::LEAP_LAST_MONTH_DAY_MAX.
  • deprecated MonthDay::NON_LEAP_LAST_MONTH_DAY_MAX.
  • IntYmd (replaced with IYmd).

Fix

  • Ordering not define (not publicly) in C headers
  • cffi not being able to determine const of pointers correctly in functions (patterns in general).
  • test --all-features being broken since v0.4.1 (4395e9d, "Add tm support for C")
  • wasm-opt complaining about --enable-bulk-memory missing for some setups
  • Date::add_days_strict not taking IDayDiff::MAX (previous actual maximum was around IDayDiff::MAX - self.ordinal)
  • add_*_strict methods on Date and MonthDay having wrong did_saturate
  • Date::add_months* method not working with negative values

0.4.2

Add

  • Ordering to generated module
  • cmp functions that are more primitive than their ext_cmp counterpart as a side-effect of jelal_proc removal

Remove

  • jelal_proc crate (version 0.5.0)

Fix

  • A bug in codegen where Self typed parameters in methods (not self) would generate invalid types which also effected functions. This bug does not effect previous versions but may effect codes in developement so an update is suggested.

0.4.1

Add

  • Support for deprecated in codegen.
  • Experimental support for a custom codegen replacement for cbindgen (namely cffi, use make cffi to test) to generate the C headers.
  • tm (time.h struct) and to_jtm for easier creation of Jalali correct tm structs from Date
  • MonthDay::NON_LEAP_LAST_MAX_DAY and deprecate what it replaces MonthDay::NON_LEAP_LAST_MONTH_DAY_MAX to be more aligned with other *MAX_DAY constants
  • MonthDay::LEAP_LAST_MAX_DAY and deprecate what it replaces MonthDay::LEAP_LAST_MONTH_DAY_MAX to be more aligned with other *MAX_DAY constants

Change

  • MonthDay::LEAP_LAST_MONTH_DAY_MAX and MonthDay::NON_LEAP_LAST_MONTH_DAY_MAX to deprecated. Use the added alternatives.
  • codegen:
    • ImplConst items are now visited beforetheir duplicate global were produced.
    • codegen the crate now holds multiple binaries and the previous main.rs is renamed as codegen.rs.
    • to collapse documents (just a visual change for now)
    • sift to whitelist cfg and cfg_attr attributes
    • to pass cfg attributes to pymodule (prevents cfg misbehavior)
    • allow unused_imports
    • use crate::ffi::* automatically

0.4.0

Total rewrite of the library with an emphasis on new types. This version actually makes the library usable and out of the alpha to somewhat of a beta version. Backward compatibility with the previous versions is no more hence this changelog starts fresh.

To see the changelog of the previous versions use Git or any time machine.