Jul 20, 2023

Mechanism for returning to a specific point from a deeply nested stack

LongJump essentially provides a multi-level return. You can mark a spot with setjump and then unwind the stack back to that point from any nested stack frame by name using longjump. You can also provide a list of return values.

This is not quite a match for C’s long jump, but it is “close enough”. It is safer than C’s jump in that it only lets you escape frames by going up the stack, you cannot jump in other ways.

Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler