(name 'Mongo-BSON-HenrikSperreJohansen.43' message 'Make OID implementation more compatible with the description in http://docs.mongodb.org/manual/reference/object-id/.

- Use the UNIX epoch instead of Smalltalk epoch for timestamp part, store BE so it''s pseudo-sortable by time
- Use a per-session ID instead of localhost name for machine identification. localhost name is far from unique on some platforms (always ''localhost'' on Macs), better with a unique ID per image session.
-  Counter initialized with a random value.

As an added bonus, [OID new] bench should see a ~10%  increase.' id 'c5796cdc-22b3-40a9-b22d-bb206114d8fe' date '19 May 2015' time '12:50:06.166482 pm' author 'HenrikSperreJohansen' ancestors ((name 'Mongo-BSON-TorstenBergmann.42' message 'SocketStream>>position is already in Pharo4, remove the extension' id 'f6b9d580-e599-8b49-9c89-5a375eca0f03' date '16 March 2015' time '5:34:54.061512 am' author 'TorstenBergmann' ancestors ((name 'Mongo-BSON-TorstenBergmann.41' message 'categorize and move tests to own package (Mongo-Tests-BSON)' id 'dee2a55c-17ad-5e47-851d-37ac2ad86010' date '4 March 2015' time '10:10:38.7561 am' author 'TorstenBergmann' ancestors ((name 'Mongo-BSON-NorbertHartl.40' message 'Fixed a bug with order of collections. BSON stores Arrays in the javascript model, meaning an array is a dictionary with the index (as string) being the key to the value. In #nextArrayPut: the conversion took a Dictionary to map. But Dictionaries do not preserve the order of keys. Dictionary is now exchanged with SmallDictionary that does preserve order. Now the order of the in-image collection and the array in the database is the same' id 'e77e9737-e14b-4a68-a822-a80ac1bd3377' date '23 May 2014' time '2:21:59.237267 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-NorbertHartl.39' message 'Changed OID to work according to the mongo spec. An ObjectId is a structured field containing:
* 4-byte timestamp
* 3-byte machine identifier
* 2-byte process identifier
* 3-byte counter
As OID values are big endian the timestamp becomes the first sorting criteria which the DB seems to take into account. Furthermore by exchanging the UUID based code with the new one generating of OIDs is magnitudes faster than before' id 'b9d9dea7-735a-4d6e-a204-c3c1c4859ff0' date '11 May 2014' time '6:20:33.623644 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-NorbertHartl.38' message 'Last implementation of nextOIDPut: wasn''t very clever and succeeded only by chance. The id is always 12 bytes long' id '45c1881f-97ef-427a-96cc-585969b7f612' date '10 May 2014' time '8:24:39.374285 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-NorbertHartl.37' message 'changed reading/writing behaviour for ObjectId in BSON. BSON is little-endian encoded but ObjectId is encoded big-endian for sorting reasons.
Further read: https://github.com/mongodb/mongo/blob/master/src/mongo/bson/oid.h ' id '463445ed-dd2b-42fc-b088-e84e36e78d60' date '8 May 2014' time '11:16:53.302412 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-NorbertHartl.36' message 'changed sub type of UUID to current spec. For writing UUIDs the sub type 4 is used (instead of old 3). On reading both sub types 3 and 4 are read to a UUID.' id 'e05ef021-7a4c-4e77-b897-839acbb28644' date '26 March 2014' time '3:36:36.647743 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-NorbertHartl.35' message 'changed semantics for different types of dictionaries. Some key-value based collections are treated by MongoDB in order and not by key. So the order of keys gets important for queries. 
There are two dictionaries in the system that preserve order: OrderedIdentityDictionary and SmallDictionary. Those two are written in order. Dictionary itself is kept the way it is for legacy reasons and because the order is not guaranteed anyway.
So if you need a specific order of keys in queries use SmallDictionary in place' id 'b50d061f-d51e-4dc8-8bd1-b7c9125d00b8' date '27 November 2013' time '2:39:28.254 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-NorbertHartl.34' message 'BSONTest is now derived from TestCase instead of MongoTestCase' id 'dd7169c8-071a-4178-8f66-5ef3b39b9063' date '27 November 2013' time '10:41:55.035 am' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-EstebanLorenzano.33' message '- merged' id '0d682da7-49de-4738-a981-67500702b727' date '10 September 2013' time '1:44:04.291416 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.32' message '- added different unique number generation strategies (first version, coded in 10min, could be seriously improved)' id 'f6f11b4e-233d-44f6-ab6c-3102acee894a' date '10 September 2013' time '1:41:23.4477 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.31' message '- #nextSizedString was not bringing correctly all utf8 strings. This implementation fixes that. ' id '60b3ef92-a22d-49de-8caf-53b7f1bcf3c7' date '19 May 2015' time '1:44:00.656 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-FrancoisStephany.30' message 'removes an unnecessary halt.' id 'ab0b1a3a-264c-4260-9e62-688c7d1c394b' date '19 May 2015' time '6:08:45.911 pm' author 'FrancoisStephany' ancestors ((name 'Mongo-BSON-NicolasPetton.29' message 'Moved #writeBSONOn: from OrderedCollection to SequenceableCollection' id '1a7c686b-54c2-4d40-b958-be5bd6865c06' date '5 October 2012' time '4:06:57.182 pm' author 'NicolasPetton' ancestors ((name 'Mongo-BSON-EstebanLorenzano.28' message '-bugfix on timestamp (it was storing just time, not date). This fix uses date and time implementation, who looks like working, but I don''t know how accurate it is' id '7fbab157-9eb5-4069-b9c6-6e1454f8fd96' date '19 May 2015' time '10:30:12 am' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-NorbertHartl.27' message 'added support and test for WideString handling' id 'fccf4ef9-e6bf-4184-951d-2aae1a37cc13' date '19 May 2015' time '7:02:59 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-HagenBuchholz.26' message '*Fixed bug that Arrays were returned unordered. 
*added #writeBSONOn: to OrderedCollection so that it is saved just like an Array. might even better be added to SequenceableCollection' id '41f8f6ad-bb61-4412-9151-200be374accc' date '12 April 2012' time '11:31:31 am' author 'HagenBuchholz' ancestors ((name 'Mongo-BSON-NorbertHartl.25' message 'added support for UUID type. Change byte array conversion to spec conform binary conversion that has multiple sub types.' id 'ef046055-4c94-41e6-a700-eafe6ef8519d' date '9 April 2012' time '12:41:48 pm' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-JanVanDeSandt.24' message 'merged' id 'db15437d-d1a7-460b-8add-4646abefbf6e' date '19 May 2015' time '2:41:49 pm' author 'JanVanDeSandt' ancestors ((name 'Mongo-BSON-JanVanDeSandt.23' message '- Added unit test for DateAndTime objects
- SmallLint fies (unused variables)' id '51cfbbb0-fab1-40d3-801d-50f357058383' date '19 May 2015' time '2:38:01 pm' author 'JanVanDeSandt' ancestors ((name 'Mongo-BSON-NorbertHartl.22' message 'added support for dealing with DateAndTime. Fixed bson type handling. Type no.9 was treated as date while it is a DateAndTime' id 'a6af24f6-9f44-476f-b157-969825200c51' date '19 May 2015' time '10:28:27 am' author 'NorbertHartl' ancestors ((name 'Mongo-BSON-NicolasPetton.21' message 'Added support for binary data' id 'a052edff-4013-4598-82e5-1dc42b37decb' date '19 May 2015' time '4:19:40 pm' author 'NicolasPetton' ancestors ((name 'Mongo-BSON-EstebanLorenzano.20' message '-optimizations' id '59594845-aa6c-4e36-b66d-1bbc415c4f2b' date '19 May 2015' time '8:21:12 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.19' message '-some clean ups' id '68156303-72b2-4a5f-8d80-d801c922ebec' date '19 May 2015' time '11:47:43 am' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.0.18' message '-using BSONError instead Error' id '6b60e8b5-d2fe-4b41-b3db-524771e67774' date '19 May 2015' time '3:35:15 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.0.17' message '-performance enhancements
-regex type' id '134201c6-e6ea-4611-b560-084ed034907f' date '19 May 2015' time '9:47:13 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.0.16' message '-added object type Date (different to Timestamp)
-small optimization on getting objects (not crating the type dictionary each time)' id '24156c52-b679-44d9-93d7-5112041baad7' date '10 May 2011' time '2:00:42 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.0.15' message 'added "Date" type' id '53858a67-afb5-4935-9b4d-76ae2c1e037e' date '19 May 2015' time '11:59:58 pm' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-EstebanLorenzano.0.14' message '-OID generation using UUIDGenerator' id '7efb355a-5c3e-415e-947b-2e1023c0bde1' date '19 May 2015' time '8:54:49 am' author 'EstebanLorenzano' ancestors ((name 'Mongo-BSON-klb.0.13' message 'empty log message' id '0b5f3bd0-48d7-4556-ae19-e67fc55166c3' date '2 December 2010' time '6:43:27 pm' author 'KentBeck' ancestors ((name 'Mongo-BSON-klb.0.12' message '' id '261e603c-e482-4e49-93ea-e8d7c065b539' date '2 December 2010' time '11:37:38 am' author 'klb' ancestors ((name 'Mongo-BSON-klb.0.11' message 'Factored out Grease incompatibility' id 'cbf687d0-ee7d-443a-8882-b648b1137be9' date '2 December 2010' time '11:11:54 am' author 'KentBeck' ancestors ((name 'Mongo-BSON-klb.0.10' message 'Subclassed MongoTestCase so tests would load portably.' id '418a6667-9807-44cc-b4fa-effb568dad58' date '2 December 2010' time '9:59:21 am' author 'KentBeck' ancestors ((name 'Mongo-BSON-klb.0.9' message 'Ported to Squeak again.' id '0ad1be56-5a0f-48e1-bdb6-fc56a9c106a0' date '2 November 2010' time '11:09:05 pm' author 'KentBeck' ancestors ((name 'Mongo-BSON-klb.0.8' message '' id 'a1be597b-8d2c-440e-b6bd-fea47112c537' date '2 November 2010' time '5:38:33 pm' author 'klb' ancestors ((name 'Mongo-BSON-klb.0.7' message '' id '1c02a821-de42-4569-8e87-08153c4d9f55' date '2 November 2010' time '3:42:38 pm' author 'klb' ancestors ((name 'Mongo-klb.0.6' message '' id 'd378c6d4-4e11-4cf3-ae94-13e83415ae43' date '2 November 2010' time '3:36:16 pm' author 'klb' ancestors ((name 'Mongo-klb.0.3' message 'Replaced 16rff with 16rFF.' id 'c29ac9ff-5a5c-45b7-aae0-a66f928e38a7' date '2 August 2010' time '2:12:54 pm' author 'klb' ancestors ((name 'Mongo-klb.0.2' message 'Desperately attempting to achieve Squeak compatibility.' id '6fce7df0-d9e3-458b-83dc-be61487854f1' date '2 August 2010' time '2:05:23 pm' author 'klb' ancestors ((name 'Mongo-klb.0.1' message '' id '4c257245-90e4-48e9-a17a-5ce20a651438' date '2 July 2010' time '11:17:59 am' author 'klb' ancestors ((name 'Mongo-Kent Beck.0.1' message 'Initial check in.' id '40a169d3-b76a-44eb-a44b-1825f5b192c7' date '2 July 2010' time '11:14:32 am' author 'Kent Beck' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Mongo-BSON-EstebanLorenzano.22' message 'using BSONUndefinedType error instead BSONError when appropiate' id '82a26661-e207-449d-9524-edfb1d503f9b' date '19 May 2015' time '10:26:40 am' author 'EstebanLorenzano' ancestors ((id 'a052edff-4013-4598-82e5-1dc42b37decb')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Mongo-BSON-NorbertHartl.32' message 'Added test for BSON encoding for DateAndTimes having a non-zero timezone offset. Removed unused method epoch in BSON' id '3df20634-b05d-4a0a-ade7-3d4f32b8184a' date '19 July 2013' time '10:45:54.147 am' author 'NorbertHartl' ancestors ((id '60b3ef92-a22d-49de-8caf-53b7f1bcf3c7')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())