AminetAminet
Search:
85256 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/lang/NodeAmiga.lha

Mirror:Random
Showing: m68k-amigaos icongeneric icon
No screenshot available
Short:JS runtime for AmigaOS
Author:Juen/Project R3D+Appendix +Nah-Kolor
Uploader:biuro cdlabel info (Pawel Nowak)
Type:dev/lang
Version:0.18.1
Architecture:m68k-amigaos >= 2.0.4
Date:2026-04-14
Requires:68000+, 1 MB RAM, bsdsocket.library (for networking)
Download:dev/lang/NodeAmiga.lha - View contents
Readme:dev/lang/NodeAmiga.readme
Downloads:799

A complete JavaScript engine and runtime environment for classic
Amiga computers. Built from scratch in C, targeting MC68000 and
AmigaOS 2.0+. Inspired by Node.js, adapted for the Amiga platform.

Features
--------

 * JavaScript engine
   (ES5.1 + ES6+ features)
   - Arrow functions, classes with
     inheritance, super(), static
   - Class fields: public,
     private (#field), static
   - Template literals, tagged
   - Destructuring, spread/rest,
     default parameters
   - for-of loops, labeled
     break/continue
   - Regex literal /pattern/flags
   - Optional chaining (?.),
     nullish coalescing (??)
   - BigInt (123n, arithmetic,
     comparison, BigInt())
   - let/const block scoping,
     numeric separators
   - async/await, Promises,
     dynamic import()
   - Generators (function*, yield,
     yield* delegation)
   - Async generators
     (async function*,
     for await...of)
   - Generator methods in classes
     and objects
   - Automatic Semicolon
     Insertion (ASI)
   - Closures, prototype chain

 * Built-in objects and functions
   - console (log, error, warn,
     dir, time/timeEnd, table,
     count/countReset)
   - Math (27 functions incl.
     cbrt/fround/clz32/imul)
   - JSON (with reviver/replacer)
   - Date (full API incl. UTC,
     getUTC*/setUTC*)
   - RegExp (lookahead,
     non-capturing groups,
     quantifiers, lazy,
     named groups, lookbehind,
     flags g/i/m/s/u/y)
   - Buffer (hex/base64)
   - Promise (then/catch/finally/
     all/race/allSettled)
   - Map, Set, WeakMap, WeakSet,
     Symbol
   - setTimeout/setInterval/
     clearTimeout
   - crypto (MD5, SHA-256),
     structuredClone
   - TextEncoder, TextDecoder
   - Typed Arrays: Uint8Array,
     Int8Array, Uint16Array,
     Int16Array, Uint32Array,
     Int32Array, Float32Array,
     Float64Array,
     Uint8ClampedArray,
     ArrayBuffer, DataView
     (from/of, forEach/map/
     filter/find/every/some/
     reduce, set/fill/slice/
     subarray/reverse/indexOf/
     includes/join)
   - fetch() global HTTP client
   - performance.now() timer
   - Error.cause (ES2022)
   - process.stdout.write,
     process.stdin.read
   - process.hrtime,
     process.nextTick,
     queueMicrotask

 * String methods: 29+
   (charAt, indexOf, slice,
   split, replace, replaceAll,
   trim, includes, startsWith,
   padStart, normalize,
   localeCompare, codePointAt,
   etc.)

 * Array methods: 37+
   (push, pop, map, filter,
   reduce, reduceRight, sort,
   find, findLast,
   findLastIndex, forEach,
   every, some, splice, flat,
   flatMap, entries, keys,
   values, copyWithin, at,
   Array.from/of/isArray,
   toReversed, toSorted,
   toSpliced, with)

 * Object: keys, values, entries,
   assign, create, freeze, seal,
   is, fromEntries,
   defineProperty/ies, hasOwn,
   getPrototypeOf,
   setPrototypeOf,
   getOwnPropertyNames,
   getOwnPropertyDescriptor(s),
   preventExtensions,
   isExtensible, groupBy,
   getOwnPropertySymbols,
   getters/setters

 * Number: isInteger, isFinite,
   isNaN, isSafeInteger,
   parseInt, parseFloat,
   toString(radix), toFixed,
   toExponential, toPrecision,
   constants (EPSILON,
   MAX_SAFE_INTEGER,
   MIN_SAFE_INTEGER,
   NaN, Infinity)

 * Global functions:
   encodeURIComponent,
   decodeURIComponent,
   encodeURI, decodeURI,
   parseInt, parseFloat,
   isNaN, isFinite, eval(),
   fetch()

 * Symbol: Symbol(),
   Symbol.for/keyFor,
   well-known symbols,
   Symbol as property key,
   Iterator protocol
   (Symbol.iterator)

 * Amiga Intuition GUI bindings
   - Open windows with title,
     size, position
   - Graphics: lines, rects,
     circles, text, pixels
   - Mouse and keyboard events
   - System requesters
     (alert, confirm)
   - Screen information query

 * GadTools GUI toolkit
   (gui module)
   - createWindow() with
     declarative gadget layout
   - 11 widget types: button,
     string, text, integer,
     checkbox, cycle, slider,
     listview, mx, number,
     scroller
   - gui.gfx: drawing on
     GadTools windows (setColor,
     drawLine, fillRect,
     drawCircle, drawText,
     setPixel, setFont, etc.)
   - innerSize() for drawable
     area, auto GZZ offset
   - Resizable windows
     (GIMMEZEROZERO clipping)
   - Percentage layout
     (left: "50%", width: "80%")
   - Negative positioning
     (top: -20 = anchor bottom)
   - flex: true - gadget expands
     to fill available space
   - minWidth/minHeight
   - Event-driven:
     waitEvent/pollEvent,
     gadgetup/close/key
   - get/set gadget values at
     runtime
   - setTitle, listview dynamic
     item update
   - Menu bar: setMenu() with
     keyboard shortcuts
   - ASL file requester:
     fileRequest() with patterns
   - ASL font requester:
     fontRequest()
   - Proper GadTools cleanup

 * Clipboard module (clipboard)
   - read() - read text from
     system clipboard
   - write(text) - write text
   - clear() - clear clipboard
   - Uses IFF FTXT/CHRS via
     iffparse.library

 * ARexx module (arexx)
   - send(port, command) - send
     ARexx command to app
   - createPort(name) /
     closePort()
   - getMsg() / waitMsg() /
     reply()
   - listPorts() - list all
     public message ports
   - Uses rexxsyslib.library

 * Interactive debugger (--debug)
   - Step, next, step-out,
     continue
   - Breakpoints by line number
   - Variable inspection
     (p varname)
   - Call stack backtrace (bt)
   - Source listing around
     current line

 * Node.js-compatible modules
   - require() with caching
   - CommonJS exports
     (module.exports)
   - ES modules: import/export
     (default, named, namespace)
   - Dynamic import() expression
   - Native modules: fs, http,
     net, buffer, os,
     child_process, crypto,
     intuition, gui, readline,
     dns, clipboard, arexx
   - JS modules: path, events,
     url, querystring, util,
     stream, assert, repl,
     timers, string_decoder,
     punycode, console,
     constants, zlib, iff

 * File I/O (fs module)
   - readFileSync, writeFileSync,
     appendFileSync
   - existsSync, unlinkSync,
     renameSync, statSync
   - readdirSync, mkdirSync,
     rmdirSync, copyFileSync
   - readFile, writeFile (async)
   - createReadStream,
     createWriteStream
   - Full AmigaOS path support
     (Volume:dir/file)

 * HTTP/HTTPS server and client
   - http.createServer()
     non-blocking, 8 concurrent
   - http.get(), http.post(),
     http.request()
   - HTTPS via AmiSSL
     (build with -DENABLE_AMISSL)
   - Auto redirect following
     (301/302/307)
   - 10-second socket timeout,
     dns.lookup()
   - Requires bsdsocket.library
     (Roadshow, Miami, AmiTCP)

 * OS integration
   - process.platform
     ("amigaos"),
     process.arch ("m68k")
   - process.argv, process.env,
     process.cwd(), process.exit
   - os.cpus() (detects
     68000/020/030/040/060)
   - os.freemem(), os.version()
     (Kickstart version)
   - child_process.execSync()
     via SystemTagList()

 * Interactive REPL with command
   history (arrow up/down)

 * Error types: Error, TypeError,
   RangeError, ReferenceError,
   SyntaxError, EvalError,
   URIError

 * Error messages with filename
   and line number

 * Compiler: bundle JS +
   interpreter into standalone
   executable
   - NodeAmiga -compile MyApp
     script.js
   - Automatic require() and
     import dependency resolution
   - All JS modules bundled into
     single executable
   - No NodeAmiga, no libs/
     needed to run the output

Usage
-----

  NodeAmiga script.js
    Execute a JavaScript file
  NodeAmiga -e "code"
    Evaluate inline JavaScript
  NodeAmiga -compile out script
    Compile to standalone exe
  NodeAmiga
    Start interactive REPL
  NodeAmiga -help
    Show help
  NodeAmiga -v
    Show version
  NodeAmiga --tree script.js
    Use tree-walking interpreter
  NodeAmiga --debug script.js
    Run with interactive debugger
  NodeAmiga --ast script.js
    Print AST (debug)

Installation
------------

  1. Copy NodeAmiga to C: or any
     directory in your path
  2. Copy the libs/ directory to
     PROGDIR: (same directory as
     NodeAmiga), or to LIBS:node/
  3. Optional: copy examples/ for
     demo scripts

Quick test:

  NodeAmiga -e "console.log(
    'Hello Amiga!')"
  NodeAmiga examples/hello.js
  NodeAmiga examples/gui_hello.js
  NodeAmiga examples/fibonacci.js

