scraps of a potential language

Overview

seaslug

small, beautiful, knowable, DOESN'T EXIST YET LOL

  • non-turing complete, verified terminating code placed into well-defined interfaces similar to Erlang behaviors
  • strongly typed, powerful inference to minimize type noise
  • a runtime built from the beginning to take advantage of io_uring, immutable messaging, optimistic STM, and generally paying attention to modern scheduling research
    • the runtime tracks overall utilization and saturation
    • aims to maximize utilization while minimizing saturation (writes before reads before accepts for sockets)
    • infers contention causality encountered in the optimistic state layer and learns to step in as a traffic director, letting users avoid thinking about contention
  • leans into linear logic to enforce error handling in well-specified hierarchies, similar to Erlang supervisors
  • interpreter-first, but the interpreter itself aims to compile quickly so you can produce static optimized native binaries (something something Futamura something...)
  • built-in first-class fault injection, fuzzing, network simulation, model-based testing, and concurrent interleaving exploration
  • rich built-in data structures, first-class json support, first-class binary parsing support
seaslug should be an ideal language for building
  • databases
  • distributed systems
  • servers
  • scalable concurrent systems
  • multitenant infrastructure
seaslug does not aim to excel at
  • building your own data structures
  • intensive numerical processing
  • short-lived CLI applications
  • embedded programming
ideas that may or may not lead to seaslug
  • erlang's terseness, behaviors, focus on immutable message passing, explicit supervisor hierarchies, pattern matching, binary parsing capabilities
  • celf's nondeterminism and linear logic
  • constraint handling rules's verification opportunities
  • prolog's declarative debugging, tables, provability of pure code
  • total functional programming's restrictions on recursion and looping
seaslug is written in rust and takes advantage of things like
  • io_uring
  • simdjson
  • sled
  • software transactional memory
You might also like...
a simple compiled language i made in rust. it uses intermediate representation (IR) instead of an abstract syntax tree (AST).

a simple compiled language i made in rust. it uses intermediate representation (IR) instead of an abstract syntax tree (AST).

A compiler for the esoteric language ℂ.

The ℂ Programming Language It's a language where the only types are "complex number" and "matrix of complex numbers". In particular, this means you ca

Frame is a markdown language for creating state machines (automata) in 7 programming languages as well as generating UML documentation.

Frame Language Transpiler v0.5.1 Hi! So very glad you are interested in Frame. Frame system design markdown language for software architects and engin

beat saber is a strongly typed, self-documenting and highly performant programming language

beatsaber beat saber is a strongly typed, self-documenting and highly performant programming language. With beat saber we aimed to create a language t

Analogous, indented syntax for the Rust programming language.

Note: After experimenting with this in the wild, I have found representing keywords as symbols to be far less readable in large codebases. Additionall

A cell-based esoteric programming language

Tape A cell-based esoteric programming language Tape is a cell-based, brainfuck-like programming language that has a readable syntax and a non-wasted

 RusTiny -- A Rust implementation of Tiny+ language
RusTiny -- A Rust implementation of Tiny+ language

RusTiny -- A Rust implementation of Tiny+ language 编译器实践 基本要求: 参考《编译原理及实践》的TINY语言编译器(已上传到群中)完成TINY+ 语言(见附录 A)的解释器:即给定满足 TINY+语言的源代码输入,你的解 释器可以给出对其的解释执

Programming language from down under, inspired by this Reddit post.
Programming language from down under, inspired by this Reddit post.

aussie++ Programming language from down under, inspired by this Reddit post. View live demo here. Special thanks to MarkWhyBird, louis100, and others

An experimental logical language

Last Order Logic An experimental logical language. Based on paper Last Order Logic. Motivation In First Order Logic, the truth values of quantified ex

Comments
  • Invalid layout assumptions for std::net::SocketAddrV{4, 6}

    Invalid layout assumptions for std::net::SocketAddrV{4, 6}

    https://github.com/spacejam/seaslug/blob/63d16b867465214384cd58c06be59239d9861ef8/src/io/io_uring/uring.rs#L610-L621

    This code assumes that the layout of std::net::SocketAddrV{4,6} matches libc::sockaddr, but std makes no such promise. See rust-lang/rust#78802 for more details.

    Example fixes: tokio-rs/mio#1388, rust-lang/socket2#120.

    opened by a1phyr 0
Owner
Tyler Neely
reliable stateful systems at scale
Tyler Neely
A language server implementation for the WGSL shading language

wgsl-analyzer wgsl-analyzer is a language server plugin for the WGSL Shading language. It comes with a VS Code plugin located in ./editors/code, but d

null 155 Jan 2, 2023
The SATySFi Language Server

[WIP] SATySFi Language Server This repository is work-in-progress yet. Features Kind Function Done codeAction Add the definition of an undefined comma

monaqa 50 Dec 24, 2022
A language server for lua written in rust

lua-analyzer lua-analyzer is a lsp server for lua. This is mostly for me to learn the lsp protocol and language analysis so suggestions are helpful. T

null 61 Dec 11, 2022
A scripting language that allows complex key remapping on Linux.

Map2 A scripting language that allows complex key remapping on Linux, written in Rust. All of the functionality related to interacting with graphical

Matt 99 Dec 6, 2022
Uindex is a data store, for data that can be parsed as sentences in some context-free language.

Uindex - Universal index Uindex is a data store, for data that can be parsed as sentences in some context-free language.

Enrique Pérez Arnaud 3 Jul 20, 2021
A simple programming language for everyone.

Slang A simple programming language for everyone, made with Rust. State In very early stages. Plan is to create a byte-code compiler and make that exe

Slang, Inc. 11 Jul 1, 2022
A programming language. Better mantra pending.

Dusk Dusk is a programming language I've been working on on and off for the past while now. It's still very much in its infancy (... a quick look thro

Kaylynn Morgan 14 Oct 24, 2022
very cool esoteric language pls use

okfrick has one memory pointer has less than 5 characters hopefully works well is turing complete (possibly) + - increase memeory pointer value ( - st

null 3 Jun 24, 2021
Ruxnasm is an assembler for Uxntal — a programming language for the Uxn stack-machine by Hundred Rabbits

Ruxnasm is an assembler for Uxntal — a programming language for the Uxn stack-machine by Hundred Rabbits. Ruxnasm strives to be an alternative to Uxnasm, featuring more user-friendly error reporting, warnings, and helpful hints, reminiscent of those seen in modern compilers for languages such as Rust or Elm.

Karol Belina 44 Oct 4, 2022
A Simple, But amazing telegram bot, Made using the Rust language!

Telegram bot in Rust A fun Telegram bot made using Rust language.

Deep Alchemy 2 Dec 21, 2021