switch to length fn
This commit is contained in:
4
add.ce
4
add.ce
@@ -14,7 +14,7 @@ var fd = use('fd')
|
||||
var locator = null
|
||||
var alias = null
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--help' || args[i] == '-h') {
|
||||
log.console("Usage: cell add <locator> [alias]")
|
||||
log.console("")
|
||||
@@ -51,7 +51,7 @@ if (locator == '.' || starts_with(locator, './') || starts_with(locator, '../')
|
||||
if (!alias) {
|
||||
// Use the last component of the locator as alias
|
||||
var parts = array(locator, '/')
|
||||
alias = parts[parts.length - 1]
|
||||
alias = parts[length(parts) - 1]
|
||||
// Remove any version suffix
|
||||
if (search(alias, '@') != null) {
|
||||
alias = array(alias, '@')[0]
|
||||
|
||||
36
bench.ce
36
bench.ce
@@ -24,44 +24,44 @@ def MAX_BATCH_SIZE = 100000000 // 100M iterations max per batch
|
||||
|
||||
// Statistical functions
|
||||
function median(arr) {
|
||||
if (arr.length == 0) return 0
|
||||
if (length(arr) == 0) return 0
|
||||
var sorted = sort(arr)
|
||||
var mid = floor(arr.length / 2)
|
||||
if (arr.length % 2 == 0) {
|
||||
var mid = floor(length(arr) / 2)
|
||||
if (length(arr) % 2 == 0) {
|
||||
return (sorted[mid - 1] + sorted[mid]) / 2
|
||||
}
|
||||
return sorted[mid]
|
||||
}
|
||||
|
||||
function mean(arr) {
|
||||
if (arr.length == 0) return 0
|
||||
if (length(arr) == 0) return 0
|
||||
var sum = 0
|
||||
arrfor(arr, function(val) {
|
||||
sum += val
|
||||
})
|
||||
return sum / arr.length
|
||||
return sum / length(arr)
|
||||
}
|
||||
|
||||
function stddev(arr, mean_val) {
|
||||
if (arr.length < 2) return 0
|
||||
if (length(arr) < 2) return 0
|
||||
var sum_sq_diff = 0
|
||||
arrfor(arr, function(val) {
|
||||
var diff = val - mean_val
|
||||
sum_sq_diff += diff * diff
|
||||
})
|
||||
return math.sqrt(sum_sq_diff / (arr.length - 1))
|
||||
return math.sqrt(sum_sq_diff / (length(arr) - 1))
|
||||
}
|
||||
|
||||
function percentile(arr, p) {
|
||||
if (arr.length == 0) return 0
|
||||
if (length(arr) == 0) return 0
|
||||
var sorted = sort(arr)
|
||||
var idx = floor(arr.length * p / 100)
|
||||
if (idx >= arr.length) idx = arr.length - 1
|
||||
var idx = floor(arr) * p / 100)
|
||||
if (idx >= length(arr)) idx = length(arr) - 1
|
||||
return sorted[idx]
|
||||
}
|
||||
|
||||
function min_val(arr) {
|
||||
if (arr.length == 0) return 0
|
||||
if (length(arr) == 0) return 0
|
||||
var m = arr[0]
|
||||
arrfor(slice(arr, 1), function(val) {
|
||||
if (val < m) m = val
|
||||
@@ -70,7 +70,7 @@ function min_val(arr) {
|
||||
}
|
||||
|
||||
function max_val(arr) {
|
||||
if (arr.length == 0) return 0
|
||||
if (length(arr) == 0) return 0
|
||||
var m = arr[0]
|
||||
arrfor(slice(arr, 1), function(val) {
|
||||
if (val > m) m = val
|
||||
@@ -80,7 +80,7 @@ function max_val(arr) {
|
||||
|
||||
// Parse arguments similar to test.ce
|
||||
function parse_args() {
|
||||
if (args.length == 0) {
|
||||
if (length(args) == 0) {
|
||||
if (!testlib.is_valid_package('.')) {
|
||||
log.console('No cell.toml found in current directory')
|
||||
return false
|
||||
@@ -99,7 +99,7 @@ function parse_args() {
|
||||
}
|
||||
|
||||
if (args[0] == 'package') {
|
||||
if (args.length < 2) {
|
||||
if (length(args) < 2) {
|
||||
log.console('Usage: cell bench package <name> [bench]')
|
||||
log.console(' cell bench package all')
|
||||
return false
|
||||
@@ -132,7 +132,7 @@ function parse_args() {
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length >= 3) {
|
||||
if (length(args) >= 3) {
|
||||
target_bench = args[2]
|
||||
}
|
||||
|
||||
@@ -419,7 +419,7 @@ function run_benchmarks(package_name, specific_bench) {
|
||||
total: 0
|
||||
}
|
||||
|
||||
if (bench_files.length == 0) return pkg_result
|
||||
if (length(bench_files) == 0) return pkg_result
|
||||
|
||||
if (package_name) log.console(`Running benchmarks for ${package_name}`)
|
||||
else log.console(`Running benchmarks for local package`)
|
||||
@@ -448,7 +448,7 @@ function run_benchmarks(package_name, specific_bench) {
|
||||
}
|
||||
}
|
||||
|
||||
if (benches.length > 0) {
|
||||
if (length(benches) > 0) {
|
||||
log.console(` ${f}`)
|
||||
arrfor(benches, function(b) {
|
||||
try {
|
||||
@@ -487,7 +487,7 @@ function run_benchmarks(package_name, specific_bench) {
|
||||
pkg_result.total++
|
||||
}
|
||||
|
||||
if (file_result.benchmarks.length > 0) {
|
||||
if (length(file_result.benchmarks) > 0) {
|
||||
pkg_result.files.push(file_result)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ var sieve = eratosthenes(10000000);
|
||||
stone(sieve)
|
||||
|
||||
var c = 0
|
||||
for (var i = 0; i < sieve.length; i++)
|
||||
for (var i = 0; i < length(sieve); i++)
|
||||
if (sieve.read_logical(i)) c++
|
||||
|
||||
log.console(c)
|
||||
|
||||
@@ -126,7 +126,7 @@ function benchArrayOps() {
|
||||
var iterateTime = measureTime(function() {
|
||||
var sum = 0;
|
||||
for (var j = 0; j < 1000; j++) {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
for (var i = 0; i < length(arr); i++) {
|
||||
sum += arr[i];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ function offsetMomentum() {
|
||||
var px = 0;
|
||||
var py = 0;
|
||||
var pz = 0;
|
||||
var size = bodies.length;
|
||||
var size = length(bodies);
|
||||
for (var i = 0; i < size; i++) {
|
||||
var body = bodies[i];
|
||||
var mass = body.mass;
|
||||
@@ -86,7 +86,7 @@ function offsetMomentum() {
|
||||
}
|
||||
|
||||
function advance(dt) {
|
||||
var size = bodies.length;
|
||||
var size = length(bodies);
|
||||
|
||||
for (var i = 0; i < size; i++) {
|
||||
var bodyi = bodies[i];
|
||||
@@ -127,7 +127,7 @@ function advance(dt) {
|
||||
|
||||
function energy() {
|
||||
var e = 0;
|
||||
var size = bodies.length;
|
||||
var size = length(bodies);
|
||||
|
||||
for (var i = 0; i < size; i++) {
|
||||
var bodyi = bodies[i];
|
||||
|
||||
@@ -5,9 +5,9 @@ function A(i,j) {
|
||||
}
|
||||
|
||||
function Au(u,v) {
|
||||
for (var i=0; i<u.length; ++i) {
|
||||
for (var i=0; i<length(u); ++i) {
|
||||
var t = 0;
|
||||
for (var j=0; j<u.length; ++j)
|
||||
for (var j=0; j<length(u); ++j)
|
||||
t += A(i,j) * u[j];
|
||||
|
||||
v[i] = t;
|
||||
@@ -15,9 +15,9 @@ function Au(u,v) {
|
||||
}
|
||||
|
||||
function Atu(u,v) {
|
||||
for (var i=0; i<u.length; ++i) {
|
||||
for (var i=0; i<length(u); ++i) {
|
||||
var t = 0;
|
||||
for (var j=0; j<u.length; ++j)
|
||||
for (var j=0; j<length(u); ++j)
|
||||
t += A(j,i) * u[j];
|
||||
|
||||
v[i] = t;
|
||||
|
||||
@@ -81,9 +81,9 @@ log.console("===================\n");
|
||||
// We'll run each benchmark scenario in turn.
|
||||
for (var bench of benchmarks) {
|
||||
// We'll measure how long it takes to do 'iterations' *for each test value*
|
||||
// in bench.data. The total loop count is `bench.iterations * bench.data.length`.
|
||||
// in bench.data. The total loop count is `bench.iterations * bench.data)`.
|
||||
// Then we compute an overall encode+decode throughput (ops/s).
|
||||
var totalIterations = bench.iterations * bench.data.length;
|
||||
var totalIterations = bench.iterations * bench.data);
|
||||
|
||||
// We'll define a function that does a roundTrip for *each* data item in bench.data
|
||||
// to measure in one loop iteration. Then we multiply by bench.iterations.
|
||||
@@ -97,7 +97,7 @@ for (var bench of benchmarks) {
|
||||
var opsPerSec = (totalIterations / elapsedSec).toFixed(1);
|
||||
|
||||
log.console(`${bench.name}:`);
|
||||
log.console(` Iterations: ${bench.iterations} × ${bench.data.length} data items = ${totalIterations}`);
|
||||
log.console(` Iterations: ${bench.iterations} × ${length(bench.data)} data items = ${totalIterations}`);
|
||||
log.console(` Elapsed: ${elapsedSec.toFixed(3)} s`);
|
||||
log.console(` Throughput: ${opsPerSec} encode+decode ops/sec\n`);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
//
|
||||
|
||||
// Parse command line arguments
|
||||
if (arg.length != 2) {
|
||||
if (length(arg) != 2) {
|
||||
log.console('Usage: cell benchmark_wota_nota_json.ce <LibraryName> <ScenarioName>');
|
||||
$stop()
|
||||
}
|
||||
@@ -32,7 +32,7 @@ def libraries = [
|
||||
decode: wota.decode,
|
||||
// wota produces an ArrayBuffer. We'll count `buffer.byteLength` as size.
|
||||
getSize(encoded) {
|
||||
return encoded.length;
|
||||
return length(encoded);
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -41,7 +41,7 @@ def libraries = [
|
||||
decode: nota.decode,
|
||||
// nota also produces an ArrayBuffer:
|
||||
getSize(encoded) {
|
||||
return encoded.length;
|
||||
return length(encoded);
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -52,7 +52,7 @@ def libraries = [
|
||||
// as a rough "size". Alternatively, you could convert to UTF-8 for
|
||||
// a more accurate byte size. Here we just use `string.length`.
|
||||
getSize(encodedStr) {
|
||||
return encodedStr.length;
|
||||
return length(encodedStr);
|
||||
}
|
||||
}
|
||||
];
|
||||
@@ -135,7 +135,7 @@ function runBenchmarkForLibrary(lib, bench) {
|
||||
var encodeTime = measureTime(() => {
|
||||
for (var i = 0; i < bench.iterations; i++) {
|
||||
// For each data item, encode it
|
||||
for (var j = 0; j < bench.data.length; j++) {
|
||||
for (var j = 0; j < length(bench.data); j++) {
|
||||
var e = lib.encode(bench.data[j]);
|
||||
// store only in the very first iteration, so we can decode them later
|
||||
// but do not store them every iteration or we blow up memory.
|
||||
@@ -185,7 +185,7 @@ if (!bench) {
|
||||
var { encodeTime, decodeTime, totalSize } = runBenchmarkForLibrary(lib, bench);
|
||||
|
||||
// Output json for easy parsing by hyperfine or other tools
|
||||
var totalOps = bench.iterations * bench.data.length;
|
||||
var totalOps = bench.iterations * length(bench.data);
|
||||
var result = {
|
||||
lib: lib_name,
|
||||
scenario: scenario_name,
|
||||
|
||||
12
build.ce
12
build.ce
@@ -18,9 +18,9 @@ var buildtype = 'release'
|
||||
var force_rebuild = false
|
||||
var dry_run = false
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '-t' || args[i] == '--target') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
target = args[++i]
|
||||
} else {
|
||||
log.error('-t requires a target')
|
||||
@@ -28,14 +28,14 @@ for (var i = 0; i < args.length; i++) {
|
||||
}
|
||||
} else if (args[i] == '-p' || args[i] == '--package') {
|
||||
// Legacy support for -p flag
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
target_package = args[++i]
|
||||
} else {
|
||||
log.error('-p requires a package name')
|
||||
$stop()
|
||||
}
|
||||
} else if (args[i] == '-b' || args[i] == '--buildtype') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
buildtype = args[++i]
|
||||
if (buildtype != 'release' && buildtype != 'debug' && buildtype != 'minsize') {
|
||||
log.error('Invalid buildtype: ' + buildtype + '. Must be release, debug, or minsize')
|
||||
@@ -52,7 +52,7 @@ for (var i = 0; i < args.length; i++) {
|
||||
} else if (args[i] == '--list-targets') {
|
||||
log.console('Available targets:')
|
||||
var targets = build.list_targets()
|
||||
for (var t = 0; t < targets.length; t++) {
|
||||
for (var t = 0; t < length(targets); t++) {
|
||||
log.console(' ' + targets[t])
|
||||
}
|
||||
$stop()
|
||||
@@ -110,7 +110,7 @@ if (target_package) {
|
||||
|
||||
var success = 0
|
||||
var failed = 0
|
||||
for (var i = 0; i < results.length; i++) {
|
||||
for (var i = 0; i < length(results); i++) {
|
||||
if (results[i].library) {
|
||||
success++
|
||||
} else if (results[i].error) {
|
||||
|
||||
4
clean.ce
4
clean.ce
@@ -24,7 +24,7 @@ var clean_fetch = false
|
||||
var deep = false
|
||||
var dry_run = false
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--build') {
|
||||
clean_build = true
|
||||
} else if (args[i] == '--fetch') {
|
||||
@@ -170,7 +170,7 @@ if (clean_fetch) {
|
||||
// Execute or report
|
||||
if (dry_run) {
|
||||
log.console("Would delete:")
|
||||
if (files_to_delete.length == 0 && dirs_to_delete.length == 0) {
|
||||
if (length(files_to_delete) == 0 && length(dirs_to_delete) == 0) {
|
||||
log.console(" (nothing to clean)")
|
||||
} else {
|
||||
arrfor(files_to_delete, function(f) {
|
||||
|
||||
4
clone.ce
4
clone.ce
@@ -7,7 +7,7 @@ var fd = use('fd')
|
||||
var http = use('http')
|
||||
var miniz = use('miniz')
|
||||
|
||||
if (args.length < 2) {
|
||||
if (length(args) < 2) {
|
||||
log.console("Usage: cell clone <origin> <path>")
|
||||
log.console("Clones a cell package to a local path and links it.")
|
||||
$stop()
|
||||
@@ -93,7 +93,7 @@ try {
|
||||
if (zip.is_directory(i)) continue
|
||||
var filename = zip.get_filename(i)
|
||||
var parts = array(filename, '/')
|
||||
if (parts.length <= 1) continue
|
||||
if (length(parts) <= 1) continue
|
||||
|
||||
// Skip the first directory (repo-commit prefix)
|
||||
parts.shift()
|
||||
|
||||
18
config.ce
18
config.ce
@@ -47,14 +47,14 @@ function get_nested(obj, path) {
|
||||
// Set a value in nested object using path
|
||||
function set_nested(obj, path, value) {
|
||||
var current = obj
|
||||
for (var i = 0; i < path.length - 1; i++) {
|
||||
for (var i = 0; i < length(path) - 1; i++) {
|
||||
var segment = path[i]
|
||||
if (is_null(current[segment]) || !is_object(current[segment])) {
|
||||
current[segment] = {}
|
||||
}
|
||||
current = current[segment]
|
||||
}
|
||||
current[path[path.length - 1]] = value
|
||||
current[path[length(path) - 1]] = value
|
||||
}
|
||||
|
||||
// Parse value string into appropriate type
|
||||
@@ -96,7 +96,7 @@ function print_config(obj, prefix = '') {
|
||||
}
|
||||
|
||||
// Main command handling
|
||||
if (args.length == 0) {
|
||||
if (length(args) == 0) {
|
||||
print_help()
|
||||
$stop()
|
||||
return
|
||||
@@ -125,7 +125,7 @@ switch (command) {
|
||||
break
|
||||
|
||||
case 'get':
|
||||
if (args.length < 2) {
|
||||
if (length(args) < 2) {
|
||||
log.error("Usage: cell config get <key>")
|
||||
$stop()
|
||||
return
|
||||
@@ -145,7 +145,7 @@ switch (command) {
|
||||
break
|
||||
|
||||
case 'set':
|
||||
if (args.length < 3) {
|
||||
if (length(args) < 3) {
|
||||
log.error("Usage: cell config set <key> <value>")
|
||||
$stop()
|
||||
return
|
||||
@@ -175,7 +175,7 @@ switch (command) {
|
||||
|
||||
case 'actor':
|
||||
// Handle actor-specific configuration
|
||||
if (args.length < 3) {
|
||||
if (length(args) < 3) {
|
||||
log.error("Usage: cell config actor <name> <command> [options]")
|
||||
$stop()
|
||||
return
|
||||
@@ -190,7 +190,7 @@ switch (command) {
|
||||
|
||||
switch (actor_cmd) {
|
||||
case 'list':
|
||||
if (array(config.actors[actor_name]).length == 0) {
|
||||
if (length(array(config.actors[actor_name])) == 0) {
|
||||
log.console("No configuration for actor: " + actor_name)
|
||||
} else {
|
||||
log.console("# Configuration for actor: " + actor_name)
|
||||
@@ -200,7 +200,7 @@ switch (command) {
|
||||
break
|
||||
|
||||
case 'get':
|
||||
if (args.length < 4) {
|
||||
if (length(args) < 4) {
|
||||
log.error("Usage: cell config actor <name> get <key>")
|
||||
$stop()
|
||||
return
|
||||
@@ -217,7 +217,7 @@ switch (command) {
|
||||
break
|
||||
|
||||
case 'set':
|
||||
if (args.length < 5) {
|
||||
if (length(args) < 5) {
|
||||
log.error("Usage: cell config actor <name> set <key> <value>")
|
||||
$stop()
|
||||
return
|
||||
|
||||
4
fetch.ce
4
fetch.ce
@@ -13,7 +13,7 @@ var shop = use('internal/shop')
|
||||
// Parse arguments
|
||||
var target_pkg = null
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--help' || args[i] == '-h') {
|
||||
log.console("Usage: cell fetch [package]")
|
||||
log.console("Fetch package zips from remote sources.")
|
||||
@@ -83,7 +83,7 @@ var parts = []
|
||||
if (downloaded_count > 0) parts.push(`${text(downloaded_count)} downloaded`)
|
||||
if (cached_count > 0) parts.push(`${text(cached_count)} cached`)
|
||||
if (fail_count > 0) parts.push(`${text(fail_count)} failed`)
|
||||
if (parts.length == 0) parts.push("nothing to fetch")
|
||||
if (length(parts) == 0) parts.push("nothing to fetch")
|
||||
log.console("Fetch complete: " + text(parts, ", "))
|
||||
|
||||
$stop()
|
||||
|
||||
16
graph.ce
16
graph.ce
@@ -23,9 +23,9 @@ var format = 'tree'
|
||||
var show_locked = false
|
||||
var show_world = false
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--format' || args[i] == '-f') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
format = args[++i]
|
||||
if (format != 'tree' && format != 'dot' && format != 'json') {
|
||||
log.error('Invalid format: ' + format + '. Must be tree, dot, or json')
|
||||
@@ -163,13 +163,13 @@ if (format == 'tree') {
|
||||
}
|
||||
})
|
||||
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
for (var i = 0; i < length(children); i++) {
|
||||
var child_prefix = prefix + (is_last ? " " : "| ")
|
||||
print_tree(children[i].to, child_prefix, i == children.length - 1, visited)
|
||||
print_tree(children[i].to, child_prefix, i == length(children) - 1, visited)
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < roots.length; i++) {
|
||||
for (var i = 0; i < length(roots); i++) {
|
||||
log.console(roots[i])
|
||||
|
||||
var children = []
|
||||
@@ -179,11 +179,11 @@ if (format == 'tree') {
|
||||
}
|
||||
})
|
||||
|
||||
for (var j = 0; j < children.length; j++) {
|
||||
print_tree(children[j].to, "", j == children.length - 1, {})
|
||||
for (var j = 0; j < length(children); j++) {
|
||||
print_tree(children[j].to, "", j == length(children) - 1, {})
|
||||
}
|
||||
|
||||
if (i < roots.length - 1) log.console("")
|
||||
if (i < length(roots) - 1) log.console("")
|
||||
}
|
||||
|
||||
} else if (format == 'dot') {
|
||||
|
||||
2
help.ce
2
help.ce
@@ -2,7 +2,7 @@
|
||||
|
||||
var fd = use('fd')
|
||||
|
||||
var command = args.length > 0 ? args[0] : null
|
||||
var command = length(args) > 0 ? args[0] : null
|
||||
|
||||
// Display specific command help
|
||||
if (command) {
|
||||
|
||||
14
install.ce
14
install.ce
@@ -14,7 +14,7 @@ var build = use('build')
|
||||
var pkg = use('package')
|
||||
var fd = use('fd')
|
||||
|
||||
if (args.length < 1) {
|
||||
if (length(args) < 1) {
|
||||
log.console("Usage: cell install <locator> [options]")
|
||||
log.console("")
|
||||
log.console("Options:")
|
||||
@@ -29,9 +29,9 @@ var target_triple = null
|
||||
var refresh = false
|
||||
var dry_run = false
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--target' || args[i] == '-t') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
target_triple = args[++i]
|
||||
} else {
|
||||
log.error('--target requires a triple')
|
||||
@@ -142,7 +142,7 @@ if (dry_run) {
|
||||
var exists = lock[p] != null
|
||||
log.console(" " + p + (exists ? " (already installed)" : ""))
|
||||
})
|
||||
if (skipped_packages.length > 0) {
|
||||
if (length(skipped_packages) > 0) {
|
||||
log.console("")
|
||||
log.console("Would skip (missing local paths):")
|
||||
arrfor(skipped_packages, function(p) {
|
||||
@@ -176,9 +176,9 @@ arrfor(packages_to_install, function(p) {
|
||||
install_package(p)
|
||||
})
|
||||
|
||||
var summary = "Installed " + text(packages_to_install.length) + " package(s)."
|
||||
if (skipped_packages.length > 0) {
|
||||
summary += " Skipped " + text(skipped_packages.length) + " missing local path(s)."
|
||||
var summary = "Installed " + text(length(packages_to_install)) + " package(s)."
|
||||
if (length(skipped_packages) > 0) {
|
||||
summary += " Skipped " + text(length(skipped_packages)) + " missing local path(s)."
|
||||
}
|
||||
log.console(summary)
|
||||
|
||||
|
||||
10
link.ce
10
link.ce
@@ -17,7 +17,7 @@ var shop = use('internal/shop')
|
||||
var fd = use('fd')
|
||||
var toml = use('toml')
|
||||
|
||||
if (args.length < 1) {
|
||||
if (length(args) < 1) {
|
||||
log.console("Usage: link <command> [args] or link [package] <target>")
|
||||
log.console("Commands:")
|
||||
log.console(" list List all active links")
|
||||
@@ -45,15 +45,15 @@ if (cmd == 'list') {
|
||||
log.console("Syncing links...")
|
||||
var result = link.sync_all(shop)
|
||||
log.console("Synced " + result.synced + " link(s)")
|
||||
if (result.errors.length > 0) {
|
||||
if (length(result.errors) > 0) {
|
||||
log.console("Errors:")
|
||||
for (var i = 0; i < result.errors.length; i++) {
|
||||
for (var i = 0; i < length(result.errors); i++) {
|
||||
log.console(" " + result.errors[i])
|
||||
}
|
||||
}
|
||||
|
||||
} else if (cmd == 'delete' || cmd == 'rm') {
|
||||
if (args.length < 2) {
|
||||
if (length(args) < 2) {
|
||||
log.console("Usage: link delete <package>")
|
||||
$stop()
|
||||
return
|
||||
@@ -92,7 +92,7 @@ if (cmd == 'list') {
|
||||
}
|
||||
|
||||
var arg1 = args[start_idx]
|
||||
var arg2 = (args.length > start_idx + 1) ? args[start_idx + 1] : null
|
||||
var arg2 = (length(args) > start_idx + 1) ? args[start_idx + 1] : null
|
||||
|
||||
if (!arg1) {
|
||||
log.console("Error: target or package required")
|
||||
|
||||
18
list.ce
18
list.ce
@@ -13,7 +13,7 @@ var fd = use('fd')
|
||||
var mode = 'local'
|
||||
var target_pkg = null
|
||||
|
||||
if (args && args.length > 0) {
|
||||
if (args && length(args) > 0) {
|
||||
if (args[0] == 'shop') {
|
||||
mode = 'shop'
|
||||
} else if (args[0] == '--help' || args[0] == '-h') {
|
||||
@@ -62,12 +62,12 @@ function print_deps(ctx, indent) {
|
||||
for (var k in deps) aliases.push(k)
|
||||
aliases = sort(aliases)
|
||||
|
||||
if (aliases.length == 0) {
|
||||
if (length(aliases) == 0) {
|
||||
log.console(indent + " (none)")
|
||||
return
|
||||
}
|
||||
|
||||
for (var i = 0; i < aliases.length; i++) {
|
||||
for (var i = 0; i < length(aliases); i++) {
|
||||
var alias = aliases[i]
|
||||
var locator = deps[alias]
|
||||
var link_target = links[locator]
|
||||
@@ -93,7 +93,7 @@ function print_deps(ctx, indent) {
|
||||
status.push("not installed")
|
||||
}
|
||||
|
||||
if (status.length > 0) {
|
||||
if (length(status) > 0) {
|
||||
line += " [" + text(status, ", ") + "]"
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ if (mode == 'local') {
|
||||
log.console("")
|
||||
|
||||
var packages = shop.list_packages()
|
||||
if (packages.length == 0) {
|
||||
if (length(packages) == 0) {
|
||||
log.console(" (none)")
|
||||
} else {
|
||||
packages = sort(packages)
|
||||
@@ -136,7 +136,7 @@ if (mode == 'local') {
|
||||
}
|
||||
})
|
||||
|
||||
if (linked_pkgs.length > 0) {
|
||||
if (length(linked_pkgs) > 0) {
|
||||
log.console("Linked packages:")
|
||||
arrfor(linked_pkgs, function(p) {
|
||||
var target = links[p]
|
||||
@@ -145,7 +145,7 @@ if (mode == 'local') {
|
||||
log.console("")
|
||||
}
|
||||
|
||||
if (local_pkgs.length > 0) {
|
||||
if (length(local_pkgs) > 0) {
|
||||
log.console("Local packages:")
|
||||
arrfor(local_pkgs, function(p) {
|
||||
log.console(" " + p)
|
||||
@@ -153,7 +153,7 @@ if (mode == 'local') {
|
||||
log.console("")
|
||||
}
|
||||
|
||||
if (remote_pkgs.length > 0) {
|
||||
if (length(remote_pkgs) > 0) {
|
||||
log.console("Remote packages:")
|
||||
arrfor(remote_pkgs, function(p) {
|
||||
var lock_entry = lock[p]
|
||||
@@ -163,7 +163,7 @@ if (mode == 'local') {
|
||||
log.console("")
|
||||
}
|
||||
|
||||
log.console("Total: " + text(packages.length) + " package(s)")
|
||||
log.console("Total: " + text(length(packages)) + " package(s)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
8
ls.ce
8
ls.ce
@@ -12,10 +12,10 @@ var programs = package.list_programs(pkg)
|
||||
|
||||
log.console("Modules in " + pkg + ":")
|
||||
modules = sort(modules)
|
||||
if (modules.length == 0) {
|
||||
if (length(modules) == 0) {
|
||||
log.console(" (none)")
|
||||
} else {
|
||||
for (var i = 0; i < modules.length; i++) {
|
||||
for (var i = 0; i < length(modules); i++) {
|
||||
log.console(" " + modules[i])
|
||||
}
|
||||
}
|
||||
@@ -23,10 +23,10 @@ if (modules.length == 0) {
|
||||
log.console("")
|
||||
log.console("Programs in " + pkg + ":")
|
||||
programs = sort(programs)
|
||||
if (programs.length == 0) {
|
||||
if (length(programs) == 0) {
|
||||
log.console(" (none)")
|
||||
} else {
|
||||
for (var i = 0; i < programs.length; i++) {
|
||||
for (var i = 0; i < length(programs); i++) {
|
||||
log.console(" " + programs[i])
|
||||
}
|
||||
}
|
||||
|
||||
16
pack.ce
16
pack.ce
@@ -14,7 +14,7 @@ var output_name = 'app'
|
||||
var target_package = null
|
||||
var buildtype = 'debug'
|
||||
|
||||
if (args.length < 1) {
|
||||
if (length(args) < 1) {
|
||||
log.error('Usage: cell pack <package> [options]')
|
||||
log.error('')
|
||||
log.error('Options:')
|
||||
@@ -29,23 +29,23 @@ if (args.length < 1) {
|
||||
|
||||
target_package = args[0]
|
||||
|
||||
for (var i = 1; i < args.length; i++) {
|
||||
for (var i = 1; i < length(args); i++) {
|
||||
if (args[i] == '-t' || args[i] == '--target') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
target = args[++i]
|
||||
} else {
|
||||
log.error('-t requires a target')
|
||||
$stop()
|
||||
}
|
||||
} else if (args[i] == '-o' || args[i] == '--output') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
output_name = args[++i]
|
||||
} else {
|
||||
log.error('-o requires an output name')
|
||||
$stop()
|
||||
}
|
||||
} else if (args[i] == '-b' || args[i] == '--buildtype') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
buildtype = args[++i]
|
||||
if (buildtype != 'release' && buildtype != 'debug' && buildtype != 'minsize') {
|
||||
log.error('Invalid buildtype: ' + buildtype + '. Must be release, debug, or minsize')
|
||||
@@ -87,7 +87,7 @@ if (target && !build.has_target(target)) {
|
||||
var packages = ['core']
|
||||
var deps = pkg_tools.gather_dependencies(target_package)
|
||||
|
||||
for (var i = 0; i < deps.length; i++) {
|
||||
for (var i = 0; i < length(deps); i++) {
|
||||
packages.push(deps[i])
|
||||
}
|
||||
packages.push(target_package)
|
||||
@@ -95,7 +95,7 @@ packages.push(target_package)
|
||||
// Remove duplicates
|
||||
var unique_packages = []
|
||||
var seen = {}
|
||||
for (var i = 0; i < packages.length; i++) {
|
||||
for (var i = 0; i < length(packages); i++) {
|
||||
if (!seen[packages[i]]) {
|
||||
seen[packages[i]] = true
|
||||
unique_packages.push(packages[i])
|
||||
@@ -109,7 +109,7 @@ arrfor(packages, function(package) {
|
||||
shop.extract(package)
|
||||
})
|
||||
|
||||
log.console('Building static binary from ' + text(packages.length) + ' packages: ' + text(packages, ', '))
|
||||
log.console('Building static binary from ' + text(length(packages)) + ' packages: ' + text(packages, ', '))
|
||||
|
||||
try {
|
||||
var result = build.build_static(packages, target, output_name, buildtype)
|
||||
|
||||
12
qopconv.ce
12
qopconv.ce
@@ -111,14 +111,14 @@ function pack(sources, archive_path, read_dir) {
|
||||
log.console("Created " + archive_path)
|
||||
}
|
||||
|
||||
if (!is_array(arg) || arg.length < 1) {
|
||||
if (!is_array(arg) || length(arg) < 1) {
|
||||
print_usage()
|
||||
} else {
|
||||
if (arg[0] == "-l") {
|
||||
if (arg.length < 2) print_usage()
|
||||
if (length(arg) < 2) print_usage()
|
||||
else list(arg[1])
|
||||
} else if (arg[0] == "-u") {
|
||||
if (arg.length < 2) print_usage()
|
||||
if (length(arg) < 2) print_usage()
|
||||
else unpack(arg[1])
|
||||
} else {
|
||||
var sources = []
|
||||
@@ -130,12 +130,12 @@ if (!is_array(arg) || arg.length < 1) {
|
||||
i = 2
|
||||
}
|
||||
|
||||
for (; i < arg.length - 1; i++) {
|
||||
for (; i < length(arg) - 1; i++) {
|
||||
sources.push(arg[i])
|
||||
}
|
||||
archive = arg[arg.length - 1]
|
||||
archive = arg[length(arg) - 1]
|
||||
|
||||
if (sources.length == 0) {
|
||||
if (length(sources) == 0) {
|
||||
print_usage()
|
||||
} else {
|
||||
pack(sources, archive, read_dir)
|
||||
|
||||
@@ -17,7 +17,7 @@ var target_pkg = null
|
||||
var prune = false
|
||||
var dry_run = false
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--prune') {
|
||||
prune = true
|
||||
} else if (args[i] == '--dry-run') {
|
||||
@@ -99,7 +99,7 @@ if (dry_run) {
|
||||
shop.remove(p)
|
||||
})
|
||||
|
||||
log.console("Removed " + text(packages_to_remove.length) + " package(s).")
|
||||
log.console("Removed " + text(length(packages_to_remove)) + " package(s).")
|
||||
}
|
||||
|
||||
$stop()
|
||||
|
||||
16
resolve.ce
16
resolve.ce
@@ -21,9 +21,9 @@ var target_triple = null
|
||||
var show_locked = false
|
||||
var refresh_first = false
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--target' || args[i] == '-t') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
target_triple = args[++i]
|
||||
} else {
|
||||
log.error('--target requires a triple')
|
||||
@@ -118,7 +118,7 @@ for (var locator in all_deps) {
|
||||
sorted = sort(sorted, "locator")
|
||||
sorted = sort(sorted, "depth")
|
||||
|
||||
for (var i = 0; i < sorted.length; i++) {
|
||||
for (var i = 0; i < length(sorted); i++) {
|
||||
var locator = sorted[i].locator
|
||||
var depth = sorted[i].depth
|
||||
|
||||
@@ -168,7 +168,7 @@ for (var i = 0; i < sorted.length; i++) {
|
||||
line += " -> " + link_target
|
||||
}
|
||||
|
||||
if (status_parts.length > 0) {
|
||||
if (length(status_parts) > 0) {
|
||||
line += " [" + text(status_parts, ", ") + "]"
|
||||
}
|
||||
|
||||
@@ -179,12 +179,12 @@ for (var i = 0; i < sorted.length; i++) {
|
||||
try {
|
||||
var cflags = pkg.get_flags(locator, 'CFLAGS', target_triple)
|
||||
var ldflags = pkg.get_flags(locator, 'LDFLAGS', target_triple)
|
||||
if (cflags.length > 0 || ldflags.length > 0) {
|
||||
if (length(cflags) > 0 || length(ldflags) > 0) {
|
||||
log.console(indent + " Compilation inputs:")
|
||||
if (cflags.length > 0) {
|
||||
if (length(cflags) > 0) {
|
||||
log.console(indent + " CFLAGS: " + text(cflags, ' '))
|
||||
}
|
||||
if (ldflags.length > 0) {
|
||||
if (length(ldflags) > 0) {
|
||||
log.console(indent + " LDFLAGS: " + text(ldflags, ' '))
|
||||
}
|
||||
}
|
||||
@@ -195,6 +195,6 @@ for (var i = 0; i < sorted.length; i++) {
|
||||
}
|
||||
|
||||
log.console("")
|
||||
log.console("Total: " + text(sorted.length) + " package(s)")
|
||||
log.console("Total: " + text(length(sorted)) + " package(s)")
|
||||
|
||||
$stop()
|
||||
|
||||
10
search.ce
10
search.ce
@@ -4,7 +4,7 @@
|
||||
var shop = use('internal/shop')
|
||||
var pkg = use('package')
|
||||
|
||||
if (args.length < 1) {
|
||||
if (length(args) < 1) {
|
||||
log.console("Usage: cell search <query>")
|
||||
log.console("Searches for packages, actors, or modules matching the query.")
|
||||
$stop()
|
||||
@@ -46,7 +46,7 @@ arrfor(packages, function(package_name) {
|
||||
})
|
||||
|
||||
// Print results
|
||||
var total = found_packages.length + found_modules.length + found_actors.length
|
||||
var total = length(found_packages) + length(found_modules) + length(found_actors)
|
||||
|
||||
if (total == 0) {
|
||||
log.console("No results found for '" + query + "'")
|
||||
@@ -54,7 +54,7 @@ if (total == 0) {
|
||||
log.console("Found " + text(total) + " result(s) for '" + query + "':")
|
||||
log.console("")
|
||||
|
||||
if (found_packages.length > 0) {
|
||||
if (length(found_packages) > 0) {
|
||||
log.console("Packages:")
|
||||
arrfor(found_packages, function(p) {
|
||||
log.console(" " + p)
|
||||
@@ -62,7 +62,7 @@ if (total == 0) {
|
||||
log.console("")
|
||||
}
|
||||
|
||||
if (found_modules.length > 0) {
|
||||
if (length(found_modules) > 0) {
|
||||
log.console("Modules:")
|
||||
arrfor(found_modules, function(m) {
|
||||
log.console(" " + m)
|
||||
@@ -70,7 +70,7 @@ if (total == 0) {
|
||||
log.console("")
|
||||
}
|
||||
|
||||
if (found_actors.length > 0) {
|
||||
if (length(found_actors) > 0) {
|
||||
log.console("Actors:")
|
||||
arrfor(found_actors, function(a) {
|
||||
log.console(" " + a)
|
||||
|
||||
@@ -30474,7 +30474,6 @@ static JSValue js_string_concat(JSContext *ctx, JSValueConst this_val,
|
||||
}
|
||||
|
||||
static const JSCFunctionListEntry js_string_proto_funcs[] = {
|
||||
JS_PROP_INT32_DEF("length", 0, JS_PROP_CONFIGURABLE ),
|
||||
JS_CFUNC_DEF("concat", 1, js_string_concat),
|
||||
JS_CFUNC_DEF("toString", 0, js_string_toString ),
|
||||
JS_CFUNC_DEF("valueOf", 0, js_string_toString ),
|
||||
|
||||
80
test.ce
80
test.ce
@@ -43,7 +43,7 @@ function get_current_package_name() {
|
||||
// cell test package all - run all tests from all packages
|
||||
|
||||
function parse_args() {
|
||||
if (args.length == 0) {
|
||||
if (length(args) == 0) {
|
||||
// cell test - run all tests for current package
|
||||
if (!is_valid_package('.')) {
|
||||
log.console('No cell.toml found in current directory')
|
||||
@@ -64,7 +64,7 @@ function parse_args() {
|
||||
}
|
||||
|
||||
if (args[0] == 'package') {
|
||||
if (args.length < 2) {
|
||||
if (length(args) < 2) {
|
||||
log.console('Usage: cell test package <name> [test]')
|
||||
log.console(' cell test package all')
|
||||
return false
|
||||
@@ -102,7 +102,7 @@ function parse_args() {
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length >= 3) {
|
||||
if (length(args) >= 3) {
|
||||
// cell test package <name> <test>
|
||||
target_test = args[2]
|
||||
}
|
||||
@@ -146,7 +146,7 @@ function ensure_dir(path) {
|
||||
|
||||
var parts = array(path, '/')
|
||||
var current = starts_with(path, '/') ? '/' : ''
|
||||
for (var i = 0; i < parts.length; i++) {
|
||||
for (var i = 0; i < length(parts); i++) {
|
||||
if (parts[i] == '') continue
|
||||
current += parts[i] + '/'
|
||||
if (!fd.is_dir(current)) {
|
||||
@@ -176,7 +176,7 @@ function collect_actor_tests(package_name, specific_test) {
|
||||
|
||||
var files = pkg.list_files(package_name)
|
||||
var actor_tests = []
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
for (var i = 0; i < length(files); i++) {
|
||||
var f = files[i]
|
||||
// Check if file is in tests/ folder and is a .ce actor
|
||||
if (starts_with(f, "tests/") && ends_with(f, ".ce")) {
|
||||
@@ -247,7 +247,7 @@ function run_tests(package_name, specific_test) {
|
||||
|
||||
var files = pkg.list_files(package_name)
|
||||
var test_files = []
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
for (var i = 0; i < length(files); i++) {
|
||||
var f = files[i]
|
||||
// Check if file is in tests/ folder and is a .cm module (not .ce - those are actor tests)
|
||||
if (starts_with(f, "tests/") && ends_with(f, ".cm")) {
|
||||
@@ -264,12 +264,12 @@ function run_tests(package_name, specific_test) {
|
||||
}
|
||||
}
|
||||
|
||||
if (test_files.length > 0) {
|
||||
if (length(test_files) > 0) {
|
||||
if (package_name) log.console(`Running tests for ${package_name}`)
|
||||
else log.console(`Running tests for local package`)
|
||||
}
|
||||
|
||||
for (var i = 0; i < test_files.length; i++) {
|
||||
for (var i = 0; i < length(test_files); i++) {
|
||||
var f = test_files[i]
|
||||
var mod_path = text(f, 0, -3) // remove .cm
|
||||
|
||||
@@ -297,9 +297,9 @@ function run_tests(package_name, specific_test) {
|
||||
}
|
||||
}
|
||||
|
||||
if (tests.length > 0) {
|
||||
if (length(tests) > 0) {
|
||||
log.console(` ${f}`)
|
||||
for (var j = 0; j < tests.length; j++) {
|
||||
for (var j = 0; j < length(tests); j++) {
|
||||
var t = tests[j]
|
||||
var test_entry = {
|
||||
package: pkg_result.package,
|
||||
@@ -381,7 +381,7 @@ if (all_pkgs) {
|
||||
|
||||
// Then all packages in lock
|
||||
var packages = shop.list_packages()
|
||||
for (var i = 0; i < packages.length; i++) {
|
||||
for (var i = 0; i < length(packages); i++) {
|
||||
all_results.push(run_tests(packages[i], null))
|
||||
all_actor_tests = array(all_actor_tests, collect_actor_tests(packages[i], null))
|
||||
}
|
||||
@@ -391,9 +391,9 @@ if (all_pkgs) {
|
||||
}
|
||||
|
||||
// Spawn actor tests if any
|
||||
if (all_actor_tests.length > 0) {
|
||||
log.console(`Running ${all_actor_tests.length} actor test(s)...`)
|
||||
for (var i = 0; i < all_actor_tests.length; i++) {
|
||||
if (length(all_actor_tests) > 0) {
|
||||
log.console(`Running ${length(all_actor_tests)} actor test(s)...`)
|
||||
for (var i = 0; i < length(all_actor_tests); i++) {
|
||||
spawn_actor_test(all_actor_tests[i])
|
||||
}
|
||||
}
|
||||
@@ -402,7 +402,7 @@ if (all_actor_tests.length > 0) {
|
||||
function handle_actor_message(msg) {
|
||||
var sender = msg.$sender
|
||||
var found_idx = -1
|
||||
for (var i = 0; i < pending_actor_tests.length; i++) {
|
||||
for (var i = 0; i < length(pending_actor_tests); i++) {
|
||||
if (pending_actor_tests[i].actor == sender) {
|
||||
found_idx = i
|
||||
break
|
||||
@@ -426,12 +426,12 @@ function handle_actor_message(msg) {
|
||||
results = [msg]
|
||||
}
|
||||
|
||||
for (var i = 0; i < results.length; i++) {
|
||||
for (var i = 0; i < length(results); i++) {
|
||||
var res = results[i] || {}
|
||||
var entry = {
|
||||
package: base_entry.package,
|
||||
file: base_entry.file,
|
||||
test: res.test || base_entry.test + (results.length > 1 ? `#${i+1}` : ""),
|
||||
test: res.test || base_entry.test + (length(results) > 1 ? `#${i+1}` : ""),
|
||||
status: "failed",
|
||||
duration_ns: duration_ns
|
||||
}
|
||||
@@ -459,7 +459,7 @@ function check_timeouts() {
|
||||
var now = time.number()
|
||||
var timed_out = []
|
||||
|
||||
for (var i = pending_actor_tests.length - 1; i >= 0; i--) {
|
||||
for (var i = length(pending_actor_tests) - 1; i >= 0; i--) {
|
||||
var entry = pending_actor_tests[i]
|
||||
var elapsed_ms = (now - entry.start_time) * 1000
|
||||
if (elapsed_ms > ACTOR_TEST_TIMEOUT) {
|
||||
@@ -467,7 +467,7 @@ function check_timeouts() {
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < timed_out.length; i++) {
|
||||
for (var i = 0; i < length(timed_out); i++) {
|
||||
var idx = timed_out[i]
|
||||
var entry = pending_actor_tests[idx]
|
||||
pending_actor_tests.splice(idx, 1)
|
||||
@@ -479,7 +479,7 @@ function check_timeouts() {
|
||||
log.console(` TIMEOUT ${entry.test}`)
|
||||
}
|
||||
|
||||
if (pending_actor_tests.length > 0) {
|
||||
if (length(pending_actor_tests) > 0) {
|
||||
$delay(check_timeouts, 1000)
|
||||
}
|
||||
check_completion()
|
||||
@@ -489,7 +489,7 @@ function check_timeouts() {
|
||||
var finalized = false
|
||||
function check_completion() {
|
||||
if (finalized) return
|
||||
if (pending_actor_tests.length > 0) return
|
||||
if (length(pending_actor_tests) > 0) return
|
||||
|
||||
finalized = true
|
||||
finalize_results()
|
||||
@@ -497,10 +497,10 @@ function check_completion() {
|
||||
|
||||
function finalize_results() {
|
||||
// Add actor test results to all_results
|
||||
for (var i = 0; i < actor_test_results.length; i++) {
|
||||
for (var i = 0; i < length(actor_test_results); i++) {
|
||||
var r = actor_test_results[i]
|
||||
var pkg_result = null
|
||||
for (var j = 0; j < all_results.length; j++) {
|
||||
for (var j = 0; j < length(all_results); j++) {
|
||||
if (all_results[j].package == r.package) {
|
||||
pkg_result = all_results[j]
|
||||
break
|
||||
@@ -512,7 +512,7 @@ function finalize_results() {
|
||||
}
|
||||
|
||||
var file_result = null
|
||||
for (var j = 0; j < pkg_result.files.length; j++) {
|
||||
for (var j = 0; j < length(pkg_result.files); j++) {
|
||||
if (pkg_result.files[j].name == r.file) {
|
||||
file_result = pkg_result.files[j]
|
||||
break
|
||||
@@ -536,7 +536,7 @@ function finalize_results() {
|
||||
|
||||
// Calculate totals
|
||||
var totals = { total: 0, passed: 0, failed: 0 }
|
||||
for (var i = 0; i < all_results.length; i++) {
|
||||
for (var i = 0; i < length(all_results); i++) {
|
||||
totals.total += all_results[i].total
|
||||
totals.passed += all_results[i].passed
|
||||
totals.failed += all_results[i].failed
|
||||
@@ -551,9 +551,9 @@ function finalize_results() {
|
||||
|
||||
// If no actor tests, finalize immediately
|
||||
var totals
|
||||
if (all_actor_tests.length == 0) {
|
||||
if (length(all_actor_tests) == 0) {
|
||||
totals = { total: 0, passed: 0, failed: 0 }
|
||||
for (var i = 0; i < all_results.length; i++) {
|
||||
for (var i = 0; i < length(all_results); i++) {
|
||||
totals.total += all_results[i].total
|
||||
totals.passed += all_results[i].passed
|
||||
totals.failed += all_results[i].failed
|
||||
@@ -577,24 +577,24 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
||||
|
||||
=== SUMMARY ===
|
||||
`
|
||||
for (var i = 0; i < all_results.length; i++) {
|
||||
for (var i = 0; i < length(all_results); i++) {
|
||||
var pkg_res = all_results[i]
|
||||
if (pkg_res.total == 0) continue
|
||||
txt_report += `Package: ${pkg_res.package}\n`
|
||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
||||
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||
var f = pkg_res.files[j]
|
||||
var status = f.failed == 0 ? "PASS" : "FAIL"
|
||||
txt_report += ` [${status}] ${f.name} (${f.passed}/${f.tests.length})\n`
|
||||
txt_report += ` [${status}] ${f.name} (${f.passed}/${length(f.tests)})\n`
|
||||
}
|
||||
}
|
||||
|
||||
txt_report += `\n=== FAILURES ===\n`
|
||||
var has_failures = false
|
||||
for (var i = 0; i < all_results.length; i++) {
|
||||
for (var i = 0; i < length(all_results); i++) {
|
||||
var pkg_res = all_results[i]
|
||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
||||
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||
var f = pkg_res.files[j]
|
||||
for (var k = 0; k < f.tests.length; k++) {
|
||||
for (var k = 0; k < length(f.tests); k++) {
|
||||
var t = f.tests[k]
|
||||
if (t.status == "failed") {
|
||||
has_failures = true
|
||||
@@ -613,13 +613,13 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
||||
if (!has_failures) txt_report += `None\n`
|
||||
|
||||
txt_report += `\n=== DETAILED RESULTS ===\n`
|
||||
for (var i = 0; i < all_results.length; i++) {
|
||||
for (var i = 0; i < length(all_results); i++) {
|
||||
var pkg_res = all_results[i]
|
||||
if (pkg_res.total == 0) continue
|
||||
|
||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
||||
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||
var f = pkg_res.files[j]
|
||||
for (var k = 0; k < f.tests.length; k++) {
|
||||
for (var k = 0; k < length(f.tests); k++) {
|
||||
var t = f.tests[k]
|
||||
var dur = `${t.duration_ns || 0}ns`
|
||||
var status = t.status == "passed" ? "PASS" : "FAIL"
|
||||
@@ -632,14 +632,14 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
||||
log.console(`Report written to ${report_dir}/test.txt`)
|
||||
|
||||
// Generate JSON per package
|
||||
for (var i = 0; i < all_results.length; i++) {
|
||||
for (var i = 0; i < length(all_results); i++) {
|
||||
var pkg_res = all_results[i]
|
||||
if (pkg_res.total == 0) continue
|
||||
|
||||
var pkg_tests = []
|
||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
||||
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||
var f = pkg_res.files[j]
|
||||
for (var k = 0; k < f.tests.length; k++) {
|
||||
for (var k = 0; k < length(f.tests); k++) {
|
||||
pkg_tests.push(f.tests[k])
|
||||
}
|
||||
}
|
||||
@@ -650,7 +650,7 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
||||
}
|
||||
|
||||
// If no actor tests, generate reports and stop immediately
|
||||
if (all_actor_tests.length == 0) {
|
||||
if (length(all_actor_tests) == 0) {
|
||||
generate_reports(totals)
|
||||
$stop()
|
||||
} else {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
var link = use('link')
|
||||
var shop = use('internal/shop')
|
||||
|
||||
if (args.length < 1) {
|
||||
if (length(args) < 1) {
|
||||
log.console("Usage: cell unlink <origin>")
|
||||
log.console("Removes a link and restores the original package.")
|
||||
$stop()
|
||||
|
||||
14
update.ce
14
update.ce
@@ -20,7 +20,7 @@ var target_triple = null
|
||||
var follow_links = false
|
||||
|
||||
// Parse arguments
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--help' || args[i] == '-h') {
|
||||
log.console("Usage: cell update [<locator>] [options]")
|
||||
log.console("")
|
||||
@@ -34,7 +34,7 @@ for (var i = 0; i < args.length; i++) {
|
||||
} else if (args[i] == '--build') {
|
||||
run_build = true
|
||||
} else if (args[i] == '--target' || args[i] == '-t') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
target_triple = args[++i]
|
||||
} else {
|
||||
log.error('--target requires a triple')
|
||||
@@ -107,10 +107,10 @@ if (target_pkg) {
|
||||
}
|
||||
} else {
|
||||
var packages = shop.list_packages()
|
||||
var pkg_count = packages.length
|
||||
var pkg_count = length(packages)
|
||||
log.console("Checking for updates (" + text(pkg_count) + " package" + (pkg_count == 1 ? "" : "s") + ")...")
|
||||
|
||||
for (var i = 0; i < packages.length; i++) {
|
||||
for (var i = 0; i < length(packages); i++) {
|
||||
var pkg = packages[i]
|
||||
if (pkg == 'core') continue
|
||||
|
||||
@@ -120,15 +120,15 @@ if (target_pkg) {
|
||||
}
|
||||
}
|
||||
|
||||
if (updated_packages.length > 0) {
|
||||
log.console("Updated " + text(updated_packages.length) + " package" + (updated_packages.length == 1 ? "" : "s") + ".")
|
||||
if (length(updated_packages)) > 0) {
|
||||
log.console("Updated " + text(length(updated_packages)) + " package" + (length(updated_packages) == 1 ? "" : "s") + ".")
|
||||
} else {
|
||||
log.console("All packages are up to date.")
|
||||
}
|
||||
}
|
||||
|
||||
// Run build if requested
|
||||
if (run_build && updated_packages.length > 0) {
|
||||
if (run_build && length(updated_packages) > 0) {
|
||||
log.console("")
|
||||
log.console("Building updated packages...")
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
var shop = use('internal/shop')
|
||||
var fd = use('fd')
|
||||
|
||||
var cmd = args.length > 0 ? args[0] : null
|
||||
var cmd = length(args) > 0 ? args[0] : null
|
||||
|
||||
if (cmd == 'link') {
|
||||
if (args.length < 2) {
|
||||
if (length(args) < 2) {
|
||||
log.console("Usage: cell upgrade link <core_dir>")
|
||||
return
|
||||
}
|
||||
|
||||
16
verify.ce
16
verify.ce
@@ -21,11 +21,11 @@ var scope = null
|
||||
var deep = false
|
||||
var target_triple = null
|
||||
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
for (var i = 0; i < length(args); i++) {
|
||||
if (args[i] == '--deep') {
|
||||
deep = true
|
||||
} else if (args[i] == '--target' || args[i] == '-t') {
|
||||
if (i + 1 < args.length) {
|
||||
if (i + 1 < length(args)) {
|
||||
target_triple = args[++i]
|
||||
} else {
|
||||
log.error('--target requires a triple')
|
||||
@@ -139,7 +139,7 @@ function verify_package(locator) {
|
||||
// Only check for builds if package has C files
|
||||
try {
|
||||
var c_files = pkg.get_c_files(locator, target_triple, true)
|
||||
if (c_files && c_files.length > 0) {
|
||||
if (c_files && length(c_files) > 0) {
|
||||
if (!fd.is_file(lib_path)) {
|
||||
add_warning(locator + ": library not built at " + lib_path)
|
||||
}
|
||||
@@ -221,7 +221,7 @@ if (scope == 'shop') {
|
||||
}
|
||||
}
|
||||
|
||||
log.console("Verifying " + text(packages_to_verify.length) + " package(s)...")
|
||||
log.console("Verifying " + text(length(packages_to_verify)) + " package(s)...")
|
||||
log.console("")
|
||||
|
||||
// Run verification
|
||||
@@ -234,7 +234,7 @@ arrfor(packages_to_verify, function(p) {
|
||||
})
|
||||
|
||||
// Print results
|
||||
if (warnings.length > 0) {
|
||||
if (length(warnings) > 0) {
|
||||
log.console("Warnings:")
|
||||
arrfor(warnings, function(w) {
|
||||
log.console(" " + w)
|
||||
@@ -242,16 +242,16 @@ if (warnings.length > 0) {
|
||||
log.console("")
|
||||
}
|
||||
|
||||
if (errors.length > 0) {
|
||||
if (length(errors) > 0) {
|
||||
log.console("Errors:")
|
||||
arrfor(errors, function(e) {
|
||||
log.console(" " + e)
|
||||
})
|
||||
log.console("")
|
||||
log.console("Verification FAILED: " + text(errors.length) + " error(s), " + text(warnings.length) + " warning(s)")
|
||||
log.console("Verification FAILED: " + text(length(errors)) + " error(s), " + text(length(warnings)) + " warning(s)")
|
||||
// Note: would use process.exit(1) if available
|
||||
} else {
|
||||
log.console("Verification PASSED: " + text(checked) + " package(s) checked, " + text(warnings.length) + " warning(s)")
|
||||
log.console("Verification PASSED: " + text(checked) + " package(s) checked, " + text(length(warnings)) + " warning(s)")
|
||||
}
|
||||
|
||||
$stop()
|
||||
|
||||
8
why.ce
8
why.ce
@@ -1,7 +1,7 @@
|
||||
var shop = use('internal/shop')
|
||||
var pkg = use('package')
|
||||
|
||||
if (!args || args.length < 1) {
|
||||
if (!args || length(args) < 1) {
|
||||
log.console("Usage: cell why <package>")
|
||||
$stop()
|
||||
return
|
||||
@@ -25,7 +25,7 @@ function search(current_pkg, stack) {
|
||||
// Sort for consistent output
|
||||
var aliases = sort(array(deps))
|
||||
|
||||
for (var i = 0; i < aliases.length; i++) {
|
||||
for (var i = 0; i < length(aliases); i++) {
|
||||
var alias = aliases[i]
|
||||
var locator = deps[alias]
|
||||
var parsed = shop.parse_package(locator)
|
||||
@@ -60,7 +60,7 @@ function search(current_pkg, stack) {
|
||||
|
||||
// Recurse if not seen in current stack (cycle detection)
|
||||
var cycle = false
|
||||
for (var j = 0; j < stack.length; j++) {
|
||||
for (var j = 0; j < length(stack); j++) {
|
||||
if (stack[j].pkg == canon) {
|
||||
cycle = true
|
||||
break
|
||||
@@ -78,7 +78,7 @@ function print_stack(stack) {
|
||||
var output = "project"
|
||||
log.console(output)
|
||||
|
||||
for (var i = 0; i < stack.length; i++) {
|
||||
for (var i = 0; i < length(stack); i++) {
|
||||
var node = stack[i]
|
||||
var indent = ""
|
||||
for (var j = 0; j <= i; j++) indent += " "
|
||||
|
||||
Reference in New Issue
Block a user