Skip to content

Latest commit

 

History

History
242 lines (215 loc) · 27.6 KB

change_log.md

File metadata and controls

242 lines (215 loc) · 27.6 KB

Changelog

[1.8.0] - 2023-06-03

Bug Fixes

  • (uncategorized) 避免宏冲突(963845f)
  • (uncategorized) 不正确的错误码(6f4c7b1)
  • (uncategorized) include macro.h(4ae8744)
  • (uncategorized) find protobuf config.cmake(00283d5)
  • (uncategorized) link to Protobuf::libprotobuf(18800e8)
  • (uncategorized) incorrect assertion & check empty in dtor(b2e1286)
  • (uncategorized) main based on Linux promise(fabe62d)
  • (uncategorized) timeout -> deadline(6f875c5)
  • (uncategorized) use raw_any now(b1b801c)
  • (uncategorized) incorrent #ifdef defined(...)(716407e)
  • (uncategorized) link correct library(d4c9427)
  • (uncategorized) GUN -> GNU, __builtin_expect(6cf7602)
  • (uncategorized) include headers to inline(6a14aca)
  • (uncategorized) empty()/size() don't consider header is null(dd8d8ed)
  • (uncategorized) include macro.h(b475cac)
  • (uncategorized) 0 termination & numeric string size check(ad74d23)
  • (uncategorized) check port is numeric(c988fe8)
  • (uncategorized) incorrect macro(ae57d45)
  • (uncategorized) -Wunused & -Wconversion(4759673)
  • (uncategorized) compatible to -Wdeprecated(66db98d)
  • (uncategorized) WaitForSeconds() ambiguity(ea4fd11)
  • (uncategorized) -Wunused-parameter(6a4d754)
  • (uncategorized) rpc include protobuf config(7609a9f)
  • (uncategorized) large ERRNO_BUFFER_SIZE(881c7c0)
  • (uncategorized) mmkv CI(c727a63)
  • (uncategorized) Append size init = str.size() & char overload(6700ae8)
  • (uncategorized) LogLevel as index(839f799)
  • (uncategorized) reorder headers to avoid include windows.h before winsock2(7fc3db3)
  • (uncategorized) drop_node_size take the actual size(ie. max_size)(86d7ab8)
  • (uncategorized) chunklist iter don't advance(929660f)
  • (uncategorized) use PROJECT_SOURCE_DIR instead of SOURCE_DIR(e979fe6)
  • (uncategorized) rename(41c4e1a)
  • (uncategorized) introduce global timezone and timeval to kanon(e447575)
  • (connection_base) check the error from GetSocketError()(8bd894b)
  • (Buffer) Allow user append data even thought the size header has prepended.(f6fd1e4)
  • (ChunkList) Remove the implementation of ReserveWriteChunk()(87d8e91)
  • (ChunkList) Disable DLOG(...) macro(45fe149)
  • (ChunkList) ReserveChunk() reserve the chunk in buffers_ instead of free_buffers_(057ff41)
  • (kanon-cmake) Correct the wrong variable name(b57c5e6)
  • (FMT_LOG_*) Don't use the data from a temporary object(af1b6d8)
  • (StringViewToU*) Include <cstdint> to import uint*_t(0444872)
  • (ChunkList) Reserve CHUNK_SIZE nodes(dfc3483)
  • (logger) Reorder log level(1799c41)
  • (lexical_cast) extern global cast stream(a70cb75)
  • (CountDownLatch) Ensure thread-safe(777231d)
  • (TcpClient) Cycle reference in close callback(9427cb3)

Documentation

  • (change-log) use git-cliff to generate change-log(76498e8)
  • (change-log) Add scope and commit id(49fca66)
  • (change-log) Complete commit id with URL(952576b)
  • (change-log) v1.1.5(15ef64b)
  • (change-log) Change the incorrect tag name(35c1de5)

Features

  • (uncategorized) 宏自动缩进(fc20359)
  • (uncategorized) Teardown 相关函数(788c770)
  • (uncategorized) operator-=/+=(bef6f7b)
  • (uncategorized) Defer delete macro(ba79061)
  • (uncategorized) MutexGuard dummy variable define macro(7bb65df)
  • (uncategorized) level test(9f2c005)
  • (uncategorized) set log of protobuf and protobuf-rpc(8e0dcc2)
  • (uncategorized) ToUpper/LowerString(4a6d8da)
  • (uncategorized) .gitignore(9622bab)
  • (git-cliff) Add kanon-specific git-cliff config(1a1980a)
  • (change-log) Add script to generate change log(4faef56)
  • (ChunkList) Provide ReserveWriteSpace() for reserve space before append or prepend.(51585d8)
  • (ChunkList) [breaking] Remove ReserveWriteChunk() API(3b3e67f)
  • (RawAny) Add AnyCast2<T>() to replace the AnyCast<T>()(53d0219)
  • (submodule) Add kvarint submodule(ef9ca06)
  • (ProtobufCodec2) Overload the TcpConnection * version of Send()(554a53d)
  • (ProtobufCodec2) Provide a macro to define actual codec class(b69787f)
  • (TcpServer) Provide the ability to apply something to all peers(e599fb2)

