Advertisement ยท 728 ร— 90

Posts by Oliver Medhurst

I will (suddenly) be at fosdem if you want to meet up!

2 months ago 11 0 1 0

I open settings in an app by a company valued at >$15B. the ui is different. I get a popup: "settings is under construction". audibly sighed out loud.

4 months ago 19 0 0 0

very fair, genuinely thanks for sharing

5 months ago 1 0 0 0

what is your honest opinion on bluesky as a twitter ~alt, for less work/tech and more typical social media?

5 months ago 1 0 7 0

owned this domain before you and didn't renew, glad it went to good use o7

5 months ago 4 0 0 0

dev here ๐Ÿ‘‹ not yet but definitely interesting in doing it (just annoying to setup)

7 months ago 3 0 1 0

I used LLRT's Lambda release without the SDK. I tried round-trip latency but couldn't get good measurements, but I'm not an AWS person. I think duration is most important as this is specifically cold starts but happy to follow up.

8 months ago 2 0 1 0

Thanks! Yes, there are a surprisingly number of use cases and embedded is a big one like any environment where you can't JIT but want better performance then interpreting.

For embedded you can either use Wasm or Porffor's compile to C feature and give that to some proprietary compiler, etc

8 months ago 1 0 0 0
Advertisement

Yeah afaik that is just AWS overhead

8 months ago 0 0 1 0
A graph of Porffor cold starts. P50: 16.3ms, P90: 27.5ms, P99: 41.1ms.

A graph of Porffor cold starts. P50: 16.3ms, P90: 27.5ms, P99: 41.1ms.

My ahead-of-time JS engine Porffor eliminates JS cold starts on AWS Lambda. 12x faster and 2x cheaper than managed Node. Still very early but these results should speak for themselves :)

goose.icu/lambda/

8 months ago 92 12 6 0

potential outcomes:
- we both waste 5 minutes
- I waste a few hours
- we cry with joy :)

8 months ago 5 0 0 0

If you have AWS Lambdas with a small amount of (Node)JS please DM me :)

8 months ago 10 0 2 0

Oh yeah, but I mean it relies on the engine itself having asan etc

9 months ago 3 0 1 0

Yeah, Fuzzili is very cool but hard to integrate, especially since it is made for being used with coverage and sanitizers which I don't have ๐Ÿ˜…

9 months ago 1 0 1 0

I like the idea of using a small model but I think it would heavily limit throughput. It currently runs >1k cases/second and it would probably be much less even with a tiny model running locally ๐Ÿ˜…

9 months ago 2 0 1 0
Porffor's graph of Test262 passing over time, currently at 60.30%

Porffor's graph of Test262 passing over time, currently at 60.30%

Porffor now passes over 60% of Test262, thanks to a new custom regex engine!

9 months ago 80 5 3 1

Random template generation, only generates valid JS! github.com/CanadaHonk/p...

9 months ago 4 0 1 0
fuzzing complete
๐Ÿงช 78500 | ๐Ÿค  92% | โŒ 0.0% | ๐Ÿ’€ 0.33% | ๐Ÿ—๏ธ 3.7% | ๐Ÿ’ฅ 0.0% | โฐ 3.6% | ๐Ÿ“ 0.0%


   3.6% timeout
   2.3% CompileError: WebAssembly.Module(): Compiling function #0 failed: expected 2 elements on the stack for branch, found 0
  0.68% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 3
  0.39% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 4294967295
  0.23% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 4
  0.23% RangeError: Maximum call stack size exceeded
  0.10% RuntimeError: memory access out of bounds
 0.059% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 5
 0.023% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 6
0.0025% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 8

fuzzing complete ๐Ÿงช 78500 | ๐Ÿค  92% | โŒ 0.0% | ๐Ÿ’€ 0.33% | ๐Ÿ—๏ธ 3.7% | ๐Ÿ’ฅ 0.0% | โฐ 3.6% | ๐Ÿ“ 0.0% 3.6% timeout 2.3% CompileError: WebAssembly.Module(): Compiling function #0 failed: expected 2 elements on the stack for branch, found 0 0.68% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 3 0.39% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 4294967295 0.23% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 4 0.23% RangeError: Maximum call stack size exceeded 0.10% RuntimeError: memory access out of bounds 0.059% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 5 0.023% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 6 0.0025% CompileError: WebAssembly.Module(): Compiling function #0 failed: invalid branch depth: 8

Porffor now has its own fuzzer which abuses the compiler with randomly generated JS code in an attempt to find bugs which would otherwise not be found to help stability!

9 months ago 53 4 4 0
Advertisement
GitHub - tc39/proposal-math-clamp: A TC39 proposal to add Math.clamp A TC39 proposal to add Math.clamp. Contribute to tc39/proposal-math-clamp development by creating an account on GitHub.

ECMAScript excitement ๐Ÿ˜‰

