[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
goo 0_153 now available
goo 0_153 is now available from www.googoogaga.org along with v44 of
the goo doc. many changes have been made since 0_146 including a
number of internal changes to the vm, analysis, and optimization which
are still currently disabled. other speed improvements are available
including runtime tweaks and loop optimizations which make the current
release significantly faster than 0_146. there are a few new features
and one incompatible change in the syntax of macro definitions.
i am thinking about changing a few things more that would require
existing code to be modified, but i wanted to get a release out asap.
the changes i have in mind are to change:
o the -setter suffix to -set
o file access to signal a condition on eof
o object printing to use a to-doc protocol allowing pretty printing etc
included below is the long list of changes.
happy new year.
jonathan
=== 0.153 ===
summary
added
exp to be (op pow $e _)
enum enum => enum
lst*
fixed
peek to correctly return EOF when appropriate
bit? tests to return boolean
changed
ds syntax is like other binding definitions (ds when (...) ...)
=== 0.152 ===
summary
added
inlining adjectives for df and dm and propagation to runtime
prop access typing and optimizing
known call typing and optimizing
pretty printer
inline adjectives to a bunch of high frequency methods that need em
fixed
sequentialize to be proper tail recursive
vm-dup to dup correct top of stack
nary mets in vm
saved and restored pc in vm-run
some time accessors to be side-effectable
changed
= on <num> <num> to use contagious-call
=== 0.151 ===
summary
lots of changes towards dynamic compilation and a reorg towards more
understandable and cleaner code
added
binding ref tracking for slimmer dynamically generated code
lots more of the typist including loops
method-application ast for real
split out module any log chr mag
arbitrary lit mechanism for ref'ing methods next-method lists etc
recursive error aborting mechanism
fun-counting mechanism and profiler
support for dletting arbitrary settable lhs'
packing-as
<bot> and $bot to types
fixed
decision-tree code working again
lots of bugs in vm to get test suite through
definition in ast-eval to return value as is done with other backends
removed
class-type-cache
uses of %pair from ast generated code
make-immutable from read
changed
empty? and empty to nul? and nul resp.
split out fun-info into separate object
created stable stubs for fun/class creation
changed nary fix-let conversion to create tup's for opts
auto-export boot bindings
primitives to use rep earlier
=== 0.150 ===
summary
major overhaul reorging files and improving speed also added dp! and d.
fixed
vm box evaluation
vm dg treatment
changed
split up grt runtime boot
ast-print to work
typist coming to life
call-analysis moved to optimize
removed loop analysis of primitive calls
changed all primitive loop calls to use rep
string-hash to use low-elt
inlined more of dispatch
added
files goo/fun goo/class goo/functional goo/loc goo/sym
goo/%system.c goo/%math.c goo/io/%port.c
box removal optimization and binding-closed-over? to support it
dp! and now dp does NOT define a setter
d.
special case of ast-walk for programs
vm-eval mode
=== 0.149 ===
summary
added next experimental version of {} syntax, improved g2c code gen
and reg allocation, merged call and loop analysis,
changed
locals, fix-let, and loops no longer have their own registers
and macro to not use a let tmp
collect-registers to use non-side-effecting ast-walk
{} syntax to mainly mean seq
'{' ,@forms '}' == (seq ,@forms)
but with a \ means fun
'{' ,@vars \ ,@body '}' == (fun (,@vars) ,@body)
added
added g2c if optimization to avoid redundant false checks which
can't be optimized by gcc
port-filename to file-ports
improved write method for file-ports
=== 0.148 ===
summary
added <loop> and <loop-application> and inlining of loops. this
adds nested loops to goo and greatly improved emitted code.
changed
changed dispatch to use faster int test for prop access
specialized napp for opts last elt
added
ast-eval's for <loop> and <loop-application>
or/set macro
=== 0.147 ===
summary
vm working with low level support and improved initialization
changed
added vm state to lowlevel runtime grt so that it will mesh with nlx
better vm tracing
next-methods support to vm
nary support to vm
bound? to take a default value
made pe-msg be a non ct-also fun so that it would be faster to expand msg*
sup and app-sup to use @checked-next-methods to make their expansions smaller
added
support for multiple runs of vm-eval
req-sig-specs
more num and col tests
fixed
add method for str's