Hi Esteban!
As we talked about on IRC yesterday, I had hoped to employ the fast become discussed in 
to bring faster proxy loading untill Spur arrives.
Sadly, it's not present in any current VM's, for reasons unknown*.

Luckily, the alternative proposed by Levente in the original thread (http://forum.world.st/A-trick-to-speedup-become-but-not-becomeForward-tp3707064p3708128.html) is appropriate for our case.
As I don't have write-access to Voyage repo, I've attached the package with the changes (which work in both 3.0 and 4.0, but I assume not older, due to using the SlotBuilder for anon subclasses)

The package comment contains a workspace doit for comparision, but long story short, for objects covered by the new fast path, you can now materialize more than million objects in the time it previously took to materialize five.

Cheers,
Henry

Attachment: Voyage-Mongo-Core-HenrikSperreJohansen.55.mcz
Description: Binary data



*Need to check we aren't becoming primitive literals before being ok to include? Seriously? 
You can do ((StandardFileStream >> #primRead:into:startingAt:count:) literalAt: 1) at: 4 put: 34 to achieve the same that become apparently must at all costs guard against, does that mean we should also introduce the same kind of primitive fail check requirements to at:put:?
I get that there are some objects you really don't want to become: due to VM linking them internally in various ways, but checks that apply to *certain instances* of a class, should be unneccessary, imho (or, better, done at the user site)

Reply via email to