> From: Taylor R Campbell <campb...@mumble.net> > Date: Thu, 25 Apr 2013 18:46:53 +0000 > > [...] > I'd hazard a guess that it's because you stored a flonum in a local > variable:
Oops. I need those if I want the results to be stored back into one of the arguments. Yet I never found a real need for that, and now I see there is no advantage in it. Even if THESE saves were optimized away, there is no guarantee many other flonums will not spill into the heap (e.g. during 3d-multiply! with its 18 local flonum variables). > Also, please consider fine-grained NO-TYPE-CHECKS/NO-RANGE-CHECKS > declarations -- only in scopes where you have meticulously proven that > the type and range checks are guaranteed not to fail. "Meticulously proven..." Good one! Oh you crack me up Riastradh. Is that the genuine advice of a berserker? OR a hacker? The 2 main procedures in matrices.scm were pulled from geometry.scm specifically for the no-type-checks/no-range-checks declarations, which were to be applied by the builder, not declared in a supposedly portickle file. I gave that up when I found I had plenty of other declarations I wanted to make INSIDE files. (Any ports will just have to define some DECLARE syntax.) I also found compile-file did not support the obvious way of introducing declarations. It overrides sf/default-declarations rather than appending to it. (Why is that?) > By the way, you don't need to look at the LAP to find and destroy > cases of FLOAT->OBJECT -- the RTL exposes that too and is much easier > to read. And miss all the fld/fstp fun? You must have a wide screen. I tend to ignore comments that trail off into the wild right yonder. Am I the only one itching to write ABBREVIATE-RTL, a procedure that replaces (register 4) with (r stack), (register 7) with (r free), etc? _______________________________________________ MIT-Scheme-devel mailing list MIT-Scheme-devel@gnu.org https://lists.gnu.org/mailman/listinfo/mit-scheme-devel