New Buoy releases

v0.30.0

Highlights

  1. The VSCode layout editor is coming along! It’s not pretty but quite functional now. Once you’ve written a Window block into a .bui file, a link will appear for switching to the layout editor. There’s a shortcut key in the lower left to help understand how to set positions and anchors. Locks are available in the individual control property lists.

    Please note: the layout solver only runs when you resize the window to avoid the jumpiness that occurs in other layout tools. Please exercise this feature and let us know how it works.

  2. info.plist files are now embedded in macOS console apps.

  3. Added a “container control”

  4. Added an attribute/decorator for converting classes into data marshalling layouts for databases. See @DatabaseRecord in the docs and examples for more info.

New Features

  • Add hotkey legend to layout editor palette

  • Disambiguate layout editor between multiple Window/View blocks in one file

  • Resizable window, multi-select drag, and working snap in layout editor

  • Embed Info.plist in the buoy binary and console-mode macOS executables

  • Add declarative View blocks for “container controls”

  • Add @DatabaseRecord attribute for compile-time database marshaling

Bug Fixes

  • Index Window/View/Control/Constraints as indent-openers in the formatter

  • Correctly update all governing anchors in constraint drag steady-state

  • Only run the solver when resizing the window/view

v0.31.0

Highlights

  1. This release includes the first version of the SQLite plugin with our proposed public database API attached.

    After much discussion, we are aiming at not referring to SQL in the commands that do queries for the express reason that not all data sources are going to be sql-based with the hope that the common adopted language calls will make it easier to move among sql, nosql and other formats.

  2. In VSCode there’s a new Build Config view available for determining what happens when you do a build from within. When you have a .bui file selected, look at the bottom-right of the window, next to the language selection. There’s a new Gear icon there that will let you access those settings. They are stored in a .vscode directory, next to the main()file in your project.

New Features

  • Add Call statement keyword

  • Rewrite database package as SQLiteDatabase backend of stdlib base

  • Backend-agnostic abstract Database base layer in stdlib

  • Per-project VSCode build config for multi-target Buoy compiles

Bug Fixes

  • Don’t let an Abstract method’s optional End consume the enclosing End Class

  • Make layout editor control borders visible in dark themes

  • Stop a stray .buoy/ dir from poisoning project-root detection

  • Relocate and package Linux crt0.o for installed toolchains

  • Defer window close callback off AppKit’s synchronous teardown to stop close-button crash

  • Copy Windows runtime DLLs correctly when -o has no directory component

  • Alphabetize the control lists in the layout editor

  • Reject Optional =/<> comparison in Sema instead of crashing codegen

  • Default uninitialized Array Of T property to empty array

v0.32.0

Lots of requested items in today’s release… XML and PostgreSQL plugins, localization for dates and numbers, etc.

New Features

  • AI coding kit — buoy ai init, MCP docs search, VSCode setup command

  • Add XML package (Xerces-C+±backed DOM core)

  • Suggest event names after Handle in VSCode completion

  • Locale-aware Number/Currency formatting via Locale.FormatNumber/FormatCurrency

  • Flesh out FileSystemItem + FileSystemDrive / System drive enumeration

  • Locale-aware DateTime.ToString

  • Update Zip package’s API in ZipReader/ZipWriter

  • Add System.Folders (SpecialFolder) known-folder resolver

  • Add inline If(condition, trueValue, falseValue) conditional expression

  • Add cross-platform DateTimePicker control

  • Add UDP broadcast and multicast support to UDPSocket

  • Port TLS shim (runtime/tls/TlsC.cpp) from Botan to OpenSSL

  • Port Crypto package native shim from Botan to OpenSSL

  • Add PostgreSQL package (PostgreSQL backend for Database abstract class)

Bug Fixes

  • Ship only cleaned learning chapters

  • Deliver fluenticons as a single compressed .buipkg instead of ~6,238 loose files

  • Default long-form local Array Of T to empty array (urgent segfault)

  • Regression guard + close-loop for macOS window close-box crash (buoy-releases#39)

  • Create Windows named pipe synchronously in ServerSocket.Listen() to close Mode.IPC race

  • Harden DateTimePicker Linux backend against null-deref and floating-ref misuse

  • Call ExitProcess explicitly on Windows so Winsock worker threads can’t block exit

  • Extend Linux libc/libpthread stubs for OpenSSL’s fuller libc surface

  • Disable OpenSSL async/QUIC, fix Linux atexit versioning, extend macOS libc stubs

Two releases today:

v0.33.0

New Features

  • Add System.Microseconds() monotonic elapsed-time counter

  • Add Inline function/method modifier for LLVM alwaysinline

Bug Fixes

  • Claim ownership of array-typed elements in array literal codegen

  • Wrap buoy --help output to 75 columns

v0.34.0

New Features

  • Chained array indexing over nested arrays (theArray(i)(j))

  • Add Locale.ParseNumber for locale-aware string-to-number conversion

  • Add Array.Shuffle in-place shuffle method

Bug Fixes

  • DateTime.MillisFrom1970/SecondsFrom1970 lose all sub-second precision

  • Linux native .so links leak build-machine’s absolute cache path into DT_NEEDED

  • Dedupe vendored license files in packaging scripts

  • Claim ownership of array-typed elements in ARC retain/release loops

  • Flush stdio on Linux exit by calling libc exit() from crt0

  • Claim ownership of array-typed Structure/Record fields in ARC

  • Claim array-typed collection ownership in For Each codegen

  • Claim ownership of array-typed elements in IndexAssign/Append/Insert

Buoy v0.35.0

New Features

  • ByRef works on arrays and every other reference type
  • leak detector reports per-object detail instead of just a count

Bug Fixes

  • retain by-value object/array parameters so reassigning one doesn’t free the caller’s object
  • debugger shows array and composite values instead of empty rows
  • Linux .so SONAME/f + regex packages; WindowsCRT time exports

Something of note…

V0.35.0 is the first version of Buoy where we built the compiler for Linux in parallel with the macOS version. Windows is proving a little more challenging, but we are getting there.

Please make sure to categorize your bug reports in case the issues are Linux specific.

v0.37.0

New Features

  • Windows installers for both Intel and ARM
  • Exit For / Continue For loop-variable
  • For…Downto descending-loop shorthand

Bug Fixes

  • Return loop frame by value from resolveLoopFrame to avoid dangling pointer
  • Guard Exit/Continue loop-variable rejection on recognized operand

Note: Just in case you think you’re missing something, there was no 0.36.0 build. We had a minor glitch in our release workflows that caused us to skip directly from 0.35.0 to 0.36.1 which was all internal changes anyway.

v0.38.0

New Features

  • BuoyScript — embeddable Buoy JIT (LLVM ORCv2)
  • Value-returning Event/Handle/RaiseEvent + HTMLView.CancelLoad
  • Add Application.Executable As FileSystemItem
  • Add WindowType, Window.Close(), and Window.ShowModally
  • Autosave Project Build Settings webview
  • Add System.Log / LogLevels
  • Add System.EnvironmentVariable (get/set)
  • Add System.CPUCount
  • Bare Import falls back to a same-named installed package

Bug Fixes

  • Resolve each library in a multi-library package to its own file
  • Bump brace-expansion to 5.0.8 (alert #27)
  • Nest LogLevels inside Class System
  • Include Windows installer exes in published release assets
  • EmitTryUnwind reverse-iterator invalidated by nested Try in a Finally body
  • Stop false-positive property/method name-collision warning on TimeZone.OffsetFromUtc
  • Release Shared Property object slots at exit, stopping false-positive leak reports

I can confirm this has stopped now.. no more error