Skip to content

Instantly share code, notes, and snippets.

@jbhoot
Last active September 3, 2023 10:32
Show Gist options
  • Save jbhoot/4589119650e2dbfa317a34a617834676 to your computer and use it in GitHub Desktop.
Save jbhoot/4589119650e2dbfa317a34a617834676 to your computer and use it in GitHub Desktop.
Find number of unsupported SRFIs for each scheme on this page (https://docs.scheme.org/srfi/support/)
/*
* As of the last run (3rd Sep, 2023),
* STKlos and Gauche have implemented more SRFIs than others.
* STKlos supports (245 total - 123 unsupported = 122) SRFIs.
* Gauche supports (245 total - 124 unsupported = 121) SRFIs.
*/
/* No `let` or `const` in order to be able to paste into the browser console repeatedly. */
SchemeColumn = {
chez: 3,
chibi: 4,
chicken: 5 ,
gambit: 6,
gauche: 7,
gerbil: 8,
guile: 9,
larceny: 12,
mit: 14,
racket: 15,
stklos: 18,
}
UnsupportedSrfis = {
chez: 0,
chibi: 0,
chicken: 0,
gambit: 0,
gauche: 0,
gerbil: 0,
guile: 0,
larceny: 0,
mit: 0,
racket: 0,
stklos: 0,
}
tbody = document.querySelector('table.main > tbody');
rows = tbody.querySelectorAll('tr');
query = scheme => `:nth-child(${scheme}).no`;
rows.forEach(rw => {
let chez = rw.querySelector(query(SchemeColumn.chez));
if(chez) UnsupportedSrfis.chez++;
let chibi = rw.querySelector(query(SchemeColumn.chibi));
if(chibi) UnsupportedSrfis.chibi++;
let chicken = rw.querySelector(query(SchemeColumn.chicken));
if(chicken) UnsupportedSrfis.chicken++;
let gambit = rw.querySelector(query(SchemeColumn.gambit));
if(gambit) UnsupportedSrfis.gambit++;
let gauche = rw.querySelector(query(SchemeColumn.gauche));
if(gauche) UnsupportedSrfis.gauche++;
let gerbil = rw.querySelector(query(SchemeColumn.gerbil));
if(gerbil) UnsupportedSrfis.gerbil++;
let guile = rw.querySelector(query(SchemeColumn.guile));
if(guile) UnsupportedSrfis.guile++;
let larceny = rw.querySelector(query(SchemeColumn.larceny));
if(larceny) UnsupportedSrfis.larceny++;
let mit = rw.querySelector(query(SchemeColumn.mit));
if(mit) UnsupportedSrfis.mit++;
let racket = rw.querySelector(query(SchemeColumn.racket));
if(racket) UnsupportedSrfis.racket++;
let stklos = rw.querySelector(query(SchemeColumn.stklos));
if(stklos) UnsupportedSrfis.stklos++;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment