Added basic uniqueness checks for type/class members, fun args, etc. Also
added checks to make sure that all exports for the same type agree in what
they're exporting.
svn: r361
and screaming into its own file, and now we stick that stuff into its
own little space at the front of what translate returns so that it's
seen by Check Syntax, but we can drop it like a hot potato when it
comes time to run the compiled code.
svn: r340
This fixes up the fact that is-a? should work different for Honu
classes than MzScheme ones (since Honu classes do not automatically
implement the interfaces their superclass did). I also did some
parameterization in the translate module (outside the already
existing current-compile-context).
svn: r330
This makes tenv and lenv, which were arguments to almost everything,
into parameters. The only time they need to be set is after parsing
and before calling anything else, so there's one use in compile/defns
and one use in compile/interaction.
While I was at it, I took a lot of the infrequently-changing
arguments to typecheck-expression and made some typechecker-local
parameters also.
svn: r326
This adds the ability to configure whether to print out just the class
name or class + fields for objects. This also adds the feature of
printing out the type of expressions evaluated at the REPL as well as
their value.
svn: r318
Now null values are printed out as "null" instead of
"#<struct:object:null%>". Simple addition, but useful.
This also adds a very unintelligent pretty printing for classes
by adding a new public member for every Honu generated class that
gets called by format-honu (in tool.ss).
This pretty printing reveals the values for static members.
Eventually I'll want to add an option to print just classes or
classes + fields, like in ProfessorJ, but this was the heavy
lifting of getting classes + fields printing out in the first place.
svn: r312
May have to eventually make my own prefixed version of values to use,
similar to what I did with send (though honu:send does a (Honu) null object
check).
svn: r301