Skip to content

v0.16.0

Choose a tag to compare

@tyler-zeromatter tyler-zeromatter released this 31 Jul 21:49
· 15 commits to main since this release
dbdd554

Diplomat 0.16.0

syn v3

We've upgraded to syn v3 to stay up to date with newer minor releases of syn (#1228)

.NET backend

Diplomat used to have a .NET backend with the old AST representation. This was removed since we transitioned to the HIR representation, and existing users have been on an old fork of the AST-based backend. Thankfully, first-time contributor irvingoujAtDevolution has been hard at work implementing the new HIR-based .NET backend:

#1164 (co-authored with Claude Code), #1180, #1186, #1191, #1189, #1194, #1195, #1193 (co-authored with Claude Sonnet 4.6), #1201, #1216, #1214, #1213, #1215, #1226, #1225, #1230, #1231

File/Line information in AST Errors

Diplomat Core's MSRV is now 1.88, which enables support for procedural macro locations, which are used in new AST error reports. These new reports highlight line/file information instead of panicking with minimal context. There's a pretty printer that uses annotate-snippets (enabled by default in the tool, enabled elsewhere with the feature flag "pretty-print"), and an ugly printer (uses no extra dependencies, enabled by default in the macro).

This was accomplished in two steps: first, we added proc_macro2::Span information to AST. Subsequently, we made five PRs to replace existing panic!, .expect, and assert! calls in the AST parser with these more detailed reports:

#1172, #1177, #1183, #1206, #1208

Other New Features

Diplomat Core

Diplomat Runtime

C++

Nanobind

Dart

Bugfixes

Diplomat Macro

Diplomat Tool

JS Backend

C++ Backend

Nanobind Backend

Dart Backend

The Book

Misc