[OpenID] cryptographics web of trust
Peter Williams
pwilliams at rapattoni.com
Thu Aug 23 01:11:10 UTC 2007
On 22 Aug 2007, at 05:26, Peter Williams wrote:
> Let me simplify all this, by just programming it. I've decide to learn
> the Boo programming language and apply associated Mono compilers (on
> WindowNT).
>
I took about half a day (this first time), but on Windows 2003 SP.latest
one can compile the source (with Boo Compiler version 0.7.8.2559 (CLR
v2.0.50727.832), and NAnt 0.85 (Build 0.85.2478.0; release;
10/14/2006)), after some minor porting.
In summary, I have low confidence the libraries are "well built",
however. Unit tests failed.
--------------------
It does compile - with the Boo compiler in net-2.0 directory.
There were few miscues, that ate a lot of time. Progress was made, but
it all feels rather "unsatisfactory" - for a reference implementation.
1. to extend the nant build language for boo targets, put all the Boo
libraries in the bin/ directory of nant. This may be overkill. Merely
copying the Boo.NAnt.Tasks.dll into lib/ as directed fails however ; as
support for the required <booc> task directive is not actually added.
2. Copy Mono.Security.dll and nunit.framework.dll from Program
Files\Mono into the top-level build directory of the package, so build
targets can reflect on these namespaces. I opted to copy the
Boo.Lang.dll from the compiler install-time libraries to the same
directory, to enable build to update the ASP.NET runtime configurations
of the ASPX targets.
C:\Program
Files\Mono-1.2.4\lib\mono\gac\nunit.framework\2.2.8.0__96d09a1eb7f44a77
C:\Program
Files\Mono-1.2.4\lib\mono\gac\Mono.Security\2.0.0.0__0738eb9f132ed756
3. openid/association.boo line 68. I hack-removed the "protected" access
mode on the method, which was causing build errors. The Boo
language/compiler may have changed since the code was written.
4. test_server.boo struggled with language compatibility too. line 966
needs its Request to be an AssociateRequest. 973 similarly: type/cast
the Request as CheckAuthRequest. The current compiler objects to
ambiguous overloading.
5. other non-Boo build targets have build errors. I did not address
them, removing these build targets.
6. Uncommenting the unit test build target allows nunit to exercise the
libraries.
7. Class loading problems made most tests fail. One common loader whine
is
[nunit2] 24)
Janrain.OpenId.Test.TestCheckIdExtension.UpdateNoNamespace : Sys
tem.TypeLoadException : Could not load type
'Boo.Lang.GenericGenerator`1' from a
ssembly 'Boo.Lang, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=32c39770e9a2
1a67'.
Putting the original Boo.Lang.dll (64k) back into in the top-level
directory of the build tree did not change matters. Feels like issues of
missing load path controls. Both 80k dll variety (from nant bin/) and
65k variety (from openid zip) have the same assembly version metadata,
making me worry about component versioning issues
Summary: Not as easy as it might be.
More information about the general
mailing list