~/talk

From Zero to Three - Building a User Friendly DSL with Scala 3

Talkat Scala Love in the City 2021 · on Saturday, 2021-02-13· [scala, cryptography]
links:none on file
slides:none on file

A domain-specific language for multiparty computation at Inpher is implemented as an embedded, two-stage DSL in Scala 3 using top-level functions to bootstrap user code, context functions to inject execution and MPC contexts, and hygienic Scala 3 macros (inline + quotes/splices) to detect external inputs and produce staged ASTs. The team trades some compile-time type safety for clearer staged error messages, uses Mill and Metals/VS Code, fixes minor Dotty bugs, ports macro-heavy deps, and reports the approach as practical and working.

AI-written summary · about

  1. 0:00Introduction
  2. 0:38Welcome
  3. 1:08Background
  4. 3:35Context
  5. 4:53Why Scala 3
  6. 5:36External DSL
  7. 6:15Goals
  8. 7:38Approach
  9. 8:28Example
  10. 10:21Structure
  11. 13:16Top Level Functions
  12. 14:42Implicit Parameters
  13. 16:54Implicit Functions for Debugging
  14. 18:02Context Functions for Debugging
  15. 19:25High Level Language
  16. 20:43MultiParty Block
  17. 22:14Implicit Not Found
  18. 25:39Macros Overview
  19. 26:49Expanded Macros
  20. 27:34Whitebox Macros
  21. 28:54Example repo
  22. 29:06Alternative approaches
  23. 31:03What were the challenges
  24. 33:18Lack of documentation
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.