Home / dcSpark / cardano-multiplatform-lib
Feb 01, 7-8 PM (0)
Feb 01, 8-9 PM (0)
Feb 01, 9-10 PM (0)
Feb 01, 10-11 PM (0)
Feb 01, 11-12 AM (0)
Feb 02, 12-1 AM (0)
Feb 02, 1-2 AM (0)
Feb 02, 2-3 AM (0)
Feb 02, 3-4 AM (0)
Feb 02, 4-5 AM (0)
Feb 02, 5-6 AM (0)
Feb 02, 6-7 AM (0)
Feb 02, 7-8 AM (0)
Feb 02, 8-9 AM (0)
Feb 02, 9-10 AM (0)
Feb 02, 10-11 AM (0)
Feb 02, 11-12 PM (0)
Feb 02, 12-1 PM (0)
Feb 02, 1-2 PM (0)
Feb 02, 2-3 PM (0)
Feb 02, 3-4 PM (0)
Feb 02, 4-5 PM (0)
Feb 02, 5-6 PM (0)
Feb 02, 6-7 PM (0)
Feb 02, 7-8 PM (0)
Feb 02, 8-9 PM (0)
Feb 02, 9-10 PM (0)
Feb 02, 10-11 PM (0)
Feb 02, 11-12 AM (0)
Feb 03, 12-1 AM (0)
Feb 03, 1-2 AM (0)
Feb 03, 2-3 AM (0)
Feb 03, 3-4 AM (0)
Feb 03, 4-5 AM (0)
Feb 03, 5-6 AM (0)
Feb 03, 6-7 AM (0)
Feb 03, 7-8 AM (0)
Feb 03, 8-9 AM (0)
Feb 03, 9-10 AM (0)
Feb 03, 10-11 AM (0)
Feb 03, 11-12 PM (0)
Feb 03, 12-1 PM (0)
Feb 03, 1-2 PM (0)
Feb 03, 2-3 PM (0)
Feb 03, 3-4 PM (0)
Feb 03, 4-5 PM (0)
Feb 03, 5-6 PM (0)
Feb 03, 6-7 PM (0)
Feb 03, 7-8 PM (0)
Feb 03, 8-9 PM (0)
Feb 03, 9-10 PM (0)
Feb 03, 10-11 PM (0)
Feb 03, 11-12 AM (0)
Feb 04, 12-1 AM (0)
Feb 04, 1-2 AM (0)
Feb 04, 2-3 AM (0)
Feb 04, 3-4 AM (10)
Feb 04, 4-5 AM (0)
Feb 04, 5-6 AM (0)
Feb 04, 6-7 AM (0)
Feb 04, 7-8 AM (0)
Feb 04, 8-9 AM (0)
Feb 04, 9-10 AM (0)
Feb 04, 10-11 AM (0)
Feb 04, 11-12 PM (0)
Feb 04, 12-1 PM (0)
Feb 04, 1-2 PM (0)
Feb 04, 2-3 PM (0)
Feb 04, 3-4 PM (0)
Feb 04, 4-5 PM (0)
Feb 04, 5-6 PM (0)
Feb 04, 6-7 PM (0)
Feb 04, 7-8 PM (0)
Feb 04, 8-9 PM (0)
Feb 04, 9-10 PM (0)
Feb 04, 10-11 PM (0)
Feb 04, 11-12 AM (0)
Feb 05, 12-1 AM (0)
Feb 05, 1-2 AM (0)
Feb 05, 2-3 AM (0)
Feb 05, 3-4 AM (0)
Feb 05, 4-5 AM (0)
Feb 05, 5-6 AM (0)
Feb 05, 6-7 AM (0)
Feb 05, 7-8 AM (0)
Feb 05, 8-9 AM (0)
Feb 05, 9-10 AM (0)
Feb 05, 10-11 AM (0)
Feb 05, 11-12 PM (0)
Feb 05, 12-1 PM (0)
Feb 05, 1-2 PM (0)
Feb 05, 2-3 PM (0)
Feb 05, 3-4 PM (0)
Feb 05, 4-5 PM (0)
Feb 05, 5-6 PM (0)
Feb 05, 6-7 PM (0)
Feb 05, 7-8 PM (0)
Feb 05, 8-9 PM (0)
Feb 05, 9-10 PM (0)
Feb 05, 10-11 PM (0)
Feb 05, 11-12 AM (0)
Feb 06, 12-1 AM (0)
Feb 06, 1-2 AM (0)
Feb 06, 2-3 AM (0)
Feb 06, 3-4 AM (0)
Feb 06, 4-5 AM (0)
Feb 06, 5-6 AM (0)
Feb 06, 6-7 AM (0)
Feb 06, 7-8 AM (0)
Feb 06, 8-9 AM (0)
Feb 06, 9-10 AM (0)
Feb 06, 10-11 AM (0)
Feb 06, 11-12 PM (0)
Feb 06, 12-1 PM (0)
Feb 06, 1-2 PM (0)
Feb 06, 2-3 PM (0)
Feb 06, 3-4 PM (0)
Feb 06, 4-5 PM (0)
Feb 06, 5-6 PM (0)
Feb 06, 6-7 PM (0)
Feb 06, 7-8 PM (0)
Feb 06, 8-9 PM (0)
Feb 06, 9-10 PM (0)
Feb 06, 10-11 PM (0)
Feb 06, 11-12 AM (0)
Feb 07, 12-1 AM (0)
Feb 07, 1-2 AM (0)
Feb 07, 2-3 AM (0)
Feb 07, 3-4 AM (0)
Feb 07, 4-5 AM (0)
Feb 07, 5-6 AM (0)
Feb 07, 6-7 AM (0)
Feb 07, 7-8 AM (0)
Feb 07, 8-9 AM (0)
Feb 07, 9-10 AM (0)
Feb 07, 10-11 AM (0)
Feb 07, 11-12 PM (0)
Feb 07, 12-1 PM (0)
Feb 07, 1-2 PM (0)
Feb 07, 2-3 PM (0)
Feb 07, 3-4 PM (0)
Feb 07, 4-5 PM (0)
Feb 07, 5-6 PM (0)
Feb 07, 6-7 PM (0)
Feb 07, 7-8 PM (0)
Feb 07, 8-9 PM (0)
Feb 07, 9-10 PM (0)
Feb 07, 10-11 PM (0)
Feb 07, 11-12 AM (0)
Feb 08, 12-1 AM (0)
Feb 08, 1-2 AM (0)
Feb 08, 2-3 AM (0)
Feb 08, 3-4 AM (0)
Feb 08, 4-5 AM (0)
Feb 08, 5-6 AM (0)
Feb 08, 6-7 AM (0)
Feb 08, 7-8 AM (0)
Feb 08, 8-9 AM (0)
Feb 08, 9-10 AM (0)
Feb 08, 10-11 AM (0)
Feb 08, 11-12 PM (0)
Feb 08, 12-1 PM (0)
Feb 08, 1-2 PM (0)
Feb 08, 2-3 PM (0)
Feb 08, 3-4 PM (1)
Feb 08, 4-5 PM (0)
Feb 08, 5-6 PM (0)
Feb 08, 6-7 PM (0)
Feb 08, 7-8 PM (0)
11 commits this week Feb 01, 2023 - Feb 08, 2023
Enable weakrefs in WASM builds
This will allow users to not have to explicitly `free()` every single
object from WASM, greatly improving the user experience.

