From d6a334233ca1bc5215283a1a209863f2d01120e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Fri, 17 Nov 2023 13:54:31 +0100 Subject: [PATCH] Remove old project files --- Changelog | 148 -------------------------------------------------- README.md | 5 ++ TODO | 70 ------------------------ readme.txt | 1 - release.sh | 157 ----------------------------------------------------- 5 files changed, 5 insertions(+), 376 deletions(-) delete mode 100644 Changelog create mode 100644 README.md delete mode 100644 TODO delete mode 100644 readme.txt delete mode 100755 release.sh diff --git a/Changelog b/Changelog deleted file mode 100644 index c09af91..0000000 --- a/Changelog +++ /dev/null @@ -1,148 +0,0 @@ -2021-03-27: - -- faster Array.prototype.push and Array.prototype.unshift -- added JS_UpdateStackTop() -- fixed Windows console -- misc bug fixes - -2020-11-08: - -- improved function parameter initializers -- added std.setenv(), std.unsetenv() and std.getenviron() -- added JS_EvalThis() -- misc bug fixes - -2020-09-06: - -- added logical assignment operators -- added IsHTMLDDA support -- faster for-of loops -- os.Worker now takes a module filename as parameter -- qjsc: added -D option to compile dynamically loaded modules or workers -- misc bug fixes - -2020-07-05: - -- modified JS_GetPrototype() to return a live value -- REPL: support unicode characters larger than 16 bits -- added os.Worker -- improved object serialization -- added std.parseExtJSON -- misc bug fixes - -2020-04-12: - -- added cross realm support -- added AggregateError and Promise.any -- added env, uid and gid options in os.exec() -- misc bug fixes - -2020-03-16: - -- reworked error handling in std and os libraries: suppressed I/O - exceptions in std FILE functions and return a positive errno value - when it is explicit -- output exception messages to stderr -- added std.loadFile(), std.strerror(), std.FILE.prototype.tello() -- added JS_GetRuntimeOpaque(), JS_SetRuntimeOpaque(), JS_NewUint32() -- updated to Unicode 13.0.0 -- misc bug fixes - -2020-01-19: - -- keep CONFIG_BIGNUM in the makefile -- added os.chdir() -- qjs: added -I option -- more memory checks in the bignum operations -- modified operator overloading semantics to be closer to the TC39 - proposal -- suppressed "use bigint" mode. Simplified "use math" mode -- BigDecimal: changed suffix from 'd' to 'm' -- misc bug fixes - -2020-01-05: - -- always compile the bignum code. Added '--bignum' option to qjs. -- added BigDecimal -- added String.prototype.replaceAll -- misc bug fixes - -2019-12-21: - -- added nullish coalescing operator (ES2020) -- added optional chaining (ES2020) -- removed recursions in garbage collector -- test stack overflow in the parser -- improved backtrace logic -- added JS_SetHostPromiseRejectionTracker() -- allow exotic constructors -- improved c++ compatibility -- misc bug fixes - -2019-10-27: - -- added example of C class in a module (examples/test_point.js) -- added JS_GetTypedArrayBuffer() -- misc bug fixes - -2019-09-18: - -- added os.exec and other system calls -- exported JS_ValueToAtom() -- qjsc: added 'qjsc_' prefix to the generated C identifiers -- added cross-compilation support -- misc bug fixes - -2019-09-01: - -- added globalThis -- documented JS_EVAL_FLAG_COMPILE_ONLY -- added import.meta.url and import.meta.main -- added 'debugger' statement -- misc bug fixes - -2019-08-18: - -- added os.realpath, os.getcwd, os.mkdir, os.stat, os.lstat, - os.readlink, os.readdir, os.utimes, std.popen -- module autodetection -- added import.meta -- misc bug fixes - -2019-08-10: - -- added public class fields and private class fields, methods and - accessors (TC39 proposal) -- changed JS_ToCStringLen() prototype -- qjsc: handle '-' in module names and modules with the same filename -- added std.urlGet -- exported JS_GetOwnPropertyNames() and JS_GetOwnProperty() -- exported some bigint C functions -- added support for eshost in run-test262 -- misc bug fixes - -2019-07-28: - -- added dynamic import -- added Promise.allSettled -- added String.prototype.matchAll -- added Object.fromEntries -- reduced number of ticks in await -- added BigInt support in Atomics -- exported JS_NewPromiseCapability() -- misc async function and async generator fixes -- enabled hashbang support by default - -2019-07-21: - -- updated test262 tests -- updated to Unicode version 12.1.0 -- fixed missing Date object in qjsc -- fixed multi-context creation -- misc ES2020 related fixes -- simplified power and division operators in bignum extension -- fixed several crash conditions - -2019-07-09: - -- first public release diff --git a/README.md b/README.md new file mode 100644 index 0000000..535be16 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# ⚡️ QuickJS - A mighty JavaScript engine + +Friendly [QuickJS](https://bellard.org/quickjs) fork focused on reigniting the project. + +🚧 Work in progress. diff --git a/TODO b/TODO deleted file mode 100644 index 2a3b3c3..0000000 --- a/TODO +++ /dev/null @@ -1,70 +0,0 @@ -Bugs: -- modules: better error handling with cyclic module references - -Misc ideas: -- use custom printf to avoid compatibility issues with floating point numbers -- consistent naming for preprocessor defines -- unify coding style and naming conventions -- use names from the ECMA spec in library implementation -- use byte code emitters with typed arguments (for clarity) -- use 2 bytecode DynBufs in JSFunctionDef, one for reading, one for writing - and use the same wrappers in all phases -- use more generic method for line numbers in resolve_variables and resolve_labels -- use custom timezone support to avoid C library compatibility issues - -Memory: -- use memory pools for objects, etc? -- test border cases for max number of atoms, object properties, string length -- add emergency malloc mode for out of memory exceptions. -- test all DynBuf memory errors -- test all js_realloc memory errors -- improve JS_ComputeMemoryUsage() with more info - -Built-in standard library: -- BSD sockets -- modules: use realpath in module name normalizer and put it in quickjs-libc -- modules: if no ".", use a well known module loading path ? -- get rid of __loadScript, use more common name - -REPL: -- debugger -- readline: support MS Windows terminal -- readline: handle dynamic terminal resizing -- readline: handle double width unicode characters -- multiline editing -- runtime object and function inspectors -- interactive object browser -- use more generic approach to display evaluation results -- improve directive handling: dispatch, colorize, completion... -- save history -- close all predefined methods in repl.js and jscalc.js - -Optimization ideas: -- 64-bit atoms in 64-bit mode ? -- 64-bit small bigint in 64-bit mode ? -- reuse stack slots for disjoint scopes, if strip -- add heuristic to avoid some cycles in closures -- small String (0-2 charcodes) with immediate storage -- perform static string concatenation at compile time -- optimize string concatenation with ropes or miniropes? -- add implicit numeric strings for Uint32 numbers? -- optimize `s += a + b`, `s += a.b` and similar simple expressions -- ensure string canonical representation and optimise comparisons and hashes? -- remove JSObject.first_weak_ref, use bit+context based hashed array for weak references -- property access optimization on the global object, functions, - prototypes and special non extensible objects. -- create object literals with the correct length by backpatching length argument -- remove redundant set_loc_uninitialized/check_uninitialized opcodes -- peephole optim: push_atom_value, to_propkey -> push_atom_value -- peephole optim: put_loc x, get_loc_check x -> set_loc x -- convert slow array to fast array when all properties != length are numeric -- optimize destructuring assignments for global and local variables -- implement some form of tail-call-optimization -- optimize OP_apply -- optimize f(...b) - -Test262o: 0/11262 errors, 463 excluded -Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch) - -Result: 35/75280 errors, 909 excluded, 585 skipped -Test262 commit: 31126581e7290f9233c29cefd93f66c6ac78f1c9 diff --git a/readme.txt b/readme.txt deleted file mode 100644 index 789521d..0000000 --- a/readme.txt +++ /dev/null @@ -1 +0,0 @@ -The main documentation is in doc/quickjs.pdf or doc/quickjs.html. diff --git a/release.sh b/release.sh deleted file mode 100755 index 79c0c90..0000000 --- a/release.sh +++ /dev/null @@ -1,157 +0,0 @@ -#!/bin/sh -# Release the QuickJS source code - -set -e - -version=`cat VERSION` - -if [ "$1" = "-h" ] ; then - echo "release.sh [release_list]" - echo "" - echo "release_list: extras binary win_binary quickjs" - - exit 1 -fi - -release_list="extras binary win_binary quickjs" - -if [ "$1" != "" ] ; then - release_list="$1" -fi - -#################################################" -# extras - -if echo $release_list | grep -w -q extras ; then - -d="quickjs-${version}" -name="quickjs-extras-${version}" -outdir="/tmp/${d}" - -rm -rf $outdir -mkdir -p $outdir $outdir/unicode $outdir/tests - -cp unicode/* $outdir/unicode -cp -a tests/bench-v8 $outdir/tests - -( cd /tmp && tar Jcvf /tmp/${name}.tar.xz ${d} ) - -fi - -#################################################" -# Windows binary release - -if echo $release_list | grep -w -q win_binary ; then - -# win64 - -dlldir=/usr/x86_64-w64-mingw32/sys-root/mingw/bin -cross_prefix="x86_64-w64-mingw32-" -d="quickjs-win-x86_64-${version}" -outdir="/tmp/${d}" - -rm -rf $outdir -mkdir -p $outdir - -make CONFIG_WIN32=y qjs.exe -cp qjs.exe $outdir -${cross_prefix}strip $outdir/qjs.exe -cp $dlldir/libwinpthread-1.dll $outdir - -( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) - -make CONFIG_WIN32=y clean - -# win32 - -dlldir=/usr/i686-w64-mingw32/sys-root/mingw/bin -cross_prefix="i686-w64-mingw32-" -d="quickjs-win-i686-${version}" -outdir="/tmp/${d}" - -rm -rf $outdir -mkdir -p $outdir - -make clean -make CONFIG_WIN32=y clean - -make CONFIG_WIN32=y CONFIG_M32=y qjs.exe -cp qjs.exe $outdir -${cross_prefix}strip $outdir/qjs.exe -cp $dlldir/libwinpthread-1.dll $outdir - -( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) - -fi - -#################################################" -# Linux binary release - -if echo $release_list | grep -w -q binary ; then - -make clean -make CONFIG_WIN32=y clean -make -j4 qjs run-test262 -make -j4 CONFIG_M32=y qjs32 run-test262-32 -strip qjs run-test262 qjs32 run-test262-32 - -d="quickjs-linux-x86_64-${version}" -outdir="/tmp/${d}" - -rm -rf $outdir -mkdir -p $outdir - -cp qjs run-test262 $outdir - -( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) - -d="quickjs-linux-i686-${version}" -outdir="/tmp/${d}" - -rm -rf $outdir -mkdir -p $outdir - -cp qjs32 $outdir/qjs -cp run-test262-32 $outdir/run-test262 - -( cd /tmp/$d && rm -f ../${d}.zip && zip -r ../${d}.zip . ) - -fi - -#################################################" -# quickjs - -if echo $release_list | grep -w -q quickjs ; then - -make build_doc - -d="quickjs-${version}" -outdir="/tmp/${d}" - -rm -rf $outdir -mkdir -p $outdir $outdir/doc $outdir/tests $outdir/examples - -cp Makefile VERSION TODO Changelog readme.txt LICENSE \ - release.sh unicode_download.sh \ - qjs.c qjsc.c qjscalc.js repl.js \ - quickjs.c quickjs.h quickjs-atom.h \ - quickjs-libc.c quickjs-libc.h quickjs-opcode.h \ - cutils.c cutils.h list.h \ - libregexp.c libregexp.h libregexp-opcode.h \ - libunicode.c libunicode.h libunicode-table.h \ - libbf.c libbf.h \ - unicode_gen.c unicode_gen_def.h \ - run-test262.c test262o.conf test262.conf \ - test262o_errors.txt test262_errors.txt \ - $outdir - -cp tests/*.js tests/*.patch tests/bjson.c $outdir/tests - -cp examples/*.js examples/*.c $outdir/examples - -cp doc/quickjs.texi doc/quickjs.pdf doc/quickjs.html \ - $outdir/doc - -( cd /tmp && tar Jcvf /tmp/${d}.tar.xz ${d} ) - -fi