Happy !
sig / NBFpu
Monticello registration
About NBFpu
A small package with FPU stack implementation.
In expression:
result := a + b * c
(a+b) is a temporary value, which is used only once and then dropped. Since VM doesn't knows what follows, it has to represent the result with boxed Float. With FPU stack, same expression can be evaluated without need to create intermediate boxed float, therefore reducing GC pressure a lot, as well as making computation faster.
The above expression can be rewritten as following: | stack | stack := FPUStack new.
result := stack push: c; push: b; push: a; add; mul; pop