Compile to standalone exe:

  NodeAmiga -compile Hello
    examples/hello.js
  Hello
  ; Runs without NodeAmiga
  ; or libs/ !

System Requirements
-------------------

  * MC68000 or higher CPU
  * AmigaOS 2.04 (Kickstart 37)
    or higher
  * Minimum 1 MB RAM
    (2+ MB recommended)
  * bsdsocket.library for
    networking features
    (Roadshow, Miami, AmiTCP)
  * No FPU required
    (software floating-point)

Technical Details
-----------------

  * Engine: custom-built lexer,
    recursive descent parser
    with Pratt precedence
    climbing, bytecode VM
    (default) with tree-walking
    fallback
  * Bytecode VM: ~8x faster
    than tree-walking, lazy
    compilation, direct native
    dispatch
  * Memory: reference counting
    (no GC pauses), arena
    allocator for AST,
    integer cache 0-255
  * Stack: auto-allocates 64 KB
    via StackSwap

Included Examples
-----------------

  hello.js
    Platform info and greeting
  fibonacci.js
    Recursive/iterative benchmark
  file_io.js
    File read/write/append
  http_server.js
    HTTP server with routing
  http_client.js
    HTTP GET and POST requests
  classes.js
    ES6 classes with inheritance
  closures.js
    Closures, IIFE, module pat.
  array_fun.js
    map/filter/reduce/sort
  regex.js
    RegExp /literal/ and methods
  events.js
    EventEmitter custom events
  promises.js
    Promise chains, all, race
  timers.js
    setTimeout and setInterval
  buffer.js
    Binary data manipulation
  streams.js
    Readable/Writable/Transform
  sysinfo.js
    Full system info display
  todo_app.js
    TODO app with persistence
  mini_grep.js
    Pattern search in files
  url_parser.js
    URL and query string parsing
  calculator.js
    Recursive descent expr parser
  json_db.js
    JSON file-based database
  myip.js
    Fetch public IP from internet
  nettime.js
    Internet time via HTTP API
  weather.js
    Weather info for a city
  download.js
    Download file and save
  gui_hello.js
    Simplest Intuition window
  gui_demo.js
    Interactive drawing + mouse
  gui_calculator.js
    GadTools calculator (320x200)
  3d.js
    Rotating 3D wireframe cube
  3d_tunnel.js
    Wireframe tunnel fly-through
  pong.js
    Bouncing ball (XOR, circle)
  gui_translator.js
    Google Translate with GUI
  gui_window.js
    GadTools widget gallery
  gui_menu.js
    Menu bar + ASL requesters
  gui_drawing.js
    gui.gfx primitives (4 scenes)
  gui_gfx_clock.js
    Analog clock (resizable)
  gui_keyboard_and_scrolls.js
    Arrow keys + scrollers demo
  gui_weather.js
    Weather app with GadTools GUI
  aminet_browser.js
    Aminet archive browser + GUI
  clipboard.js
    System clipboard read/write
  arexx.js
    ARexx port communication
  dns_lookup.js
    DNS hostname resolution
  readline_chat.js
    Interactive readline + prompt
  iff_info.js
    IFF/ILBM/8SVX file viewer

