Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Effect Compiled Experiment

This repo is a small native TypeScript compiler zoo for a shared set of Effect-based Node programs.

The rule for this repo is that compilers are tested against the same blessed source files:

  • src/effect/logger.ts
  • src/effect/forking.ts
  • src/effect/web.ts

Targets

Category Blessed source Node Perry Porffor
logger src/effect/logger.ts npm run node:logger npm run compile:perry:logger npm run compile:porffor:logger
forking src/effect/forking.ts npm run node:forking npm run compile:perry:forking npm run compile:porffor:forking
web src/effect/web.ts npm run node:web npm run compile:perry:web npm run compile:porffor:web

Quick Checks

npm run typecheck
npm run smoke:node

The web server target is long-running:

PORT=3000 npm run node:web
curl -i http://127.0.0.1:3000/
curl -i http://127.0.0.1:3000/api/health

Compiler Checks

Perry and Porffor intentionally target the same Effect sources. A failure is useful data and should be recorded with the command and error.

Native Compilation

Perry:

npm run compile:perry:logger
npm run compile:perry:forking
npm run compile:perry:web

Porffor:

npm run compile:porffor:logger
npm run compile:porffor:forking
npm run compile:porffor:web

Generated binaries are written to dist/ and are intentionally ignored by git.

Current Status

  • Node/tsx smoke checks pass for the shared Effect logger and forking targets.
  • Node/tsx web smoke passes for the shared Effect web target at / and /api/health.
  • Perry native compilation has worked for the Effect web target, but the resulting web binary starts without opening a listening socket on this machine.
  • Perry native compilation for the logger target previously stalled after the Perry runtime rebuild with no output binary. Keep this as a focused runtime smoke case.
  • Porffor is pointed at the same Effect sources with --module.
  • npm run porffor:logger currently fails with Error: porffor: no generation for ImportDeclaration.
  • npm run compile:porffor:logger and npm run compile:porffor:web currently produce binaries, but those binaries exit with Uncaught.
  • npm run compile:porffor:forking currently fails with TypeError: Cannot read properties of undefined (reading 'startsWith').

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages