Repository navigation
A patch release of 0.6.0. On a 32-bit target, such as the WebAssembly the
browser viewer runs, an export could panic when a size read from a
partition wrapped around (#836); the viewer, built from main, has had the
fix since it landed there. crates.io and PyPI show the README packed into
each version, and 0.6.0's support table said more than was measured: it
marked opening Revit 2027, 2015 and 2014-and-earlier projects, with their
previews and schema, as supported, and said every element's IsExternal is
written. 0.6.1's says what is measured. 0.6.1 is built from 0.6.0, not from
main, which has changes for the next minor release.
Upgrading from 0.6.0
Nothing to change. An export names 0.6.1 in its IFC header's FILE_NAME
and in its IfcApplication. Otherwise, on a 64-bit target, Measure's scores
and diagnostics of the reference models, Autodesk's sample projects and the
family corpus are the same as 0.6.0's.
Fixed
- The one-pass data-object scan checks the end it computes (#836).
partition_room_parameters::data_objectstries a header at every offset
of a partition and added the size it reads there to the offset unchecked.
On a 32-bit target a size near 4 GiB from arbitrary bytes wrapped the end
around, and a wrapped end below 4 made its next read panic, which in the
browser viewer aborts the export. The i686 job found it on every family
release. A 64-bit build cannot overflow there, so its output is unchanged.
The job then foundpartition_type_materials' map reader multiplying a
count read from arbitrary bytes by 12 before checking it against its
64-entry limit; the count is now checked first. - The README's support table says what is measured. 0.6.0's marked
opening Revit 2027 and 2015 projects, with their previews and schema, as
supported: they open on Autodesk's sample projects, where previews and
PartAtom are not measured. It marked Revit 2014 and earlier projects as
supported too: no documented 2014 project is measured, and a public 2014
family opens and its schema reads (RE-147). It said every element's
IsExternalis written (RE-193): curtain mullions and panels get none,
as the 0.6.0 notes below now say too. The rows for 2015 to 2022 and 2027
say that no Revit export of those files was measured, rather than that
there is none to measure against, and the summary of what rvt-rs reads
names the releases their elements are measured against: Revit 2019, 2023
and 2026 copies of the same sample projects.
Changed
- CI runs the real-file, CLI, contract and hardening checks on 32-bit
i686 with overflow checks on (#836). A sum or product of lengths read
from a file that cannot overflow a 64-bitusizecan still wrap on a
32-bit target and pass a bounds check it should fail: #835 found one on
wasm32, where the browser viewer runs, and every other CI job builds for
64 bits. In the new job, whichCI passedrequires, such a wrap panics in
the fuzz regressions and the family-corpus checks instead.
User guide: https://github.com/DrunkOnJava/rvt-rs/blob/v0.6.1/docs/user-guide.md