gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

CHANGELOG.md (11600B)


      1 # v0.10.2 - 2023/03/20
      2 
      3 ### New features
      4 
      5 * Support DebugDOT option for debugging encoder ( #440 )
      6 
      7 ### Fix bugs
      8 
      9 * Fix combination of embedding structure and omitempty option ( #442 )
     10 
     11 # v0.10.1 - 2023/03/13
     12 
     13 ### Fix bugs
     14 
     15 * Fix checkptr error for array decoder ( #415 )
     16 * Fix added buffer size check when decoding key ( #430 )
     17 * Fix handling of anonymous fields other than struct ( #431 )
     18 * Fix to not optimize when lower conversion can't handle byte-by-byte ( #432 )
     19 * Fix a problem that MarshalIndent does not work when UnorderedMap is specified ( #435 )
     20 * Fix mapDecoder.DecodeStream() for empty objects containing whitespace ( #425 )
     21 * Fix an issue that could not set the correct NextField for fields in the embedded structure ( #438 )
     22 
     23 # v0.10.0 - 2022/11/29
     24 
     25 ### New features
     26 
     27 * Support JSON Path ( #250 )
     28 
     29 ### Fix bugs
     30 
     31 * Fix marshaler for map's key ( #409 )
     32 
     33 # v0.9.11 - 2022/08/18
     34 
     35 ### Fix bugs
     36 
     37 * Fix unexpected behavior when buffer ends with backslash ( #383 )
     38 * Fix stream decoding of escaped character ( #387 )
     39 
     40 # v0.9.10 - 2022/07/15
     41 
     42 ### Fix bugs
     43 
     44 * Fix boundary exception of type caching ( #382 )
     45 
     46 # v0.9.9 - 2022/07/15
     47 
     48 ### Fix bugs
     49 
     50 * Fix encoding of directed interface with typed nil ( #377 )
     51 * Fix embedded primitive type encoding using alias ( #378 )
     52 * Fix slice/array type encoding with types implementing MarshalJSON ( #379 )
     53 * Fix unicode decoding when the expected buffer state is not met after reading ( #380 )
     54 
     55 # v0.9.8 - 2022/06/30
     56 
     57 ### Fix bugs
     58 
     59 * Fix decoding of surrogate-pair ( #365 )
     60 * Fix handling of embedded primitive type ( #366 )
     61 * Add validation of escape sequence for decoder ( #367 )
     62 * Fix stream tokenizing respecting UseNumber ( #369 )
     63 * Fix encoding when struct pointer type that implements Marshal JSON is embedded ( #375 )
     64 
     65 ### Improve performance
     66 
     67 * Improve performance of linkRecursiveCode ( #368 )
     68 
     69 # v0.9.7 - 2022/04/22
     70 
     71 ### Fix bugs
     72 
     73 #### Encoder
     74 
     75 * Add filtering process for encoding on slow path ( #355 )
     76 * Fix encoding of interface{} with pointer type ( #363 )
     77 
     78 #### Decoder
     79 
     80 * Fix map key decoder that implements UnmarshalJSON ( #353 )
     81 * Fix decoding of []uint8 type ( #361 )
     82 
     83 ### New features
     84 
     85 * Add DebugWith option for encoder ( #356 )
     86 
     87 # v0.9.6 - 2022/03/22
     88 
     89 ### Fix bugs
     90 
     91 * Correct the handling of the minimum value of int type for decoder ( #344 )
     92 * Fix bugs of stream decoder's bufferSize ( #349 )
     93 * Add a guard to use typeptr more safely ( #351 )
     94 
     95 ### Improve decoder performance
     96 
     97 * Improve escapeString's performance ( #345 )
     98 
     99 ### Others
    100 
    101 * Update go version for CI ( #347 )
    102 
    103 # v0.9.5 - 2022/03/04
    104 
    105 ### Fix bugs
    106 
    107 * Fix panic when decoding time.Time with context ( #328 )
    108 * Fix reading the next character in buffer to nul consideration ( #338 )
    109 * Fix incorrect handling on skipValue ( #341 )
    110 
    111 ### Improve decoder performance
    112 
    113 * Improve performance when a payload contains escape sequence ( #334 )
    114 
    115 # v0.9.4 - 2022/01/21
    116 
    117 * Fix IsNilForMarshaler for string type with omitempty ( #323 )
    118 * Fix the case where the embedded field is at the end ( #326 )
    119 
    120 # v0.9.3 - 2022/01/14
    121 
    122 * Fix logic of removing struct field for decoder ( #322 )
    123 
    124 # v0.9.2 - 2022/01/14
    125 
    126 * Add invalid decoder to delay type error judgment at decode ( #321 )
    127 
    128 # v0.9.1 - 2022/01/11
    129 
    130 * Fix encoding of MarshalText/MarshalJSON operation with head offset ( #319 )
    131 
    132 # v0.9.0 - 2022/01/05
    133 
    134 ### New feature
    135 
    136 * Supports dynamic filtering of struct fields ( #314 )
    137 
    138 ### Improve encoding performance
    139 
    140 * Improve map encoding performance ( #310 )
    141 * Optimize encoding path for escaped string ( #311 )
    142 * Add encoding option for performance ( #312 )
    143 
    144 ### Fix bugs
    145 
    146 * Fix panic at encoding map value on 1.18 ( #310 )
    147 * Fix MarshalIndent for interface type ( #317 )
    148 
    149 # v0.8.1 - 2021/12/05
    150 
    151 * Fix operation conversion from PtrHead to Head in Recursive type ( #305 )
    152 
    153 # v0.8.0 - 2021/12/02
    154 
    155 * Fix embedded field conflict behavior ( #300 )
    156 * Refactor compiler for encoder ( #301 #302 )
    157 
    158 # v0.7.10 - 2021/10/16
    159 
    160 * Fix conversion from pointer to uint64  ( #294 )
    161 
    162 # v0.7.9 - 2021/09/28
    163 
    164 * Fix encoding of nil value about interface type that has method ( #291 )
    165 
    166 # v0.7.8 - 2021/09/01
    167 
    168 * Fix mapassign_faststr for indirect struct type ( #283 )
    169 * Fix encoding of not empty interface type ( #284 )
    170 * Fix encoding of empty struct interface type ( #286 )
    171 
    172 # v0.7.7 - 2021/08/25
    173 
    174 * Fix invalid utf8 on stream decoder ( #279 )
    175 * Fix buffer length bug on string stream decoder ( #280 )
    176 
    177 Thank you @orisano !!
    178 
    179 # v0.7.6 - 2021/08/13
    180 
    181 * Fix nil slice assignment ( #276 )
    182 * Improve error message ( #277 )
    183 
    184 # v0.7.5 - 2021/08/12
    185 
    186 * Fix encoding of embedded struct with tags ( #265 )
    187 * Fix encoding of embedded struct that isn't first field ( #272 )
    188 * Fix decoding of binary type with escaped char ( #273 )
    189 
    190 # v0.7.4 - 2021/07/06
    191 
    192 * Fix encoding of indirect layout structure ( #264 )
    193 
    194 # v0.7.3 - 2021/06/29
    195 
    196 * Fix encoding of pointer type in empty interface ( #262 )
    197 
    198 # v0.7.2 - 2021/06/26
    199 
    200 ### Fix decoder
    201 
    202 * Add decoder for func type to fix decoding of nil function value ( #257 )
    203 * Fix stream decoding of []byte type ( #258 )
    204 
    205 ### Performance
    206 
    207 * Improve decoding performance of map[string]interface{} type ( use `mapassign_faststr` ) ( #256 )
    208 * Improve encoding performance of empty interface type ( remove recursive calling of `vm.Run` ) ( #259 )
    209 
    210 ### Benchmark
    211 
    212 * Add bytedance/sonic as benchmark target ( #254 )
    213 
    214 # v0.7.1 - 2021/06/18
    215 
    216 ### Fix decoder
    217 
    218 * Fix error when unmarshal empty array ( #253 )
    219 
    220 # v0.7.0 - 2021/06/12
    221 
    222 ### Support context for MarshalJSON and UnmarshalJSON ( #248 )
    223 
    224 * json.MarshalContext(context.Context, interface{}, ...json.EncodeOption) ([]byte, error)
    225 * json.NewEncoder(io.Writer).EncodeContext(context.Context, interface{}, ...json.EncodeOption) error
    226 * json.UnmarshalContext(context.Context, []byte, interface{}, ...json.DecodeOption) error
    227 * json.NewDecoder(io.Reader).DecodeContext(context.Context, interface{}) error
    228 
    229 ```go
    230 type MarshalerContext interface {
    231   MarshalJSON(context.Context) ([]byte, error)
    232 }
    233 
    234 type UnmarshalerContext interface {
    235   UnmarshalJSON(context.Context, []byte) error
    236 }
    237 ```
    238 
    239 ### Add DecodeFieldPriorityFirstWin option ( #242 )
    240 
    241 In the default behavior, go-json, like encoding/json, will reflect the result of the last evaluation when a field with the same name exists. I've added new options to allow you to change this behavior. `json.DecodeFieldPriorityFirstWin` option reflects the result of the first evaluation if a field with the same name exists. This behavior has a performance advantage as it allows the subsequent strings to be skipped if all fields have been evaluated.
    242 
    243 ### Fix encoder
    244 
    245 * Fix indent number contains recursive type ( #249 )
    246 * Fix encoding of using empty interface as map key ( #244 )
    247 
    248 ### Fix decoder
    249 
    250 * Fix decoding fields containing escaped characters ( #237 )
    251 
    252 ### Refactor
    253 
    254 * Move some tests to subdirectory ( #243 )
    255 * Refactor package layout for decoder ( #238 )
    256 
    257 # v0.6.1 - 2021/06/02
    258 
    259 ### Fix encoder
    260 
    261 * Fix value of totalLength for encoding ( #236 )
    262 
    263 # v0.6.0 - 2021/06/01
    264 
    265 ### Support Colorize option for encoding (#233)
    266 
    267 ```go
    268 b, err := json.MarshalWithOption(v, json.Colorize(json.DefaultColorScheme))
    269 if err != nil {
    270   ...
    271 }
    272 fmt.Println(string(b)) // print colored json
    273 ```
    274 
    275 ### Refactor
    276 
    277 * Fix opcode layout - Adjust memory layout of the opcode to 128 bytes in a 64-bit environment ( #230 )
    278 * Refactor encode option ( #231 )
    279 * Refactor escape string ( #232 )
    280 
    281 # v0.5.1 - 2021/5/20
    282 
    283 ### Optimization
    284 
    285 * Add type addrShift to enable bigger encoder/decoder cache ( #213 )
    286 
    287 ### Fix decoder
    288 
    289 * Keep original reference of slice element ( #229 )
    290 
    291 ### Refactor
    292 
    293 * Refactor Debug mode for encoding ( #226 )
    294 * Generate VM sources for encoding ( #227 )
    295 * Refactor validator for null/true/false for decoding ( #221 )
    296 
    297 # v0.5.0 - 2021/5/9
    298 
    299 ### Supports using omitempty and string tags at the same time ( #216 )
    300 
    301 ### Fix decoder
    302 
    303 * Fix stream decoder for unicode char ( #215 )
    304 * Fix decoding of slice element ( #219 )
    305 * Fix calculating of buffer length for stream decoder ( #220 )
    306 
    307 ### Refactor
    308 
    309 * replace skipWhiteSpace goto by loop ( #212 )
    310 
    311 # v0.4.14 - 2021/5/4
    312 
    313 ### Benchmark
    314 
    315 * Add valyala/fastjson to benchmark ( #193 )
    316 * Add benchmark task for CI ( #211 )
    317 
    318 ### Fix decoder
    319 
    320 * Fix decoding of slice with unmarshal json type ( #198 )
    321 * Fix decoding of null value for interface type that does not implement Unmarshaler ( #205 )
    322 * Fix decoding of null value to []byte by json.Unmarshal ( #206 )
    323 * Fix decoding of backslash char at the end of string ( #207 )
    324 * Fix stream decoder for null/true/false value ( #208 )
    325 * Fix stream decoder for slow reader ( #211 )
    326 
    327 ### Performance
    328 
    329 * If cap of slice is enough, reuse slice data for compatibility with encoding/json ( #200 )
    330 
    331 # v0.4.13 - 2021/4/20
    332 
    333 ### Fix json.Compact and json.Indent
    334 
    335 * Support validation the input buffer for json.Compact and json.Indent ( #189 )
    336 * Optimize json.Compact and json.Indent ( improve memory footprint ) ( #190 )
    337 
    338 # v0.4.12 - 2021/4/15
    339 
    340 ### Fix encoder
    341 
    342 * Fix unnecessary indent for empty slice type ( #181 )
    343 * Fix encoding of omitempty feature for the slice or interface type ( #183 )
    344 * Fix encoding custom types zero values with omitempty when marshaller exists ( #187 )
    345 
    346 ### Fix decoder
    347 
    348 * Fix decoder for invalid top level value ( #184 )
    349 * Fix decoder for invalid number value ( #185 )
    350 
    351 # v0.4.11 - 2021/4/3
    352 
    353 * Improve decoder performance for interface type
    354 
    355 # v0.4.10 - 2021/4/2
    356 
    357 ### Fix encoder
    358 
    359 * Fixed a bug when encoding slice and map containing recursive structures
    360 * Fixed a logic to determine if indirect reference
    361 
    362 # v0.4.9 - 2021/3/29
    363 
    364 ### Add debug mode
    365 
    366 If you use `json.MarshalWithOption(v, json.Debug())` and `panic` occurred in `go-json`, produces debug information to console.
    367 
    368 ### Support a new feature to compatible with encoding/json
    369 
    370 - invalid UTF-8 is coerced to valid UTF-8 ( without performance down )
    371 
    372 ### Fix encoder
    373 
    374 - Fixed handling of MarshalJSON of function type
    375 
    376 ### Fix decoding of slice of pointer type
    377 
    378 If there is a pointer value, go-json will use it. (This behavior is necessary to achieve the ability to prioritize pre-filled values). However, since slices are reused internally, there was a bug that referred to the previous pointer value. Therefore, it is not necessary to refer to the pointer value in advance for the slice element, so we explicitly initialize slice element by `nil`.
    379 
    380 # v0.4.8 - 2021/3/21
    381 
    382 ### Reduce memory usage at compile time
    383 
    384 * go-json have used about 2GB of memory at compile time, but now it can compile with about less than 550MB.
    385 
    386 ### Fix any encoder's bug
    387 
    388 * Add many test cases for encoder
    389 * Fix composite type ( slice/array/map )
    390 * Fix pointer types
    391 * Fix encoding of MarshalJSON or MarshalText or json.Number type
    392 
    393 ### Refactor encoder
    394 
    395 * Change package layout for reducing memory usage at compile
    396 * Remove anonymous and only operation
    397 * Remove root property from encodeCompileContext and opcode
    398 
    399 ### Fix CI
    400 
    401 * Add Go 1.16
    402 * Remove Go 1.13
    403 * Fix `make cover` task
    404 
    405 ### Number/Delim/Token/RawMessage use the types defined in encoding/json by type alias
    406 
    407 # v0.4.7 - 2021/02/22
    408 
    409 ### Fix decoder
    410 
    411 * Fix decoding of deep recursive structure
    412 * Fix decoding of embedded unexported pointer field
    413 * Fix invalid test case
    414 * Fix decoding of invalid value
    415 * Fix decoding of prefilled value
    416 * Fix not being able to return UnmarshalTypeError when it should be returned
    417 * Fix decoding of null value
    418 * Fix decoding of type of null string
    419 * Use pre allocated pointer if exists it at decoding
    420 
    421 ### Reduce memory usage at compile
    422 
    423 * Integrate int/int8/int16/int32/int64 and uint/uint8/uint16/uint32/uint64 operation to reduce memory usage at compile
    424 
    425 ### Remove unnecessary optype