Moin!
Eighth report with some delay. Sorry.
This week's success
===================
* We were able to bump the test count from last week's 3386 to 4141.
Lots of thanks to cesar here. The anti-freeze patch helped a lot.
* Eighth patch went in. Here's the Changelog:
> 2005-08-17 Florian Gross <
fl...@ccan.de>
>
> * ScriptObject.cs: Added settable _proto for __proto__. This isn't
> currently exposed to JScript, but set by
> FunctionConstructor.CreateInstance. Moved AddField, ClassName,
> proper_array_index up from JSObject
> * Constructors: Added _length
> * JSObject.cs: Moved AddField, ClassName, proper_array_index up to
> ScriptObject. Added precaching of prototype fields
> * PostOrPrefixOperator.cs: EvaluatePostOrPrefix correctly promotoes
> old value to number. Implemented ++obj.a and obj["a"]--
> * ActivationObject.cs: Added GetMemberValue
> * expression.cs: Added logic for undeclared variables from cesar and
> got it to work
> * ObjectPrototype.cs: toString works on ScriptObjects now
> * JScriptException.cs: Added extra_data for adding details to the
> built-in messages
> * IdentificationTable.cs: Adjusted internal name mapping logic
> * Bindings.cs: Added stubbed IsMissing
> * JSFieldInfo.cs: Added SetValue with Binder and CultureInfo stub
> * Convert.cs: Added IsBoolean, implemented ToString for GlobalScope
> * LateBindings.cs: Added name, obj constructor. Heavily refactored
> by adding GetObjectProperty, TryDirectGetObjectProperty,
> TryGetNativeProperty, DirectSetObjectProperty, TrySetNativeProperty
> and changed methods to use them. We now do prototypes correctly in
> general which also slows us down. MapToInternalName does
> substituation of $ to dollar_. Implemented a simple property cache
> * BooleanPrototype.cs: Better implementations of toString, valueOf
> * Parser.cs: Fixed parsing of "in" keyword in argument lists
> * FunctionPrototype.cs: Works with all ScriptFunctions
> * RegExpObject.cs: Added extra data to RegExpSyntax exception
> * GlobalScope.cs: Initializes elems, removed redundant AddField
> override and implemented stub GetField with lex level
> * ScriptFunctions.cs: Correctly sets __proto__ on result
* Also worked on other stuff that is not yet in:
* DateConstructor.cs: Changed routing for float time values
* RegExpPrototype.cs: Truncates lastIndex before using it
* DatePrototype.cs: prototype's time value is NaN, not 0
* Closure.cs: Sets _prototype from func
* FunctionObject.cs: Changed prototype of user functions
* GlobalObject.cs: parseFloat handles whitespace only differently
* RegExpObject.cs: lastindex changed to double (was int)
* And I'm working on getting the RE stuff merged. There's regressions in
the non-ECMA logic I implemented however and I'm not yet sure how to
best address it. Waiting for feed back from Raja.
* Ruby.NET went into SVN. Not much to see just yet, but this is an
important step.
This week's trouble
===================
* I'm feeling a bit overrun right now. Lots of stuff to do, some of it
not Mono related. Not sure how much longer it will be like that.
This week's goals
=================
* Fixed some of the prototype bugs. I'm pretty sure new ones will appear
eventually...
* Feel free to suggest more stuff. -- On the other hand nobody has ever
really done this formally via this list or mail. Are you guys still
listening? :)
Next week's goals
=================
* Currently, the compiler will just bail out if it sees a constant name
in a constructor call that it doesn't know. It should generate
LateBinding logic instead. This happens with "new Math()" and is
somewhat complex to fix -- but it should be doable.
* Ruby.NET?
* More tests.
Random stuff
============
Thanks go to Miguel and Cesar for being on IRC and taking the time to
respond. It helps a lot if you can talk about problems in time.
Okay, I think that is it for this week. Thanks for all the help I have
received from the Mono folks so far -- it is really a nice community and
that is a good thing.
Patches and tests are available from
http://flgr.dyndns.org/mono/
Regards,
Florian Gross