Known Limitations
-----------------

  * No Proxy
  * await is synchronous
    (spin-waits on event loop)

Version History
---------------

  0.18.1 (2026-04-14)
  Scroller & gadget pos. fixes
    - FIX: Scroller drag ID --
      switching between scrollers
      no longer emits stale IDs
    - FIX: Non-GZZ window gadget
      coords aligned with
      gfx.innerSize()
      (WA_InnerWidth double-sub
      removed)
    - FIX: MOUSEMOVE identifies
      gadget from pointer, not
      from stale active_gad_id

  0.18.0 (2026-04-13)
  Keyboard nav + Scroller enh.
    - NEW: Arrow keys, F1-F10,
      Help key events via
      IDCMP_RAWKEY (evt.key =
      "ArrowUp"/"ArrowDown"/
      "ArrowLeft"/"ArrowRight"/
      "F1".."F10"/"Help") --
      both gui and intuition
    - NEW: Vertical scroller
      orientation (vertical:true)
    - NEW: gui.set() scroller
      accepts object
      {top, total, visible}
    - FIX: Duplicate key events
      prevented (RAWKEY filtered
      for VANILLAKEY codes)
    - FIX: Modifier keys filtered
      from RAWKEY
    - Example:
      gui_keyboard_and_scrolls.js

  0.17.0 (2026-04-12)
  GUI drawing + Intuition fix
    - NEW: gui.gfx sub-module --
      drawing primitives on
      GadTools windows: setColor,
      setBColor, setDrawMode,
      moveTo, lineTo, drawLine,
      drawRect, fillRect,
      drawCircle, fillCircle,
      drawEllipse, drawText,
      setPixel, getPixel, clear,
      innerSize, setFont, waitTOF
    - FIX: Intuition openWindow
      uses WA_InnerWidth/Height
      so dimensions match
      drawable area (was outer)
    - FIX: Intuition gfx.clear
      uses EraseRect (GZZ-safe)
      instead of SetRast
    - FIX: Intuition resize events
      update win.width/height
    - FIX: Intuition keypress
      includes 'key' property
    - Examples: gui_drawing.js,
      gui_gfx_clock.js

  0.16.2 (2026-04-12)
  Bytecode VM string compare fix
    - FIX: VM comparison ops
      (<, >, <=, >=) handle
      string operands with
      lexicographic comparison
      (was converting to NaN)
    - FIX: OP_RETURN cleans up
      try_depth for handlers
      in the current frame

  0.16.1 (2026-04-11)
  GUI stability + VM fixes
    - FIX: Bytecode VM
      break/continue leaked
      locals on stack
    - FIX: GUI MOUSEMOVE reading
      garbage GadgetID from
      Window pointer
    - FIX: Internal GadTools
      events leaking to JS
    - FIX: REFRESHWINDOW handled
      internally
    - FIX: Gadget pointer fallback
      in GADGETUP/GADGETDOWN
    - Benchmark: 40 MB RAM check

  0.15.0 (2026-04-09)
  Clipboard, ARexx, Debugger,
  GUI Menus
    - NEW: clipboard module
      (read/write/clear)
    - NEW: arexx module
      (send/receive commands,
      port management)
    - NEW: Interactive debugger
      (--debug flag) step, next,
      step-out, breakpoints,
      variable inspect, backtrace
    - NEW: gui.setMenu() --
      GadTools menu bar with
      keyboard shortcuts
    - NEW: gui.fileRequest() --
      ASL file requester
    - NEW: gui.fontRequest() --
      ASL font requester
    - NEW: IDCMP_MENUPICK events
    - FIX: ARexx race condition
      (Forbid wraps
      FindPort+PutMsg)
    - FIX: Clipboard chunk size
      validation
    - FIX: Bus error crash --
      BcCompiler/BcVM
      heap-allocated
    - FIX: Pool memory exhaustion
      in tree-walking mode
    - FIX: Bytecode compiler
      double-realloc pointer
    - FIX: Module cache memory
      leak (cleanup on exit)
    - FIX: VM cascade cleanup
      crash (freelist pointer)

  0.14.0 (2026-03-28)
  Bytecode VM (8x faster)
    - NEW: Bytecode compiler +
      virtual machine (default)
      ~8x faster than tree-walk
      on benchmarks. Lazy
      compilation, direct native
      dispatch. Use --tree for
      tree-walking fallback.
    - NEW: gfx.setDrawMode()
      JAM1/JAM2/COMPLEMENT(XOR)
    - NEW: gfx.waitTOF() vsync
    - NEW: win.innerWidth,
      win.innerHeight properties
    - NEW: 3d_tunnel.js, pong.js
    - FIX: NaN === NaN returned
      true (pointer equality bug)
    - FIX: Arrays missing
      prototype
    - FIX: Buffer overflow in
      toFixed for numbers > 1e24
    - FIX: Buffer overflow in
      regex replace zero-length
    - FIX: Use-after-free on
      borrowed refs in fn calls

  0.13.0 (2026-03-27)
  Typed Arrays + fetch + streams
    - NEW: Typed Arrays
      (Uint8Array, Int8Array,
      Uint16Array, Int16Array,
      Uint32Array, Int32Array,
      Float32Array, Float64Array,
      Uint8ClampedArray)
    - NEW: ArrayBuffer, DataView
    - NEW: TypedArray.from(),
      TypedArray.of()
    - NEW: TypedArray iterator
      methods (forEach/map/
      filter/find/every/some/
      reduce)
    - NEW: Typed array indexed
      assignment
    - NEW: Array.toReversed(),
      toSorted(), toSpliced(),
      with() (ES2023)
    - NEW: Object
      .getOwnPropertySymbols()
    - NEW: Error.cause (ES2022)
    - NEW: fetch() global HTTP
      client
    - NEW: fs.readFile(),
      fs.writeFile() async
    - NEW: fs.createReadStream(),
      fs.createWriteStream()
    - NEW: TypedArray sort(),
      copyWithin(), toString()
    - NEW: console.count(),
      console.countReset()
    - NEW: performance.now()
      (20ms via DateStamp)
    - NEW: zlib module (DEFLATE/
      INFLATE, gzip/gunzip,
      CRC32)
    - NEW: punycode module
      (RFC 3492)
    - NEW: constants module
    - NEW: console module
    - NEW: Resizable GUI windows
      with responsive layout
    - NEW: gui.createWindow
      minWidth/minHeight
    - NEW: Negative position
      values (anchor bottom/right)
    - NEW: Keyboard events:
      evt.key string property
    - NEW: dns.resolve(),
      dns.resolveSync()
    - NEW: readline: on('line'/
      'close'), setPrompt()
    - NEW: assert.rejects(),
      assert.doesNotReject()
    - NEW: HTTP server custom
      headers in writeHead()
    - NEW: iff module
      (IFF/ILBM/8SVX parser)
    - FIX: Date.now() returns int
    - FIX: Buffer overflow in
      toFixed for numbers > 1e24
    - FIX: Use-after-free on
      borrowed refs in fn calls
    - FIX: BigInt mixed-type ops
      throw TypeError
    - FIX: zlib inflate EOF
    - FIX: punycode.decode ASCII
    - Tests: 1700+ assertions

  0.12.0 (2026-03-27)
  Generators + Class Fields
    - NEW: Generator functions
      (function*, yield)
    - NEW: yield* delegation
    - NEW: gen.next(value),
      gen.throw(err)
    - NEW: Generator methods in
      classes and objects
    - NEW: for...of integration
    - NEW: Class fields (public,
      static, private #field)
    - NEW: Dynamic import()
    - NEW: Object.groupBy()
    - NEW: Async generators
      (async function*,
      for await...of)
    - NEW: RegExp lookbehind
    - NEW: BigInt type (123n)
    - NEW: GadTools GUI module
      (require('gui')) --
      button, string, text,
      integer, checkbox, cycle,
      slider, listview, mx,
      number, scroller
    - NEW: URL class,
      URLSearchParams
    - NEW: path.normalize,
      isAbsolute, parse, format,
      relative
    - NEW: assert.deepStrictEqual,
      ifError, match
    - NEW: stream.pipeline(),
      finished(), backpressure
    - NEW: stream.Readable.from()
    - NEW: string_decoder module
    - NEW: timers.setInterval
      async iterator
    - NEW: os.endianness,
      os.release,
      os.networkInterfaces,
      os.userInfo
    - FIX: Memory leaks in array
      methods (forEach, map,
      filter, reduce, sort,
      flatMap, entries)
    - FIX: Use-after-free in
      array_reduce
    - FIX: String.concat overflow
    - FIX: String.match/search
      memory leaks
    - FIX: JSON \uXXXX produces
      proper UTF-8
    - FIX: BigInt from double
    - FIX: Switch fall-through
    - FIX: Spread in fn calls
    - FIX: ** right-associative
    - FIX: fn.call()/fn.apply()
      propagate exceptions
    - FIX: for-of string/iterator
      memory leaks
    - FIX: Class method leaks
    - FIX: yield* delegation
      iterator/result leaks
    - FIX: Array.from() leaks
    - FIX: Error constructor leaks
    - FIX: Object.entries leaks
    - FIX: RegExp constructor leak
    - FIX: crypto hash double-
      digest crash
    - FIX: fs.statSync directory
      detection via Lock()
    - FIX: Import path buffer
      overflow
    - FIX: NULL dereference in
      equality
    - FIX: Object property delete
      getter/setter leak
    - FIX: Async class methods
    - FIX: Math.random() seed
    - FIX: encodeURI preserves
      reserved characters
    - FIX: 60+ total bug fixes
    - NEW: Web runtime addon
      (addons/web/) -- run GUI
      scripts in browser,
      Amiga WB3.x look
    - NEW: Edge case test suite
      (test_edge.js, 430+ asserts)
    - FIX: Function property
      assignment
    - FIX: JSON.parse reviver
      use-after-free crash
    - FIX: Spread in new expr
    - FIX: Unicode \u{XXXX}
      braced escapes (ES6)
    - FIX: REPL arena
      use-after-free
    - FIX: Generator throw
      propagation
    - FIX: Array.from() mapper
      memory leaks
    - FIX: \uNNNN > 0x7F UTF-8
    - FIX: AmiSSL lazy init
    - FIX: HTTPS check order
    - FIX: Labeled break/continue
    - FIX: Buffer indexed access
    - FIX: Symbol.toString() crash
    - FIX: Date/RegExp/Promise
      instanceof
    - FIX: require("buffer")
      .Buffer self-reference
    - FIX: Computed property
      read/write on functions
    - FIX: 90+ total bug fixes
    - Tests: 1550+ assertions

  0.11.0 (2026-03-25)
  Mega Mega Update
    - NEW: fs.readdirSync,
      mkdirSync, rmdirSync,
      copyFileSync
    - NEW: Array: reduceRight,
      entries, keys, values,
      findLast, findLastIndex,
      copyWithin
    - NEW: Object:
      getOwnPropertyNames,
      hasOwn, getPrototypeOf,
      getOwnPropertyDescriptor,
      setPrototypeOf,
      preventExtensions,
      isExtensible
    - NEW: Number.toExponential,
      toPrecision
    - NEW: Math: cbrt, fround,
      clz32, imul + constants
    - NEW: String: codePointAt,
      fromCodePoint,
      localeCompare, normalize,
      raw, replace with callback
    - NEW: encodeURI/decodeURI,
      encodeURIComponent/
      decodeURIComponent
    - NEW: console.dir
    - NEW: ES modules
      (import/export)
    - NEW: RegExp: {n}/{n,}/{n,m}
      quantifiers, lazy, non-
      capturing groups, lookahead,
      named groups, flags s/u/y
    - NEW: Symbol as property key,
      Iterator protocol
    - NEW: eval() global function
    - NEW: EvalError, URIError
    - NEW: Date.UTC(),
      getUTC*/setUTC*
    - NEW: Class static methods
    - NEW: Destructuring assignment
      without var/let/const
    - NEW: Compiler (-compile) --
      bundle JS into standalone
    - FIX: Function.prototype
      .bind() partial application
    - FIX: ES module export
      function declarations
    - FIX: instanceof Error for
      all Error subtypes
    - Tests: 960+ assertions

  0.10.0 (2026-03-25)
    - FIX: String.fromCharCode,
      Number.isInteger/isFinite/
      isNaN/isSafeInteger
    - FIX: Number.prototype
      .toString(radix)
    - FIX: querystring.unescape
      percent decoding
    - Removed 68040/68060 builds

  0.9.0 (2026-03-24)
    - HTTPS support via AmiSSL
    - Interactive REPL with
      readline and history
    - Buffer hex/base64 encoding
    - Tagged template literals
    - Promise chain fixes

  0.8.0 (2026-03-23)
    - Map, Set, WeakMap, WeakSet,
      Symbol
    - Regex literal /pattern/flags
    - async/await support
    - Destructuring, spread/rest
    - for-of loops, optional
      chaining (?.)

Credits
-------

  Juen/Project R3D+Appendix
  +Nah-Kolor


Contents of dev/lang/NodeAmiga.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[Amiga]                   2469    9600  25.7% -lh5- 5241 Apr 14 08:18 NodeAmiga/addons/web/index.html
[Amiga]                  13969   72830  19.2% -lh5- b257 Apr 14 08:18 NodeAmiga/addons/web/nodeamiga.js
[Amiga]                   1327    3073  43.2% -lh5- af4e Apr 14 08:18 NodeAmiga/examples/3d.js
[Amiga]                    958    2082  46.0% -lh5- f70f Apr 14 08:18 NodeAmiga/examples/3d_tunnel.js
[Amiga]                   6775   22850  29.6% -lh5- a849 Apr 14 08:18 NodeAmiga/examples/aminet_browser.js
[Amiga]                    568    1257  45.2% -lh5- f1cc Apr 14 08:18 NodeAmiga/examples/arexx.js
[Amiga]                   1096    3034  36.1% -lh5- 3766 Apr 14 08:18 NodeAmiga/examples/array_fun.js
[Amiga]                   1182    3150  37.5% -lh5- 1a8b Apr 14 08:18 NodeAmiga/examples/buffer.js
[Amiga]                   1431    5426  26.4% -lh5- c117 Apr 14 08:18 NodeAmiga/examples/calculator.js
[Amiga]                    982    2821  34.8% -lh5- f646 Apr 14 08:18 NodeAmiga/examples/classes.js
[Amiga]                    419     872  48.1% -lh5- 6827 Apr 14 08:18 NodeAmiga/examples/clipboard.js
[Amiga]                   1139    3231  35.3% -lh5- 4786 Apr 14 08:18 NodeAmiga/examples/closures.js
[Amiga]                    415     815  50.9% -lh5- 7b6f Apr 14 08:18 NodeAmiga/examples/dns_lookup.js
[Amiga]                    516    1194  43.2% -lh5- 4ea6 Apr 14 08:18 NodeAmiga/examples/download.js
[Amiga]                   1070    3068  34.9% -lh5- c202 Apr 14 08:18 NodeAmiga/examples/events.js
[Amiga]                    734    1951  37.6% -lh5- 1b80 Apr 14 08:18 NodeAmiga/examples/fibonacci.js
[Amiga]                   1014    2567  39.5% -lh5- 8170 Apr 14 08:18 NodeAmiga/examples/file_io.js
[Amiga]                   1352    3683  36.7% -lh5- d02e Apr 14 08:18 NodeAmiga/examples/gui_calculator.js
[Amiga]                    833    2193  38.0% -lh5- b184 Apr 14 08:18 NodeAmiga/examples/gui_demo.js
[Amiga]                   1512    4916  30.8% -lh5- 1e92 Apr 14 08:18 NodeAmiga/examples/gui_drawing.js
[Amiga]                   1257    3619  34.7% -lh5- a849 Apr 14 08:18 NodeAmiga/examples/gui_gfx_clock.js
[Amiga]                    398     702  56.7% -lh5- 1454 Apr 14 08:18 NodeAmiga/examples/gui_hello.js
[Amiga]                   1551    4864  31.9% -lh5- f34d Apr 14 08:18 NodeAmiga/examples/gui_keyboard_and_scrolls.js
[Amiga]                    901    3082  29.2% -lh5- 2d34 Apr 14 08:18 NodeAmiga/examples/gui_menu.js
[Amiga]                   1309    4044  32.4% -lh5- f183 Apr 14 08:18 NodeAmiga/examples/gui_translator.js
[Amiga]                   3185   10887  29.3% -lh5- 80ce Apr 14 08:18 NodeAmiga/examples/gui_weather.js
[Amiga]                   1825    6022  30.3% -lh5- f643 Apr 14 08:18 NodeAmiga/examples/gui_window.js
[Amiga]                    598    1415  42.3% -lh5- ff7f Apr 14 08:18 NodeAmiga/examples/hello.js
[Amiga]                    763    2145  35.6% -lh5- 6c82 Apr 14 08:18 NodeAmiga/examples/http_client.js
[Amiga]                   1077    2894  37.2% -lh5- f64d Apr 14 08:18 NodeAmiga/examples/http_server.js
[Amiga]                   1201    3567  33.7% -lh5- 9443 Apr 14 08:18 NodeAmiga/examples/iff_info.js
[Amiga]                   1516    4783  31.7% -lh5- c8a7 Apr 14 08:18 NodeAmiga/examples/json_db.js
[Amiga]                   1269    3404  37.3% -lh5- dc7b Apr 14 08:18 NodeAmiga/examples/mini_grep.js
[Amiga]                    609    1346  45.2% -lh5- 0db5 Apr 14 08:18 NodeAmiga/examples/myip.js
[Amiga]                    829    1960  42.3% -lh5- ec37 Apr 14 08:18 NodeAmiga/examples/nettime.js
[Amiga]                    942    2006  47.0% -lh5- 1a51 Apr 14 08:18 NodeAmiga/examples/pong.js
[Amiga]                   1105    3330  33.2% -lh5- 5242 Apr 14 08:18 NodeAmiga/examples/promises.js
[Amiga]                    550    1622  33.9% -lh5- ba8f Apr 14 08:18 NodeAmiga/examples/readline_chat.js
[Amiga]                   1341    3300  40.6% -lh5- de0d Apr 14 08:18 NodeAmiga/examples/regex.js
[Amiga]                    949    3002  31.6% -lh5- 0cd7 Apr 14 08:18 NodeAmiga/examples/streams.js
[Amiga]                   1034    2982  34.7% -lh5- fe72 Apr 14 08:18 NodeAmiga/examples/sysinfo.js
[Amiga]                    832    2523  33.0% -lh5- 802b Apr 14 08:18 NodeAmiga/examples/timers.js
[Amiga]                   1078    2952  36.5% -lh5- 1bc1 Apr 14 08:18 NodeAmiga/examples/todo_app.js
[Amiga]                   1239    3162  39.2% -lh5- 3470 Apr 14 08:18 NodeAmiga/examples/url_parser.js
[Amiga]                    686    1596  43.0% -lh5- da4d Apr 14 08:18 NodeAmiga/examples/weather.js
[Amiga]                   1166    5938  19.6% -lh5- 1c5f Apr 14 08:18 NodeAmiga/libs/assert.js
[Amiga]                     96     121  79.3% -lh5- 0345 Apr 14 08:18 NodeAmiga/libs/console.js
[Amiga]                   1177    2826  41.6% -lh5- d149 Apr 14 08:18 NodeAmiga/libs/constants.js
[Amiga]                    862    3445  25.0% -lh5- a260 Apr 14 08:18 NodeAmiga/libs/events.js
[Amiga]                   2467    9084  27.2% -lh5- c222 Apr 14 08:18 NodeAmiga/libs/iff.js
[Amiga]                   1621    5945  27.3% -lh5- da54 Apr 14 08:18 NodeAmiga/libs/path.js
[Amiga]                   1639    5629  29.1% -lh5- d5df Apr 14 08:18 NodeAmiga/libs/punycode.js
[Amiga]                   1137    3669  31.0% -lh5- a120 Apr 14 08:18 NodeAmiga/libs/querystring.js
[Amiga]                    879    2569  34.2% -lh5- 7444 Apr 14 08:18 NodeAmiga/libs/repl.js
[Amiga]                   2894   16370  17.7% -lh5- 7625 Apr 14 08:18 NodeAmiga/libs/stream.js
[Amiga]                   1244    4177  29.8% -lh5- d7f1 Apr 14 08:18 NodeAmiga/libs/string_decoder.js
[Amiga]                    524    1792  29.2% -lh5- 5780 Apr 14 08:18 NodeAmiga/libs/timers.js
[Amiga]                   3049   14297  21.3% -lh5- 00cf Apr 14 08:18 NodeAmiga/libs/url.js
[Amiga]                   1940    7973  24.3% -lh5- e1c2 Apr 14 08:18 NodeAmiga/libs/util.js
[Amiga]                   3793   14887  25.5% -lh5- 0584 Apr 14 08:18 NodeAmiga/libs/zlib.js
[Amiga]                 176135  345736  50.9% -lh5- 1485 Apr 14 08:18 NodeAmiga/NodeAmiga
[Amiga]                   9384   23107  40.6% -lh5- 9ec8 Apr 14 08:18 NodeAmiga/NodeAmiga.readme
[Amiga]                 175323  342048  51.3% -lh5- c04f Apr 14 08:18 NodeAmiga/NodeAmiga_020
[Amiga]                   1621    4767  34.0% -lh5- 7676 Apr 14 08:18 NodeAmiga/test/benchmark.js
[Amiga]                  33393  132987  25.1% -lh5- 07aa Apr 14 08:18 NodeAmiga/test/test.js
[Amiga]                    695    2465  28.2% -lh5- 2ff3 Apr 14 08:18 NodeAmiga/test/test_async.js
[Amiga]                  11237   39969  28.1% -lh5- efc4 Apr 14 08:18 NodeAmiga/test/test_edge.js
[Amiga]                    385     862  44.7% -lh5- 53d8 Apr 14 08:18 NodeAmiga/test/test_esm.js
[Amiga]                    152     246  61.8% -lh5- 6841 Apr 14 08:18 NodeAmiga/test/test_esm_lib.js
[Amiga]                    147     225  65.3% -lh5- de8e Apr 14 08:18 NodeAmiga/test/test_module.js
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        70 files  500765 1222956  40.9%            Apr 14 22:00
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>