There is no more #webpack in #artichoke. All web properties have been migrated to esbuild, eta template engine, the Node fs API, and custom build scripts. This is simple, this is good. #hypstatic is next but there is a lot to unwind. #win

permalink

In #aws things, I migrated both hyperbola and #artichoke infra to separate AWS organizations and set them up with AWS Control Tower's account vending machine. Audit logs! AWS Config! SCPs! AWS Cost and Usage Reports! AWS SSO! #win #security #cost

permalink

I got a PR in artichoke suggesting to bump down the frequency of dependabot updates to monthly. I applied this change across all artichoke, hyperbola, and lopopolo repositories. It has been a big quality of life improvement and cuts down on a lot of churn in JS dependencies. Applying dep updates once a month is 👍 #win #artichoke

permalink

focaccia and roe are UTF-8 case manipulation crates for implementing parts of `String` and `Symbol` in #artichoke. intaglio is Artichoke's symbol table, boba is an implementation of Bubble Babble Encoding which will be used in the `digest` stdlib package. #rust #patch

permalink

After repeated attempts of replicating my windows CI setup in a developer VM, I sloppily installed software via web installers. With every VS component, rustup, RubyInstaller, LLVM, choco, and winflexbison, I was running with a reproducer #artichoke

permalink
Post image

Nightly builds of Artichoke are available via ruby-build: rbenv install artichoke-dev #artichoke #win

permalink

Migrated all #artichoke CI to GitHub Actions #github #win Jobs and workflows are so much easier to reason about. And it's free 💪

permalink

Also added many more converter implementations with macros. There are 988 TryConvert implementations. #win #fail #artichoke

permalink

This change added new functionality: Converting to and from byte and string slices #win #artichoke

permalink
Post image

The converters are central to #artichoke. Changing this core abstraction was painful: 84 files changed, 2000 lines added, 2800 lines removed. #fail #git

permalink

The converters allow the runtime to convert between Rust and Ruby types. They are the glue that the entire Ruby Core and Ruby Standard Library implementation is built upon. #artichoke

permalink

I'm separating the core of #artichoke from the #mruby backend specific glue. This step involved reimplementing the converters with the new traits in core.

permalink

Neither mruby-sys nor onig can build with wasm-unknown-unknown or wasm-wasi, so I was stuck with wasm-unknown-emscripten. The linker on mruby-sys would dead code eliminate artichoke_backend::Artichoke #fail #Wasm #artichoke #mruby

permalink

One of the goals is to have a #Wasm build target. This is what nerdsniped me this weekend. #artichoke

permalink

Being forced to set up the repository infra from scratch in cactusref was a good way to fix everything I disliked about my dev environment. CircleCI build and scripts/lint.sh got overhauled #win #artichoke #shell #bash #node #lint

permalink

With renewed focus of building my own #Ruby instead of extending #mruby, I put in some effort to make mruby an implementation detail of #artichoke. Lots of refactoring with sed. #fail

permalink

ferrocarril had different goals than artichoke: it wanted to run Rails. To do that, it had a lot of extra bits in it like gems, a Rack server, and sample apps. Nuked all of it #win #artichoke

permalink

Step 2: transfer ownership of ferrocarril to artichoke organization #artichoke #github. Not much to do here, updated some links, fixed some branding, got CircleCI building again #artichoke

permalink

CactusRef is still an incredibly unsafe crate, but at least it aborts if it detects a use-after-free #fail #artichoke

permalink

Extracting cactusref required completely rewriting #git history, updating docs, adding a build, adding benches, importing my blog post, updating links in the blog post #artichoke

permalink