People running very allocation-heavy processe using CML can still use
`free()` to have more control over deallocation.

`cip25` was tested with this with a heavy allocation example from the
browser (running the example in `cip25/wasm/README.md`) many times.
Without it, it would run out of memory after 250,000 itertions
consistently. With it, and with timeouts to allow the GC to kick in it
was able to make it much higher but tended to eventually run out of
memory after 1-2 million. This could be something unavoidable in how the
GC works (fragmentation? or maybe 50k chunks we were using were too big
so it wasn't getting run until it was too late?).

Further testing/investigation might be warranted, but in general if you
are using CML for heavy workloads you might still want to do `free()` on
the objects used there.
Fix for parsing metadata with duplicate labels
CBOR doesn't strictly restrict duplicate keys unless strict mode is
enabled so this allowed such data to be allowed on-chain

this fixes #73

we don't keep the duplicate metadatum consistent with a previous fix
with duplicate keys in metadata maps. how to handle this isn't
well-defined by the specs and seems to be  an oversight/bug in the node
code to not reject it.
Fix for parsing metadata with duplicate labels
CBOR doesn't strictly restrict duplicate keys unless strict mode is
enabled so this allowed such data to be allowed on-chain

this fixes #73

we don't keep the duplicate metadatum consistent with a previous fix
with duplicate keys in metadata maps. how to handle this isn't
well-defined by the specs and seems to be  an oversight/bug in the node
code to not reject it.
CIP25 ignore properly extra data EVERYWHERE (#180)
Includes a fix for test case in #175

This also includes fixes for extra data in tables too, not just those
ones in map-structs.

A test case is added that covers basically anywhere you could add extra
data, but under the assumption that keys of the same CBOR type as
somewhere in the spec must conform to the spec. The rest of the data is
ignored properly and can be whatever. Also, constants e.g. string
members are also allowed that don't conform and are ignored (this is
what #175 tested).

It could be worth adding this operation to cddl-codegen if we get more
metadata-based specs although we would need to do it a bit more
generically since the other data wouldn't necessarily be a metadatum
(unless we hardcode CML-related types into cddl-codegen but I'd rather
not do that).: