github.com/xg0n/routine@v0.0.0-20240119033701-c364deb94aee/CHANGELOG.md (about)

     1  <!--变更日志-->
     2  
     3  # v1.1.3 Release notes
     4  
     5  ### Features
     6  
     7  - Support go version range `go1.18` ~ `go1.21`.
     8  - Support `generic` programming.
     9  
    10  # Links
    11  
    12  - Source code [https://github.com/timandy/routine/tree/v1.1.3](https://github.com/timandy/routine/tree/v1.1.3)
    13  
    14  ---
    15  
    16  # v1.1.2 Release notes
    17  
    18  ### Features
    19  
    20  - Support go version range `go1.13` ~ `go1.21`(New support `go1.21`).
    21  - Support capture values of `InheritableThreadLocal` by `WrapTask()`, `WrapWaitTask()` and `WrapWaitResultTask()` methods.
    22  - Support run `FutureTask` by `FutureTask.Run()` method.
    23  - Define function type `Runnable` and `FutureCallable`.
    24  
    25  ### Changes
    26  
    27  - Rename type `Future` to `FutureTask`.
    28  - Skip first runtime panic stack automatically for `RuntimeError`.
    29  
    30  # Links
    31  
    32  - Source code [https://github.com/timandy/routine/tree/v1.1.2](https://github.com/timandy/routine/tree/v1.1.2)
    33  
    34  ---
    35  
    36  # v1.1.1 Release notes
    37  
    38  ### Features
    39  
    40  - Support go version range `go1.13` ~ `go1.20`(New support `go1.20`).
    41  
    42  ### Changes
    43  
    44  - Fix a memory leak risk caused by Timer.
    45  - Reduce memory by using less chan.
    46  - Update copyright.
    47  
    48  # Links
    49  
    50  - Source code [https://github.com/timandy/routine/tree/v1.1.1](https://github.com/timandy/routine/tree/v1.1.1)
    51  
    52  ---
    53  
    54  # v1.1.0 Release notes
    55  
    56  ### Features
    57  
    58  - Support more arch `loong64`, `mips`, `mipsle`, `mips64`, `mips64le`, `ppc64le`, `riscv64`, `wasm`.
    59  
    60  ### Changes
    61  
    62  - Upgrade dependencies to the latest version.
    63  - Modify continuous integration script to support go1.19.
    64  
    65  # Links
    66  
    67  - Source code [https://github.com/timandy/routine/tree/v1.1.0](https://github.com/timandy/routine/tree/v1.1.0)
    68  
    69  ---
    70  
    71  # v1.0.9 Release notes
    72  
    73  ### Features
    74  
    75  - Support arch `386` & `amd64` on `freebsd` and arch `ppc64` & `s390x` on `linux`.
    76  - Support `Cancel()` and `GetWithTimeout()` methods for type `Future`.
    77  - Support checking whether the tasks created by `GoWait(CancelRunnable)` and `GoWaitResult(CancelCallable)` methods are canceled.
    78  
    79  ### Changes
    80  
    81  - Fix spell error of type `Future`.
    82  - Rename type `Any` to `any`.
    83  
    84  # Links
    85  
    86  - Source code [https://github.com/timandy/routine/tree/v1.0.9](https://github.com/timandy/routine/tree/v1.0.9)
    87  
    88  ---
    89  
    90  # v1.0.8 Release notes
    91  
    92  ### Changes
    93  
    94  - Rename `StackError` to `RuntimeError`.
    95  - Support error nesting for `RuntimeError`.
    96  - Beautify the error message of `RuntimeError`.
    97  - Remove `bytesconv.Bytes()` and `bytesconv.String()` methods.
    98  - Restore to the previous value if an overflow occurs when getting the index of `ThreadLocal`.
    99  
   100  # Links
   101  
   102  - Source code [https://github.com/timandy/routine/tree/v1.0.8](https://github.com/timandy/routine/tree/v1.0.8)
   103  
   104  ---
   105  
   106  # v1.0.7 Release notes
   107  
   108  ### Bugs
   109  
   110  - Fix released `thread` struct may be resurrected from invalid memory and cause fault error.
   111  
   112  ### Changes
   113  
   114  - Modify the error message format of `StackError`.
   115  - Define function type `Supplier` for `threadLocal` and `inheritableThreadLocal` types.
   116  - Define function type `Runnable` and `Callable` for `Go(Runnable)`, `GoWait(Runnable)` and `GoWaitResult(Callable)` methods.
   117  
   118  # Links
   119  
   120  - Source code [https://github.com/timandy/routine/tree/v1.0.7](https://github.com/timandy/routine/tree/v1.0.7)
   121  
   122  ---
   123  
   124  # v1.0.6 Release notes
   125  
   126  ### Bugs
   127  
   128  - Fix fault error when pprof is running.
   129  
   130  ### Features
   131  
   132  - Support more architectures `386`, `amd64`, `armv6`, `armv7`, `arm64`.
   133  
   134  ### Changes
   135  
   136  - Read and write `coroutine` information through the `gohack` library, theoretically support unreleased `go` versions in the future.
   137  - When `runtime.g` cannot be obtained natively, `panic` directly instead of falling back to invoke `runtime.Stack()` method.
   138  - Remove api `ThreadLocal.Id()`.
   139  
   140  # Links
   141  
   142  - Source code [https://github.com/timandy/routine/tree/v1.0.6](https://github.com/timandy/routine/tree/v1.0.6)
   143  
   144  ---
   145  
   146  # v1.0.5 Release notes
   147  
   148  ### Features
   149  
   150  - Support go version range `go1.13` ~ `go1.18`(New support `go1.18`).
   151  
   152  ### Changes
   153  
   154  - Change license to `Apache-2.0`.
   155  - Upgrade dependencies to the latest version.
   156  
   157  # Links
   158  
   159  - Source code [https://github.com/timandy/routine/tree/v1.0.5](https://github.com/timandy/routine/tree/v1.0.5)
   160  
   161  ---
   162  
   163  # v1.0.4 Release notes
   164  
   165  ### Features
   166  
   167  - Add zero-copy conversion method between `bytes` and `string`, see `bytesconv.Bytes()` and `bytesconv.String()` methods.
   168  
   169  ### Changes
   170  
   171  - Modify the garbage collection mechanism, remove `gcTimer`, no longer perform garbage collection through timers.
   172  - Store the context in the `g.labels` field of the coroutine structure which will be set to `nil` after coroutine ends. The context data will be collected at the next `GC`.
   173  - Use `go:linkname` to invoke assembly code `getg()` directly to improve performance.
   174  - Implement the `getGoidByStack()` method by invoke `http.http2curGoroutineID()`.
   175  - Remove api `AllGoids()` and `ForeachGoid()`.
   176  
   177  # Links
   178  
   179  - Source code [https://github.com/timandy/routine/tree/v1.0.4](https://github.com/timandy/routine/tree/v1.0.4)
   180  
   181  ---
   182  
   183  # v1.0.3 Release notes
   184  
   185  ### Features
   186  
   187  - Support copy `Cloneable` objects to sub goroutine when create sub goroutines by `Go()`, `GoWait()` and `GoWaitResult()` methods.
   188  - Add api `ForeachGoid(func(goid int64))` to run a func for each goid.
   189  
   190  ### Changes
   191  
   192  - Support go version range `go1.13` ~ `go1.17`(Not support `go1.12` anymore).
   193  - Use segment locks to reduce competition and improve `ThreadLocal`'s `read`, `write` and `gc` performance.
   194  - Get all goids through `runtime.allgs` instead of `runtime.atomicAllG`, so `go1.13` ~ `go1.15` can also get all goids natively.
   195  
   196  # Links
   197  
   198  - Source code [https://github.com/timandy/routine/tree/v1.0.3](https://github.com/timandy/routine/tree/v1.0.3)
   199  
   200  ---
   201  
   202  # v1.0.2 Release notes
   203  
   204  ### Bugs
   205  
   206  - Fix bug in `getAllGoidByStack()` method, Buffer may too small when dump all stack info.
   207  
   208  ### Features
   209  
   210  - Support initialize value when first get from `ThreadLocal`.
   211  - Add `StackError` to catch stack info.
   212  - Add `Feature` to wait goroutine finished or get result from goroutine.
   213  - Add api `NewThreadLocalWithInitial()`, `NewInheritableThreadLocal()` and `NewInheritableThreadLocalWithInitial()`.
   214  - Support Inherit values of `ThreadLocal` by `Go`, `GoWait()` and `GoWaitResult()`.
   215  
   216  ### Changes
   217  
   218  - Rename `LocalStorage` to `ThreadLocal`.
   219  - Remove api `Clear()`, `InheritContext()` and `RestoreContext()`.
   220  - Improve `gc` performance by reducing the number of for loops.
   221  
   222  # Links
   223  
   224  - Source code [https://github.com/timandy/routine/tree/v1.0.2](https://github.com/timandy/routine/tree/v1.0.2)
   225  
   226  ---
   227  
   228  # v1.0.1 Release notes
   229  
   230  ### Features
   231  
   232  - Improve performance by use slice to store goroutine local values.
   233  - Optimize `clearDeadStore()` method.
   234  
   235  # Links
   236  
   237  - Source code [https://github.com/timandy/routine/tree/v1.0.1](https://github.com/timandy/routine/tree/v1.0.1)
   238  
   239  ---
   240  
   241  # v1.0.0 Release notes
   242  
   243  `This is the first stable version available for production. It is highly recommended to upgrade to this version if you have used a previous version.`
   244  
   245  ### Bugs
   246  
   247  - Fix `NewLocalStorage()` always return the same value, so we can define multi `LocalStorage` instances.
   248  - Fix `NewLocalStorage()` clear other `LocalStorage`'s value.
   249  - Fix `RestoreContext()` not clear values when restore from empty `*ImmutableContext`.
   250  
   251  ### Features
   252  
   253  - Not force create `store` when invoke `Get()`, `Remove()`, `Clear()`, `BackupContext()` methods to reduce memory usage.
   254  
   255  ### Changes
   256  
   257  - Rename `InheritContext()` to `RestoreContext()`.
   258  - Rename `Del()` to `Remove()`.
   259  - Move Clear() method to `routine` package.
   260  
   261  # Links
   262  
   263  - Source code [https://github.com/timandy/routine/tree/v1.0.0](https://github.com/timandy/routine/tree/v1.0.0)
   264  
   265  ---
   266  
   267  # v0.0.2 Release notes
   268  
   269  ### Features
   270  
   271  - Support go version range `go1.12` ~ `go1.17`(New support `go1.17`).
   272  - Enable GitHub actions for continuous integration.
   273  
   274  ### Known Issues
   275  
   276  - `NewLocalStorage()` always return the same value.
   277  
   278  # Links
   279  
   280  - Source code [https://github.com/timandy/routine/tree/v0.0.2](https://github.com/timandy/routine/tree/v0.0.2)
   281  
   282  ---
   283  
   284  # v0.0.1 Release notes
   285  
   286  ### Features
   287  
   288  - Support go version range `go1.12` ~ `go1.16`.
   289  - Support `Goid()` to get current goroutine id.
   290  - Support `AllGoids` to get all goroutine ids.
   291  - Support `ThreadLocal` to save values ingo to goroutine.
   292  
   293  ### Known Issues
   294  
   295  - `NewLocalStorage()` always return the same value.
   296  
   297  # Links
   298  
   299  - Source code [https://github.com/timandy/routine/tree/v0.0.1](https://github.com/timandy/routine/tree/v0.0.1)