Releases: Noelware/violet
26.05.03
- (breaking) Violet will now require the MSVC flag
/Zc:preprocessorto be present
Noelware.Violet
- (breaking) Remove violet::Optional<T&> in favour of violet::Optional<std::reference_wrapper<T>> (@auguwu)
Noelware.Violet.Experimental
- Don't decay return types in
OneOf::Visit(@auguwu) - Add default constructor for
OneOfif the first type is default constructible (@auguwu) - Add const&& overload for
OneOf::Visit(@auguwu)
Git History: 26.05.02...26.05.03
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.05.03")
archive_override(
module_name = "violet",
integrity = "sha256-4ADMnuxPJ332n0YYOgZJnSEJelvVCnZ/ikMZDGMHRic=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.05.03/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.05.03/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.05.02
Noelware.Violet
- Add violet::Some, which acts like violet::Ok but for optional values (@auguwu)
Noelware.Violet.Experimental
- Add TypeId for safe, no-RTTI-enabled type indexes (@auguwu)
- Add Mono for a replacement for
std::monostate(@auguwu)
Git History: 26.05.01...26.05.02
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.05.02")
archive_override(
module_name = "violet",
integrity = "sha256-n5DobNlhEnvnogVeccDFYnz4B3QfG2GLfnu7eLuByZs=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.05.02/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.05.02/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.05.01
Noelware.Violet
- Make
violet::Okas a struct instead of a constexpr function (@auguwu) - Added an implicit converting constructor from
violet::Err<Other>->violet::Err<E>whenE
is constructible fromOther, which fixes issues withVIOLET_TRYonviolet::io::Error(@auguwu) - Replaced the unconstrained
Tconstructor in violet::anyhow::Error that conflicted with the new forwarding, constrainedE&&overload (@auguwu)
Git History: 26.05...26.05.01
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.05.01")
archive_override(
module_name = "violet",
integrity = "sha256-akdqERBZHgYmSg+Vk5cJeoeN81HkkWVHQuF1mFikxzY=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.05.01/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.05.01/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.05
- Breaking: All Bazel targets now use hidden visibility by default, public APIs will be marked with
VIOLET_API(@auguwu)- On Windows, you can set the
win32_dllexportflag to True (--@violet//:win32_dllexport=[True|False]) so that MSVC will see__declspec(dllexport)instead of__declspec(dllimport).
- On Windows, you can set the
- There is now more annotations related to lifetime bounds and more. (@auguwu)
Noelware.Violet
- Add operator bool() definition to
violet::Bitflags(@auguwu) - Make the default constructor for violet::terminal::Style be the "reset" marker (
\033[0m) (@auguwu) - Add violet::Defer and violet::CancellableDefer (and C-style macros) (@auguwu)
- Add violet::strings::Join and violet::strings::Lines utility (@auguwu)
- Fix return type errors in violet::Result (@auguwu)
- Improve iterators framework (@auguwu)
MkIterablenow supports rvalues correctly- Containers that have
.begin()and.end()can resolve intoMkIterablecorrectly
Noelware.Violet.IO
- Add implicit copy/move constructors for Error and PlatformError (@auguwu)
Noelware.Violet.Experimental
- Delete copy constructors for OneOf<Ts...> if
<Ts...>has one or more non-copyable constructors/copy assignments (@auguwu)
Noelware.Violet.Experimental.Threading
- Add thread cancellation (CancellationToken, CancellationTokenSource) (@auguwu)
Git History: 26.04.06...26.05
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.05")
archive_override(
module_name = "violet",
integrity = "sha256-WYubGRUtRaxzI0+ejVSzNqqyqte7jtS699RQoAHcC08=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.05/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.05/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.04.06
Noelware.Violet
- Fix GCC errors when __builtin_COLUMN() doesn't exist and
#pragmaerrors as well (@auguwu) - Optional and Result now use the infrastructure of violet::SourceLocation and violet::PrintErrln (@auguwu)
Git History: 26.04.05...26.04.06
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.04.06")
archive_override(
module_name = "violet",
integrity = "sha256-dflFOFXdkm7btK0+Pbz0CbToDRswbP4ptWgrPzgU7aY=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.04.06/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.04.06/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.04.05
Noelware.Violet
- Add violet/SourceLocation.h header to bridge std::source_location so it can be constructible (@auguwu)
Git History: 26.04.04...26.04.05
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.04.05")
archive_override(
module_name = "violet",
integrity = "sha256-rfQn8x8F6SaBa3DFv2lEzpp1lS7GT6X9TMhPV64XQn4=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.04.05/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.04.05/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.04.04
Noelware.Violet
- Add violet/Print.h header to bridge the
<print>header in C++23 that works in C++20 (@auguwu) - Moved all assertion logic into
violet/Language/Assert.hso that it doesn't have to depend onviolet/Violet.hif it is not needed (@auguwu)
Noelware.Violet.Experimental
- SmolString now uses Violet's assertion logic rather than C's
assertmacro (@auguwu) - Fix bug in OneOf where
OneOf<Ts...>::IndexOf<T>doesn't remove cvref qualifiers and other magic stuff (@auguwu)
Git History: 26.04.03...26.04.04
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.04.04")
archive_override(
module_name = "violet",
integrity = "sha256-uQLdUAY5RxqcrbqwAcw3uZ1PDk4Nzj7PJtyHn6p1SmA=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.04.04/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.04.04/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.04.03
Noelware.Violet
- Fix missing
dummy.ccfile when using any framework-specific targets like@violet//:violet(@auguwu)
Noelware.Violet.IO
- Add io::Error::FromOSError to use a OS error instead of
errno(on Unix) (@auguwu)
Git History: 26.04.02...26.04.03
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.04.03")
archive_override(
module_name = "violet",
integrity = "sha256-zp852KQyziNMKBm1Xoha5p8h1aKHTgR9D/122d1zojc=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.04.03/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.04.03/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.04.02
- Fix distribution tool from removing a needed
cc_libraryrule (@auguwu)
Git History: 26.04.01...26.04.02
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.04.02")
archive_override(
module_name = "violet",
integrity = "sha256-STTXuB9S404JUufhC9g/hFPvPsmHLud7bZN4hyJzyAY=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.04.02/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.04.02/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!
26.04.01
Noelware.Violet
- Allow violet::Optional to hold references (@auguwu)
Noelware.Violet.Experimental
- Introduce violet::experimental::OneOf, a experimental type to be used as a discriminated union. (@auguwu)
Noelware.Violet.IO
- Reimplement violet::io::ReadToString for readable types (@auguwu)
- Fix issues within the
Vec<UInt8>reader (@auguwu)
Noelware.Violet.IO.Experimental
- Fully implement violet::io::experimental::ReadToString for any input streams and allow a
Stringtype to be specified that implements the following constraints: (@auguwu)type value_type = ...;must be presenttype size_type = ...;must be presentString::reserve(size_type)must be presentString::append(value_type*, size_type)must be present
- Fix bug in ReadToString and ByteArrayInputStream when reading will overflow a
UInt8due to a dev issue (@auguwu)
Git History: 26.04...26.04.01
Bazel
As of 21/01/26, we have plans on uploading all Noelware.Violet frameworks onto the BCR and our own (
https://bzl.noelware.cloud). It could exist right now, if you are, you can use--registry=https://bzl.noelware.cloudand all frameworks will be available.
bazel_dep(name = "violet", version = "26.04.01")
archive_override(
module_name = "violet",
integrity = "sha256-XfH3Rcu2vfkoYhaxSss0LzmBR4MaNbGTnS9gke85uIs=",
urls = [
# "https://artifacts.noelware.org/bazel-registry/violet/26.04.01/bazeldist.tgz",
"https://github.com/Noelware/violet/releases/download/26.04.01/bazeldist.tgz",
]
)CMake
Right now, it is not the best to use the frameworks in a CMake environment! ehehe...~
Meson
Using the frameworks in a Meson environment is not ready yet!
GN ("Generate Ninja")
Using the frameworks in a GN environment is not ready yet!