lint .c; add wasm target

This commit is contained in:
Dan Ballard 2026-07-06 09:34:18 -07:00
parent 354ed22c9a
commit dd2defc2ca
3 changed files with 18 additions and 12 deletions

View File

@ -7,4 +7,4 @@ clean:
primes.ali primesada primesfor primese primes.h primes1.c primes1.o primes.id primes.make primescbl link.res \
ppas.sh primes.beam primesocaml primesasm primes.cmi primes.cmx luac.out primeshs primes_clisp.fas primes.lib \
Main.hi primes_clisp.lib primes_clisp.o primes.hi primescsieve gst.im primesalt2c primesalt3c primesgo primesrs \
primes.jar
primes.jar primes.wasm

View File

@ -3,6 +3,9 @@
# Run prime number finders
# haplo@mindstab.net
use Env;
use Env qw(WASI_SYSROOT);
print "Mindstab Development Multi-language Prime Number Project v1.02\n(www.mindstab.net/tag/primes/)\nhaplo\@mindstab.net\n\n";
# results file
@ -19,7 +22,7 @@ if ($ARGV[0] eq "--debug") {
# Uncomment for alternat C algorithms
# "c2", "ca", "ca2", "ca3",
# Applied some Tiobe 2026 language ordering
"cpp", "objc", "py", "java", "cs", "js", "vb", "r", "pas", "rs", "go", "php", "ada", "for", "pl",
"cpp", "objc", "py", "java", "cs", "js", "wasm", "vb", "r", "pas", "rs", "go", "php", "ada", "for", "pl",
"kt", "cbl", "dart", "pro", "lua", "rb", "cl", "oml", "erl", "scala", "hs",
"scm", "e", "awk", "tcl", "st", "sml", "4th", "m3", "pike", "rexx", "fe", "5c", "m4", "sh");
@ -107,6 +110,13 @@ $data{'js'}{'name'} = "Javascript (nodejs)";
$data{'js'}{'prog'} = 'primes.js';
$data{'js'}{'interp0'} = 'nodejs';
$data{'wasm'}{'name'} = "Web Assembly (\$WASI_SYSROOT env var required)";
$data{'wasm'}{'src'} = 'primes.c';
$data{'wasm'}{'compiler0'} = "clang";
$data{'wasm'}{'cflags0'} = "-target wasm32-wasip1 --sysroot=$WASI_SYSROOT -nodefaultlibs -lc -lm -o primes.wasm ";
$data{'wasm'}{'prog'} = 'primes.wasm';
$data{'wasm'}{'interp0'} = 'wasmtime';
$data{'pas'}{'name'} = "Pascal";
$data{'pas'}{'src'} = "primes.pas";
$data{'pas'}{'compiler0'} = "fpc";

View File

@ -5,37 +5,33 @@
#include <stdio.h>
#include <math.h>
int main(int argc, char ** argv)
{
int main(int argc, char ** argv) {
unsigned int counter, max_test, tester;
char isPrime;
unsigned int MAX_NUM;
if(argc < 2) {
if (argc < 2) {
printf("primesc <MAX NUM>\n");
return 1;
} else {
MAX_NUM = atoi(argv[1]);
}
if(MAX_NUM < 1)
{
if (MAX_NUM < 1) {
printf("Invalid MAX_NUM specified\n");
return 1;
}
for(counter =3; counter<= MAX_NUM; counter +=2)
{
for (counter =3; counter<= MAX_NUM; counter +=2) {
max_test = (int) sqrt((double) counter);
isPrime = 1;
for(tester =3; tester <= max_test; tester += 2)
{
for (tester =3; tester <= max_test; tester += 2) {
if(! (counter % tester)) {
isPrime = 0;
break;
}
}
if(isPrime) printf("%d\n", counter);
if (isPrime) printf("%d\n", counter);
}
return 0;
}