|
| 1 | + |
| 2 | +# v0.9.8 - 2025-04-03 |
| 3 | + |
| 4 | +## break |
| 5 | +- chore(nimpatch): now when eq`ver`, patch still added |
| 6 | + |
| 7 | +## Bug Fixes |
| 8 | +- Lib/os not compile: |
| 9 | + - getpid |
| 10 | + - iter for os.DirEntry |
| 11 | +- Lib/string |
| 12 | + - Template.substitute(dict): not work |
| 13 | + - capwords: with sep had trailing sep |
| 14 | +- macos: defined(macosx) shall be always used |
| 15 | +- dtoa,pyconfig/floats not compile on arm |
| 16 | +- `x**y` when x is not int not complie |
| 17 | + |
| 18 | +### JS |
| 19 | +- Lib/os not compile |
| 20 | + - getxtime |
| 21 | + - os_impl.waits |
| 22 | + - getpid: due to `Error: invalid pragma: importDenoOrProcess` |
| 23 | + - scandir |
| 24 | + |
| 25 | + |
| 26 | +## Fixes for inconsistence with Python |
| 27 | +- overwrite Nim's SIGINT handler when not defined pylibUseNimIntHandler |
| 28 | +- builtins now contains pyerrors |
| 29 | +- str(tuple): now call str on each item |
| 30 | +- sugar: |
| 31 | + - now rewrite `func(k=v)`'s v, `(e, ...)`'s e |
| 32 | +- sys.hexversion no release and serial; sys.version_info.releaselevel was string over str |
| 33 | +- Lib/string Template.substitute: |
| 34 | + - now raises as py |
| 35 | + - no longer uses std/strutils.`%` |
| 36 | + - Template is now a ref object |
| 37 | +- chore(nimpatch): nansign: `nan` might be negative |
| 38 | + |
| 39 | +### inner |
| 40 | +- addPatch,platformAvailWhen repr bool expr only shows "true"/"false" |
| 41 | + |
| 42 | +## Feature additions |
| 43 | + |
| 44 | +### builtins |
| 45 | +- round(int, int) |
| 46 | +- NameError |
| 47 | +- KeyboardInterrupt |
| 48 | + |
| 49 | +### Lib |
| 50 | +- signal |
| 51 | +- resource |
| 52 | +- unittest: |
| 53 | + - skipTest |
| 54 | + - assertFalse |
| 55 | + - assert{[Not]{IsInstance,In},IsNot,{Greater,Less}[Equal]} |
| 56 | + - assertRaises(TypeError,...) skipIf,skipUnless |
| 57 | +- os: |
| 58 | + - O_* consts |
| 59 | + - wait* func, W* consts |
| 60 | +- sys.float_repr_style |
| 61 | +- n_string |
| 62 | +- string: Template.is_valid,get_identifiers |
| 63 | + |
| 64 | +### inner |
| 65 | +- Lib/enum_impl: intEnum, enumType |
| 66 | +- pyconfig.util from_c_int |
| 67 | +- Python/pylifecycle signal |
| 68 | +- errno_impl.errnoUtils.setErrnoRaw |
| 69 | +- oserr: newErrnoT new raiseErrnoErrT |
| 70 | +- refact(os_impl): Py_get_osfhandle_noraise to util/get_osfhandle |
| 71 | + |
| 72 | +## doc |
| 73 | +- comptime/log1p: add origin impl's url |
| 74 | +- format: fix warnings |
| 75 | +- mustRewriteExtern: condExpr underscore; fix wrong rewrite of strlitQuote |
| 76 | +- readme: update old url, use rel url if possible |
| 77 | + |
| 78 | +## CI |
| 79 | +- min max |
| 80 | +- Lib/string: more for Template |
| 81 | +- mv to testaments/: |
| 82 | + - titers,titer_next,tlist |
| 83 | + - tfloat.nim |
| 84 | + - tdict,tset |
| 85 | +- round: more for float |
| 86 | + |
| 87 | +## impr |
| 88 | +- faster int(char) |
| 89 | +- numTypes.floats: use faster isfinite from isX |
| 90 | + |
| 91 | +## refine |
| 92 | +- repr,$: dict,list,set: merge similar code to strIter |
| 93 | +### Purge warning |
| 94 | +- unused: |
| 95 | + - due to cond branch |
| 96 | + - pyconfig/util.handle_option_bool, jsoserr.jsOs |
| 97 | + - tests/tdecorator.nim |
| 98 | + - itertools: imported but not used sequtils |
0 commit comments