Congrats to @goose.icu on advancing the Math.clamp proposal to Stage 2 at TC39 today ๐ŸŽ‰

Math.clamp(number, min, max) constrains the number to be between the stated range ๐Ÿ‘

github.com/tc39/proposa...

10 months ago 49 3 2 0
Screenshot of a terminal showing:

~/porffor$ node test262
test: 29837/50424 passed - 59.17% (+0.45) (14 to go until 59.2%, 417 to go until 60%)
 29837                                                      7425           12893
  ๐Ÿงช 50424 | ๐Ÿค  29837 (+227) | โŒ 7425 (-71) | ๐Ÿ’€ 12878 (-157) | ๐Ÿ“ 0 | โฐ 15 (+1) | ๐Ÿ—๏ธ 7 | ๐Ÿ’ฅ 262

Screenshot of a terminal showing: ~/porffor$ node test262 test: 29837/50424 passed - 59.17% (+0.45) (14 to go until 59.2%, 417 to go until 60%) 29837 7425 12893 ๐Ÿงช 50424 | ๐Ÿค  29837 (+227) | โŒ 7425 (-71) | ๐Ÿ’€ 12878 (-157) | ๐Ÿ“ 0 | โฐ 15 (+1) | ๐Ÿ—๏ธ 7 | ๐Ÿ’ฅ 262

Porffor now passes over 59% of Test262!

10 months ago 57 3 1 1

theoretically any two runtimes but that remains to ever been seen/accepted in practice

10 months ago 2 0 0 0
~/porffor$ node bench/avg.js 10 "node --jitless bench/richards.js"
313
~/porffor$ node bench/avg.js 10 "./porf bench/richards.js"
272

~/porffor$ node bench/avg.js 10 "node --jitless bench/richards.js" 313 ~/porffor$ node bench/avg.js 10 "./porf bench/richards.js" 272

Porffor's Wasm is now faster than *native* Node JITless at richards.js, an old V8 benchmark!

new improvement is thanks to a new compiler feature and a minor object rewrite I'll post about this weekend. I still have ideas which can make this hopefully almost 2x faster this month!

11 months ago 51 7 1 0

sample profile: profile.porffor.dev/5903c8d87fb3

from today, just run `porf profile foo.js` and in just a few moments get your own profile link to share

11 months ago 6 0 1 0
A screenshot of a web flamegraph/profiler UI

A screenshot of a web flamegraph/profiler UI

introducing porffor profile, an easy to use but detailed profiler, with shareable links!

11 months ago 31 2 2 0

always getting an error for BHM?

11 months ago 1 0 1 0
Advertisement
Preview
GitHub - CanadaHonk/porffor: A from-scratch experimental AOT JS engine, written in JS A from-scratch experimental AOT JS engine, written in JS - CanadaHonk/porffor

just had a great catch up with @goose.icu on porffor progress. keep an eye on this project ๐Ÿ‘€ there's so many perf gains to be had from it once it is stable

1 year ago 24 1 0 0
A Porffor JS REPL:

> let foo = new BigInt64Array(4)
undefined
> foo[0] = 1337n // just a bigint
1337n
> foo[0] = 1 // not a bigint, error and ignore
Uncaught TypeError: Cannot convert to BigInt
> foo[1] = 4294967296n // over 32 bit unsigned limit
4294967296n
> foo[2] = 4611686018427387904n // near 64 bit signed limit, over accurate float limit
4611686018427387904n
> foo
BigInt64Array(4) [ 1337n, 4294967296n, 4611686018427387904n, 0n ]

A Porffor JS REPL: > let foo = new BigInt64Array(4) undefined > foo[0] = 1337n // just a bigint 1337n > foo[0] = 1 // not a bigint, error and ignore Uncaught TypeError: Cannot convert to BigInt > foo[1] = 4294967296n // over 32 bit unsigned limit 4294967296n > foo[2] = 4611686018427387904n // near 64 bit signed limit, over accurate float limit 4611686018427387904n > foo BigInt64Array(4) [ 1337n, 4294967296n, 4611686018427387904n, 0n ]

Porffor now supports BigInt typed arrays: just this (plus some related changes) boosts Test262 passing by over 0.7%!

1 year ago 48 2 0 0
"test262: 57.02% (+0.27)"

"test262: 57.02% (+0.27)"

Porffor now passes over 57% of Test262! This latest bump was thanks to a refactor makes functions and methods distinct to be more conformant for this, construction, etc

1 year ago 40 1 0 0

this fork is less conformant, normal quickjs supports ES2023 :(

1 year ago 2 0 0 0
Preview
GitHub - lynx-family/primjs: JavaScript Engine Optimized for Lynx JavaScript Engine Optimized for Lynx. Contribute to lynx-family/primjs development by creating an account on GitHub.

new js engine (quickjs fork) just dropped: github.com/lynx-family/...

1 year ago 35 6 5 1