<div dir="ltr"><div class="gmail_default" style="font-size:small"><span style="font-size:16px;color:rgb(46,51,56);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-variant-ligatures:normal;white-space:break-spaces;background-color:rgba(6,6,7,0.02)">Much smaller improvement on Windows but still nice to have.
Old:  '10,100 per second. 98.6 microseconds per run. 0 % GC time.' 
New: '14,700 per second. 67.8 microseconds per run. 0 % GC time.'</span><br></div><div class="gmail_default" style="font-size:small"><span style="font-size:16px;color:rgb(46,51,56);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-variant-ligatures:normal;white-space:break-spaces;background-color:rgba(6,6,7,0.02)"><br></span></div><div class="gmail_default" style="font-size:small"><span style="font-size:16px;color:rgb(46,51,56);font-family:Whitney,"Helvetica Neue",Helvetica,Arial,sans-serif;font-variant-ligatures:normal;white-space:break-spaces;background-color:rgba(6,6,7,0.02)">(paths used '\no\where\at\all', '\Users\eliot\Desktop\not there' FileDirectory default)</span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 13, 2022 at 9:09 PM <<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Eliot Miranda uploaded a new version of Files to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Files-eem.195.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/trunk/Files-eem.195.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Files-eem.195<br>
Author: eem<br>
Time: 13 July 2022, 9:09:36.427827 pm<br>
UUID: 7ccbfb5c-e5d3-4911-9497-09fdc484d09c<br>
Ancestors: Files-eem.194<br>
<br>
Occasionally FileDirectory>>exists fails.  The old implementation seems unreliable, but it's also slow.  So if possible, implement it above primLookupEntryIn:name:<br>
<br>
<br>
Old:<br>
| foo bar baz |<br>
foo := FileDirectory on: '/no/where/at/all'.<br>
bar := FileDirectory on: '/Users/eliot/Desktop/not there'.<br>
baz := FileDirectory default.<br>
[foo exists. bar exists. baz exists] bench '8,070 per second. 124 microseconds per run. 0 % GC time.' <br>
<br>
New:<br>
| foo bar baz |<br>
foo := FileDirectory on: '/no/where/at/all'.<br>
bar := FileDirectory on: '/Users/eliot/Desktop/not there'.<br>
baz := FileDirectory default.<br>
[foo exists. bar exists. baz exists] bench '73,700 per second. 13.6 microseconds per run. 0.64 % GC time.'<br>
<br>
=============== Diff against Files-eem.194 ===============<br>
<br>
Item was changed:<br>
  ----- Method: FileDirectory>>exists (in category 'testing') -----<br>
  exists<br>
+       "Answer whether the directory exists"<br>
+       ^self class currentDirectoryNickname<br>
+               ifNotNil:<br>
+                       [:me|<br>
+                       (self primLookupEntryIn: pathName asVmPathName name: me asVmPathName)<br>
+                               ifNil: [false]<br>
+                               ifNotNil: [:maybeErr| maybeErr ~~ #primFailed]]<br>
+               ifNil:<br>
+                       [(self primLookupEntryIn: pathName asVmPathName index: 1) ~~ #badDirectoryPath]!<br>
- "Answer whether the directory exists"<br>
- <br>
-       | result |<br>
-       result := self primLookupEntryIn: pathName asVmPathName index: 1.<br>
-       ^ result ~= #badDirectoryPath<br>
- !<br>
<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>