- SIGSEGV proof: able to handle SIGFPE/SIGABRT/SIGSEGV (ususally cause by calling c library)
| name | Panic proof | SIGSEGV proof |
|---|---|---|
| tokio (tested with xtra) | Yes; thread 'tokio-runtime-worker' panicked | No |
| bastion | Yes; error with tracing |
No |
| Play this game by pasting the script in https://auroriax.github.io/PuzzleScript/editor.html |
| import { | |
| component$, | |
| useSignal, | |
| $, | |
| } from "@builder.io/qwik" | |
| import { loader$, DocumentHead } from "@builder.io/qwik-city" | |
| import { scan, Subject } from "rxjs" | |
| export const timeLoader = loader$(() => new Date()) |
| out/ |
| import std/[strformat, strutils, bitops] | |
| import pixie, chroma | |
| # define `nort` when opengl or windows system is not available. | |
| when not defined(nort): | |
| import nimgl/[glfw, opengl] | |
| proc `{}`(image: var Image, x, y: int): var ColorRGBX = | |
| ## Accessing any pixels outside the bounds of the image is error | |
| when not defined(danger): |
| =begin pod | |
| Example Usage: | |
| =begin code | |
| use OpenGL::GLFW:from<Perl5> qw<:all>; | |
| use lib "."; | |
| use ConstCaller; | |
| constant GLFW = ConstCaller.new :package(OpenGL::GLFW.WHO) :prefix<GLFW>; |
| %YAML 1.2 | |
| --- | |
| # See http://www.sublimetext.com/docs/3/syntax.html | |
| file_extensions: [p6, pm6, pod6, raku, rakumod, rakudoc, rakutest, nqp, crotmp] | |
| scope: source.raku | |
| contexts: | |
| # The prototype context is prepended to all contexts but those setting | |
| # meta_include_prototype: false. | |
| prototype: |
| import Data.Colist | |
| InfiniteBits : Type | |
| InfiniteBits = Colist Bool | |
| -- 1.bits << n | |
| record RealData where | |
| constructor MkRealData | |
| n: Int | |
| bits: InfiniteBits |
| name | Panic proof | SIGSEGV proof |
|---|---|---|
| tokio (tested with xtra) | Yes; thread 'tokio-runtime-worker' panicked | No |
| bastion | Yes; error with tracing |
No |
If terminal doesn't have a seperate screen buffer, but allow cursor movement, you can use new linereturn to create the new "screen", not touching the scrollback buffer above.
#############################
###### previous buffer ######
#############################
#############################
#############################
| Koka { | |
| space := "\x01".."\x00" // disable builtin rules | |
| spaces := "" | |
| program = token* | |
| token = whitespace | lexeme | |
| whitespace = white | newline | |
| newline = "\r"? "\n" | |
| white = " " | blockcomment | linecomment | linedirective |