Miscellaneous Tasks

  • (core) remove core(301d24e)
  • (compiler-warning) Remove the -Wunused-parameter warnings(8610f54)

Modification

  • (uncategorized) badge(3691a3d)
  • (Win) 避免动态库的*.lib覆盖静态库(c18ad34)
  • (uncategorized) 改不恰当的API为NO_API(b9d30b8)
  • (uncategorized) 完成包数=1时调用GetQueuedCompletionStatus()(2182c40)
  • (uncategorized) patch version(dc4abb9)
  • (uncategorized) inline->KANON_INLINE(5223e7c)
  • (uncategorized) NO_API specifier(aafdb70)
  • (uncategorized) -WConversion warning code(5fc0b04)
  • (uncategorized) reorder member initializer(5ece7d1)
  • (uncategorized) Check more warning(f2a496d)
  • (uncategorized) -Wreturn-local(86f219e)
  • (uncategorized) use LOG_*_KANON macro to log(c1e6939)
  • (uncategorized) use KANON_*_PROTOBUF macro log(601c238)
  • (uncategorized) use LOG_*_KANON_PROTOBUF_RPC to log(ba1a0c7)

Optimization

  • (uncategorized) log level setting(4bad732)
  • (uncategorized) size header prepend don't requires create a new chunk(8408634)

Refactor

  • (CheckStream) [breaking] Remove the chunk_list() method and expose the .chunk_list member data(ie. public member)(1d59e42), BREACKING-CHANGE:The chunk_list() has removed. User must use .chunk_list
  • (rpc-logger) Replace strcmp() by StrCastCompare().(43fd95e)
  • (protobuf-logger) Replace strcmp() by StrCastCompare().(1d78481)
  • (ProtobufCodec2) Remove GetMinSize()(use once)(976a372)
  • (GenericProtobufCodec) Check readable size before OnMessage()(3d1051f)

Testing

  • (ProtoCodec2) Test the ProtobufCodec2 works(e6bd25d)

[1.7.0] - 2023-03-31

