View Source Orb.DSL (Orb v0.1.0)

The main DSL which is imported automatically when you call defw.

Summary

Functions

Asserts a condition that must be true, otherwise traps with unreachable.

Declare a constant string, which will be extracted to the top of the module, and its address substituted in place.

Run code at compile-time.

Run Elixir for-comprehension at compile-time.

Declare a loop that iterates through an Orb.Iterator or Elixir.Range.

A no-op instruction.

Return from a function. You may wish to push/1 values before returning.

Return from a function if a condition is true.

Return from a function with the provided value only if a condition is true.

Denote a point in code that should not be reachable. Traps.

Used to bring back wasm-mode when inside inline/1.

Functions

Asserts a condition that must be true, otherwise traps with unreachable.

Declare a constant string, which will be extracted to the top of the module, and its address substituted in place.

Link to this function

do_snippet(locals, block_items)

View Source
Link to this macro

func(call, list)

View Source (macro)
Link to this macro

func(call, locals, list)

View Source (macro)
Link to this macro

func(call, result_type, locals, list)

View Source (macro)
Link to this macro

funcp(call, list)

View Source (macro)
Link to this macro

funcp(call, locals, list)

View Source (macro)
Link to this macro

funcp(call, result_type, locals, list)

View Source (macro)

Run code at compile-time.

Link to this macro

inline(arg, list)

View Source (macro)

Run Elixir for-comprehension at compile-time.

Link to this macro

loop(arg, list)

View Source (macro)

Declare a loop that iterates through an Orb.Iterator or Elixir.Range.

sum = 0
loop i <- 1..10 do
  sum = sum + i
end
sum = 0
loop _ <- 1..10 do
  sum = sum + 1
end
sum = 0
loop char <- alphabet do
  sum = sum + 1
end
sum = 0
loop char <- alphabet do
  sum = sum + char
end
sum = 0
loop _ <- alphabet do
  sum = sum + 1
end
Link to this macro

loop(identifier, options \\ [], list)

View Source (macro)

Declare a loop.

A no-op instruction.

See https://en.wikipedia.org/wiki/NOP_(code)

Return from a function. You may wish to push/1 values before returning.

Link to this function

return(value_or_condition)

View Source

Return from a function if a condition is true.

Return from a function with the provided value only if a condition is true.

Denote a point in code that should not be reachable. Traps.

Useful for exhaustive conditionals or code you know will not execute.

Link to this macro

wasm(mode \\ Orb.Numeric, list)

View Source (macro)

Used to bring back wasm-mode when inside inline/1.