# HG changeset patch # User unc0rr # Date 1681198256 -7200 # Node ID 5aed6c0b63e2b70cf4d08e97ff24d55bc85ab97c # Parent 77f1973611ec78a36bfede79afb3f6773c709f13 Start PoC of pas2rust conversion routine diff -r 77f1973611ec -r 5aed6c0b63e2 tools/rc/convert.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rc/convert.sh Tue Apr 11 09:30:56 2023 +0200 @@ -0,0 +1,20 @@ +#!/usr/bin/env sh + +ls ../rc || exit + +rm -rdfv build engine +mkdir -p build engine +cd build +cmake -DNOSERVER=on -DBUILD_ENGINE_C=on -DLUA_SYSTEM=on -DNOVIDEOREC=off ../../../ +cmake --build . --target engine_c + +# this one you can get from pip: pip install scan-build +intercept-build cmake --build . --target hwengine +c2rust transpile --emit-build-files --emit-modules --reduce-type-annotations --binary hwengine compile_commands.json --output-dir=../engine + +cd ../engine +sed -i 's/f128.*//g' Cargo.toml +sed -i 's/extern crate f128.*//g' lib.rs +sed -i 's/mod src {/mod src{\npub mod to_f64;/g' lib.rs +find -type f -name '*.rs' -exec sed -i 's/f128/f64/g' {} \; -exec sed -i 's/f64::f64/f64/g' {} \; -exec sed -i 's/use ::f64;/use crate::src::to_f64::to_f64;/g' {} \; -exec sed -i 's/f64::new/to_f64/g' {} \; +cp ../to_f64.rs src/ diff -r 77f1973611ec -r 5aed6c0b63e2 tools/rc/to_f64.rs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rc/to_f64.rs Tue Apr 11 09:30:56 2023 +0200 @@ -0,0 +1,4 @@ +pub fn to_f64>(v: T) -> f64 { + v.into() +} +