[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MIT-Scheme-devel] A tellurion for the faithful.
From: |
Matt Birkholz |
Subject: |
Re: [MIT-Scheme-devel] A tellurion for the faithful. |
Date: |
Mon, 29 Apr 2013 12:50:16 -0700 |
> From: Taylor R Campbell <address@hidden>
> 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?