Requiem for a Stringref

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
Nutrient – The #1 PDF SDK Library, trusted by 10K+ developers
Other PDF SDKs promise a lot - then break. Laggy scrolling, poor mobile UX, tons of bugs, and lack of support cost you endless frustrations. Nutrient’s SDK handles billion-page workloads - so you don’t have to debug PDFs. Used by ~1 billion end users in more than 150 different countries.
www.nutrient.io
featured
  1. SSVM

    WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.

    WasmEdge isn't there yet: https://github.com/WasmEdge/WasmEdge/issues/1122#issuecommen...

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. wasmtime

    A lightweight WebAssembly runtime that is fast, secure, and standards-compliant

    WasmTime finished finished the RFC for the implementation details in June: https://github.com/bytecodealliance/wasmtime/issues/5032

  4. jdk7u-jdk

    Here is the JDK 7 String#hashCode(), which operates on characters: https://github.com/openjdk-mirror/jdk7u-jdk/blob/f4d80957e89....

    That's changed in the newer versions, because String has a `byte[]` not a `char[]`, but it was just fine. A hash algorithm can take in bytes, characters, ints, it doesn't matter.

    In Java, you don't get access to the bytes that make up a string, to preserve the string's immutability. So for many operations where you might operate on bytes in a lower level language, you end up using characters (unless you're the standard library, and you can finagle access to the bytes), or alternately doing a byte copy of the entire string.

    I admit, checksums using characters are a bit weird sounding, but they should also be perfectly well-defined.

  5. design

    WebAssembly Design Documents

    > To work with GC, you need some way to track if the GC'd object is accessible in WASM itself.

    I've never heard of a GC with that kind of API. Usually any native code that holds a GC reference would either mark that reference as a root explicitly (eg. https://github.com/WebAssembly/design/issues/1459) or ensure that it can be traced from a parent object. Either way, this should prevent collection of the object. I agree that explicitly checking whether a GC'd object has been freed would not make any sense.

    > The reason why you probably need a custom string type is so you can actually embed string literals without relying on interop with the environment.

    WASM already has ways of embedding flat string data. This can be materialized into GC/heap objects at module startup. This must happen in some form anyway, as all GC-able objects must be registered with the GC upon creation, for them to be discoverable as candidates for collection.

    Overall I still don't understand the issue. There is so much prior art for these patterns in native extensions for Python, PHP, Ruby, etc.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Easier examples for the WasmEdge Rust SDK to get started with this Wasm runtime quickly.

    5 projects | /r/rust | 5 Dec 2022
  • Mod_WASM: Run WebAssembly with Apache

    2 projects | news.ycombinator.com | 3 Oct 2022
  • What are the advantages or disadvantages of compiling to VM Bytecode vs native machine code?

    8 projects | /r/ProgrammingLanguages | 17 May 2022
  • WebAssembly

    4 projects | dev.to | 31 Oct 2021
  • Expose My Secrets, Ruin My Life, Please!

    2 projects | /r/node | 15 Jan 2021