JavaScript: jsbits tasks
This ticket aims to aggregate other work to be done related to jsbits - i.e. implementations that use the JavaScript FFI. Most of this work will involve porting C FFI implementations (cbits) to have JavaScript equivalents, but for the purposes of boot library compatibility with the JS backend, work related to providing pure-Haskell implementations will also be aggregated. For completeness, all boot libraries are tracked, even if no changes are required.
For anyone who is working on, or is aware of work on this topic, please feel free to edit the ticket appropriately, or otherwise request the addition of it.
Boot Libraries
-
Cabal (only Windows FFI imports) -
Win32 (unsupported - the JS backend is Unix-style through Emscripten) -
array: -
memcpy
-
-
base -
binary: -
benchmarks/CBenchmark.c
-
-
bytestring: -
Ticket on bytestring tracker: link -
pure-Haskell implementation WIP? (https://github.com/haskell/bytestring/issues/573#issuecomment-1590998494) -
cbits/aligned-static-hs-data.c
-
-
containers (pure-Haskell already) -
deepseq (pure-Haskell already) -
directory -
utimensat
-
free
-
realpath
-
-
exceptions (pure-Haskell already) -
filepath: -
string.h strlen
-
static sbs_memcmp_off
-
-
haskeline: -
h_wcwidth.c
-
-
hpc: -
hs_hpc_rootModule
(rts/Hpc.h)
-
-
integer-gmp (pure-Haskell implementation provided with Hadrian's --bignum=native flag) -
parsec (pure-Haskell already) -
pretty (pure-Haskell already) -
process: -
common.h -
find_executable.c -
fork_exec.c -
posix_spawn.c -
runProcess.c
-
-
semaphore-compat (pure-Haskell already) -
sum (pure-Haskell already) -
template-haskell: -
memcmp
-
-
terminfo: -
set_curterm
-
del_curterm
-
tigetnum
-
tigetflag
-
tigetstr
-
term.h tparm
-
tputs
-
-
text: -
time: -
time.h clock_gettime
-
time.h clock_getres
-
time.h value CLOCK_REALTIME
-
time.h gettimeofday
-
HsTime.h get_current_timezone_seconds
-
FormatStuff.h format_time
-
-
transformers (pure-Haskell already) -
unix: -
many
-
-
xhtml (pure-Haskell already)
Documentation
-
User guide explanation on how to write jsbits: !11291 (merged)