Classic “well it works on my machine” syndrome. Sorry about that.
Testing fixes for both of these issues now.
Classic “well it works on my machine” syndrome. Sorry about that.
Testing fixes for both of these issues now.
No need to be sorry ! ![]()
I am having a blast. And am just reporting what I poke at and I don’t think anyone is expecting everything to work at this point in time.
I understand. I just don’t want to leave people hanging if they’re trying to help me make a better product!
That said, I’m going to move to a PKG installer rather than relying on the user to copy to the right location, or remember to run the vscode update script or install the new BBEdit plist file or configure vscode correctly. I can do all of that for you in an installer and just have it behave correctly out of the box.
Fixes for the debugger stuff released in 0.19.0.
NOTE: we’re now using an installer on macOS. We’re doing this to help users get everything installed correctly the first time:
If you’ve modified your Buoy configuration in VSCode, I suggest that you clear the path to the buoy binary so it just uses the one on the PATH.
It’s fine. we’ve interacted this week probably more than in the entire time I used & worked for Xojo. ![]()
I set up a brand new macOS VM just for checking this. I’m going to look at the settings I have there now.
Grrrr… I lost the Buoy folder icon somehow.
Seems I also broke running from the samples directory because it tries to put the build next to the app.
It’s nice to have someone as enthusiastic about buoy as I am anyway.
I think the issue there is that the install has your user name hard coded for it. (as the picture above shows)
So careful that new machine with same user name might not catch it.
yeah, I’m going to add a scrub mechanism so it’ll show some other username like Corbin_Dallas or something.
CFStringRef FFI type— toll-free bridging for NSString through Declare-based macOS FFI
String API completion.
Crypto Package for Mac, Windows and Linux
Zip, SQLite, Crypto and a test package are now included with the installer. APIs are still subject to change. To use them you’ll need to add an import statement with the package name and the module. To get the module name, you’ll need to open the zip file and look at the manifest. The crypto import is Import cryptoprims.Crypto
Added an AI folder to the installer containing a starter skill for use with your favorite AI client to help it know how to write Buoy code. Work in progress.
Networking sockets — TCPSocket, UDPSocket, IPCSocket, ServerSocket (#23)
Support Boolean ↔ Numeric conversion via CType (#22)
Add Closure type and Lambda expressions for value-capturing closures
Putting multiple statements on the same line is now a compile error
Add a method to the compiler for extracting the internal class name(s)
Add default parameter values and named arguments
Add Shell class - persistent shell subprocess with sync Execute() and async DataAvailable
Add a Currency type
Calling a method on a Nil property no longer SegFaults. A NilObjectException is raised instead.
Bytes.ToString() no longer just returns “(NULL)”
Hey everyone, last night’s work surfaced an interesting issue. I turned on unit testing across the compiler optimization levels using -O0 as the baseline since that’s what I’ve been running and fixing against since day 1.
Severity: High (build break, not a subtle miscompile — any
-O1/-O2/-O3/-Osbuild of a program usingMap/Set/collections, or even plain user code containing an ordinary zero-fill loop, fails to link entirely on Darwin targets)
We’ll get that looked at soon. Sorry about the fail.
Seems I forgot to post…
Merge a user-supplied Info.plist into .app bundle output (#34)
Add Targeted Constants and Localizations
Add SerialPort/SerialConnection serial-port I/O (serialio package) (#33)
Add System.Locale — OS-native number/date/currency formatting (#32)
Add System.GetNetworkInterfaces() and NetworkInterface
Add TLS 1.2/1.3 support to TCPSocket and ServerSocket (#38)
Source Fluent UI System Icons as a cross-platform icon library (#36)
Add SVG file rasterization to Picture
Add TextEncoding support
Add regex package (typed Regex/Match/RegexError), fix core regex cross-linking
Add per-user global package directory (#35)
TCPSocket compiles again for Windows targets
Linux ARM64 now has text-encoding symbols
Sorry everyone. Seems I missed posting about 0.26.0. Here’s everything that’s changed.
NOTE: We have a new agent helping us with bug report triage! It periodically looks at the GitHub issues on the Buoy releases site and does the following:
Right now, triggering this process is manual as we try to save money but ultimately it will be completely automatic including handing it off to another agent to take a first stab at fixing the bug and yet another to do a review, so we can get fixes back in your hands as quickly as possible.
Intel macOS llvm vendoring fixed so debugger should work again
Add missing vscode plugin items
Support ByRef parameters on non-Declare functions, methods, and generics
A Structure with a reference-type field no longer crashes at runtime when returned from a function
Windows are now retained until they close so they don’t get destroyed when the initialization variable goes out of scope
Only search for a static libzstd when LLVM actually links zstd
Class property defaults show correctly in the debugger
Add Break debugger-trap statement
Project-level app resource manifest (app_resources.json) (#42)
Method local declares
Add HTTPServer package
Debugger now shows values at the top level instead of the internal LLVM id
Add TimeZone.OffsetSeconds, make UTC offset computation real (#44)
Allow paren-less calls for zero-argument methods (#43)
Plist override fixes
Fold package declares/ into modules/ for real Private scoping (#41)
Grammar fix on Xojo plugin packaging demo
Package extraction bookkeeping was per-entry-file instead of shared (#39)
Add Variant tagged-union value box package (Xojo-conversion shim)*
Convert DateTime, TimeZone, and TimeInterval to real classes**
Add buoy --list-deprecations to catalog @deprecated declarations***
Close crypto package native/-source bug report, add regression guard
Reject Array.RemoveValue/IndexOf/LastIndexOf/Contains value-type mismatches
Statically link libucrt.a for Windows runtime DLL C99 stdio calls
Resolve receiver.PropertyName(index) as array-property indexing, not a method call
Reject out-of-range float literals instead of crashing the lexer
Reject out-of-range integer literals instead of crashing the lexer
Reject Weak on Shared Property/field instead of segfaulting at runtime
Guard GTK4 popups/dialogs against unrealized/uninitialized toplevel
Windows CRT fd-table functions work without special init; add missing stub exports
Add missing loop-idiom-recognize libc symbols to Darwin libSystem.tbd stubs
Load full certificate chain in server-side TLS
Xor on Integer operands emitted invalid LLVM IR
* It is not our intention to include a Variant type in Buoy for general use.
That said, we need to include something to help with Xojo project conversion.
Our plan is to include a Buoy Package that Xojo users will add to their
project which replicates the Xojo API where there are gaps. This Variant
is a class that enforces strict type usage. That is, if you put in an integer,
you can only get an integer back. There is no implicit type conversion. If you
need that, use CType. NOTE: Variant will be marked as Deprecated from day one.
** Until today, DateTime, TimeZone, and TimeInterval were a special entity that
acted like a value type, generated entirely within the codegen portion of the
compiler. To get the features we want for the future, these three types had to be
converted to classes.
*** The Buoy command now has a --list-deprecations option that will show a list of
deprecated items.