Benki β†’ Bookmarks

β‡  previous page next page β‡’

Medley, the Interlisp development environment, is now free software.

Interlisp represents one of the two branches of Lisp that eventually culminated in Common Lisp, Lisp Machine Lisp/Maclisp being the other. Its development environment was way ahead of its time, including a structured code editor and an a graphical user interface built for interactive development.

Links:

A proposal for a dialect of C that is free of undefined behavior.

Now, undefined behavior is, of course, useful to compiler vendors because it enables certain optimizations. But in my mind it just makes a C a strange language without a clear idea of itself: It is not the portable assembly language that many of its users treat it as, one that you can rely on to translate into predictable hardware-level instructions; yet at the same time it is not a high-level language either, unsafety and machine specifics lurking behind every corner.

The same author later follows up rejecting the idea of achieving broad consensus before implementing such a dialect as unrealistic. Instead, they argue, someone influentual enough should just pave the way by writing their code in a Friendly C and making it the quasi-standard.

It is clearly a bad idea to use jakarta.json.Json, which looks up jakarta.json.spi.JsonProvider using java.util.ServiceLoader for each method call:

perf: Reuse a single JsonProvider.

This speeds up the formatter significantly.

Before:

    Benchmark                                         Mode  Cnt     Score      Error  Units
    FormatterBenchmark.massivelyStructuredLogRecord  thrpt   10  6552.727 Β± 2169.572  ops/s
    FormatterBenchmark.simpleLogRecord               thrpt   10  8126.699 Β± 2259.912  ops/s
    FormatterBenchmark.structuredLogRecord           thrpt   10  5594.849 Β± 1129.151  ops/s

After:

    Benchmark                                         Mode  Cnt       Score        Error  Units
    FormatterBenchmark.massivelyStructuredLogRecord  thrpt   10  137879.001 Β±  30467.644  ops/s
    FormatterBenchmark.simpleLogRecord               thrpt   10  896085.217 Β± 249890.421  ops/s
    FormatterBenchmark.structuredLogRecord           thrpt   10  553428.807 Β± 194787.754  ops/s

Creates WebAssembly components from JavaScript by embedding a full SpiderMonkey runtime in each component.

The resulting components are large, but not as slow as you might think.

A systems programming language that is a superset of Python. Targets AI development. Has an ownership model similar to Rust’s, but has an otherwise simpler type system with a focus on compilation speed.

If someone can pull it off, Chris Lattner can.

β‡  previous page next page β‡’