Skip to content

Releases: Noelware/violet

26.05.03

19 Apr 06:43
25a9798

Choose a tag to compare

  • (breaking) Violet will now require the MSVC flag /Zc:preprocessor to 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 OneOf if 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.cloud and 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

14 Apr 03:07
1f8e590

Choose a tag to compare

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.cloud and 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

12 Apr 00:11
535a729

Choose a tag to compare

Noelware.Violet

  • Make violet::Ok as a struct instead of a constexpr function (@auguwu)
  • Added an implicit converting constructor from violet::Err<Other> -> violet::Err<E> when E
    is constructible from Other, which fixes issues with VIOLET_TRY on violet::io::Error (@auguwu)
  • Replaced the unconstrained T constructor in violet::anyhow::Error that conflicted with the new forwarding, constrained E&& 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.cloud and 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

06 Apr 23:53
4e27967

Choose a tag to compare

  • 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_dllexport flag to True (--@violet//:win32_dllexport=[True|False]) so that MSVC will see __declspec(dllexport) instead of __declspec(dllimport).
  • 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)
    • MkIterable now supports rvalues correctly
    • Containers that have .begin() and .end() can resolve into MkIterable correctly

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.cloud and 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

24 Mar 22:44
99c0e1d

Choose a tag to compare

Noelware.Violet

  • Fix GCC errors when __builtin_COLUMN() doesn't exist and #pragma errors 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.cloud and 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

24 Mar 20:17
ad03da8

Choose a tag to compare

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.cloud and 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

21 Mar 22:20
94d522e

Choose a tag to compare

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.h so that it doesn't have to depend on violet/Violet.h if it is not needed (@auguwu)

Noelware.Violet.Experimental

  • SmolString now uses Violet's assertion logic rather than C's assert macro (@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.cloud and 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

17 Mar 04:52
616f39e

Choose a tag to compare

Noelware.Violet

  • Fix missing dummy.cc file 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.cloud and 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

16 Mar 00:00

Choose a tag to compare

  • Fix distribution tool from removing a needed cc_library rule (@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.cloud and 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

14 Mar 00:05
bff4d12

Choose a tag to compare

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 String type to be specified that implements the following constraints: (@auguwu)
    • type value_type = ...; must be present
    • type size_type = ...; must be present
    • String::reserve(size_type) must be present
    • String::append(value_type*, size_type) must be present
  • Fix bug in ReadToString and ByteArrayInputStream when reading will overflow a UInt8 due 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.cloud and 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!