Benki β†’ All Posts

β‡  previous page next page β‡’

Extends HTML with an expression language that enables dynamic modifications in a declarative way.

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.

β‡  previous page next page β‡’