Bug Fixes

  • (uncategorized) set channel read callback but not observe the event(3b15612)
  • (uncategorized) convert the port and ip address to network byte order(5c7ecaf)
  • (uncategorized) don't call close callback when POLLIN and POLLHUP all in revents(cef2164)
  • (uncategorized) write error when peer close connection early(5a85751)
  • (uncategorized) INADDR_ANY instead of INADDR_LOOPBACK(8812e03)
  • (uncategorized) compare logic, add: caseCompare, and delete: char[N] constructor(9b997fe)
  • (uncategorized) ambiguous call of ==(5e47e62)
  • (uncategorized) >= ==> <=(2c207c0)
  • (uncategorized) bencxxx and testxxx should be included(f319d65)
  • (uncategorized) make SetupAsyncLog() be used correctly(e1a4ead)
  • (uncategorized) race condition(93321cc)
  • (uncategorized) find_first_not_of(25c7005)
  • (uncategorized) realloc(p,0)(0bbed21)
  • (uncategorized) int2Str() sign(d6f6ea8)
  • (uncategorized) client work normally in the async env(d9a77e2)
  • (uncategorized) rename(8616cf6)
  • (uncategorized) logic(10b9e22)
  • (uncategorized) substr_range(862bd5b)
  • (uncategorized) forceclose() condition(d5ed6b3)
  • (uncategorized) no ThreadInitCallback, do nothing(1be2af6)
  • (uncategorized) std::iterator is deprecated in C++17(0293a24)
  • (uncategorized) unexpected Shrink()(a820aeb)
  • (uncategorized) clone() correct implementation(7275137)
  • (uncategorized) Don't include platform macro(89911a2)
  • (uncategorized) strcasecmp() useless in MSVC(d04774d)
  • (uncategorized) Pid() in MSVC(7b7e8f1)
  • (uncategorized) TLS specifier(050272e)
  • (uncategorized) 保证CMake内置变量同步(4586be5)
  • (uncategorized) 放在project()后面,以防部分变量失效,比如CMAKE_COMPILER_ID(784d1ae)
  • (uncategorized) Don't lock in Wait()(15238d2)
  • (uncategorized) gtest benchmark use cmake find_package()(e40e4f3)
  • (uncategorized) win_last_strerror() on windows only(de6a3ab)
  • (uncategorized) Add() operator is + instead of -(a7c2cb1)
  • (uncategorized) To Wakeup(), allow empty completion context(3be4fe3)
  • (uncategorized) check if connection is established even the write callback be called(a773091)
  • (uncategorized) AdvanceAll() after call StringMessageCallback(cca200d)
  • (uncategorized) Async message print order(incomplete!)(248353b)
  • (uncategorized) call size version drop API to delete nodes(f3169ae)
  • (uncategorized) return after calling retry()(69cbaf7)
  • (uncategorized) latch count down after print(c774af9)
  • (uncategorized) timer* should be wriable in Linux(1cc422f)
  • (uncategorized) GCC requires this->shared_from_this()(79e8c7c)
  • (uncategorized) Remove wsabuf in Linux(2085177)
  • (uncategorized) using namespace kanon(6c9ea12)
  • (uncategorized) modify header name(f9434f1)
  • (uncategorized) using namespace kanon::detail(9f16175)
  • (uncategorized) include required headers(e597203)
  • (uncategorized) modify header path(bc57aec)
  • (uncategorized) writev() requires <sys/uio.h>(70a44b8)
  • (uncategorized) Channel add SetEvents() in Linux(da6085b)
  • (uncategorized) complete BufferReadFromFd()(9149fcc)
  • (uncategorized) clang-format think these aux macro as statement to format(0a1391b)
  • (uncategorized) modify incorrect type(78c183f)
  • (uncategorized) CMAKE_CURRENT_BINARY_DIR(66f9b10)
  • (uncategorized) cmake build must specify config type on Windows(3585948)
  • (uncategorized) Liunx -> Linux(c14a45c)
  • (uncategorized) BufferOverlapRecv() called only on windows(5f5a42e)
  • (uncategorized) template explicit instantiation should put to source(a15d40d)
  • (uncategorized) GUNC->GNUC(5c6b66a)
  • (uncategorized) include compiler_macro.h(ae34522)
  • (uncategorized) add blank before **/*(3d36217)
  • (uncategorized) add libgc only KANON_TESTS specified(9ccf87b)

Features

  • (uncategorized) init function(2e55927)
  • (uncategorized) win has no ssize_t(aecea93)
  • (uncategorized) POller implemented by IOCP(d999ca6)
  • (uncategorized) compatible Win(3de674c)
  • (uncategorized) IOCP completion aux(865be14)
  • (uncategorized) init(2)(5b9f5d4)
  • (uncategorized) Event part split(37e3f13)
  • (uncategorized) endian_api(2)(30e120b)
  • (uncategorized) gettid() compatible(828835a)
  • (uncategorized) (drop_node|erase_*)_size API(990cd04)
  • (uncategorized) version 1.7.0(1646416)
  • (uncategorized) cmake CI on windows(268bf5c)
  • (uncategorized) copy dll to execute program directory(7af8b41)
  • (uncategorized) CMake usage(eaa93bc)

Modification

  • (uncategorized) specifier(0dc977f)
  • (uncategorized) Win gettimeofday() impl(4508eae)
  • (uncategorized) Win replace setbuffer() with setvbuf()(5c5a49a)
  • (uncategorized) platform related(28382b7)
  • (uncategorized) prefer function to set global state instead file scope variable(5e4ac3c)
  • (uncategorized) client compatible(3548fc5)
  • (uncategorized) socket compatible(6b01d0e)
  • (uncategorized) get Win thread id(1c04b25)
  • (uncategorized) compatible(NOT complete)(3c0227c)
  • (uncategorized) GetSocketError() compatible & FIX: ConnectEx() bind addr(b1f11ff)
  • (uncategorized) print config file path to debug(b6e3630)
  • (uncategorized) cmake windows CI(1daa2f0)
  • (uncategorized) trigger based on paths(ed96fe9)
  • (uncategorized) complete trigger(6d0d49b)
  • (uncategorized) badge(2c12ddf)
  • (uncategorized) define dll macros when building and linking(484b1e4)
  • (uncategorized) DLL export specifier & KANON_NOEXCEPT & KANON_INLINE replace(b7fb03c)
  • (uncategorized) paths(ba2173f)
  • (uncategorized) add blank after **/*(d408326)

Windows change

  • (uncategorized) ANSI Terminal color(49406fb)
  • (uncategorized) Channel design split(eacd5d6)
  • (uncategorized) TimerQueue split(612ec28)
  • (uncategorized) sock API split(2b7944d)
  • (uncategorized) remove sys/time.h(140237c)
  • (uncategorized) Connection for IOCP(55a7801)
  • (uncategorized) Connector compatible(1be556f)
  • (uncategorized) event loop compatible(fafe984)
  • (uncategorized) inet addr compatible(b74edb0)