1. 10 10月, 2014 10 次提交
    • S
      Implement Array.take, List.take · 3c39e6e2
      Steffen Forkmann 提交于
      Commits:
          implementing "take" for array and list
      
          Check for ArgumentNullException in Array.take
      
          Fix typo
      
          Performance improvement for Array.take
      
          Performance improvement for List.take
      
          Use temporay array for List.take
      
          Do not use array slicing for Array.take
      
          Do not check length of list in List.take
      
          Use mutable list instead of temporay array for List.take
      
          Add List.Take and Array.Take to surface
      
          Always create a new array in Array.take
      
          Remove special case for List.take
      
          Simplify List.take as suggested by @latkin
      3c39e6e2
    • S
      Implement Array.distinctBy, List.distinctBy · bd6ac78c
      Steffen Forkmann 提交于
      Commits:
          implementing "distinctBy" for array and list
      
          Show possible ArgumentNullException in docs for Array.distinctBy
      
          We don't need StructBox any more in "distinctBy"
      
          Use single test method for distinctBy
      
          Add null handling tests for "distinctBy"
      
          Use temp array instead of array comprehension in Array.distinctBy
      
          Use mutable lists for distinctBy
      
          Fix doc parameter name for Array
      
          Adding surface area tests
      bd6ac78c
    • S
      Implement Array.distinct, List.distinct · bebe9a2f
      Steffen Forkmann 提交于
      Commits:
          implementing "distinct" for array and list
      
          fix typo
      
          Use a HashSet instead of dictionary for "distinct"
      
          Show possible ArgumentNullException in docs for Array.distinct
      
          Use only one test method for "distinct"
      
          Adding surface area for "distinct"
      
          Use mutable list for "distinct"
      
          Make Array.distinct use a temp array instead of array comprehension
      
          Adding some test cases for distinct
      
          We don't need StructBox any more in Array.distinct
      
          We don't need StructBox any more in List.distinct
      
          We don't need StructBox any more in Seq.distinct
      
          Move the List.distinct back to local.fs
      
          Add test cases for distinct which show null handling
      
          Fix typos
      bebe9a2f
    • S
      Implement Array.last, List.last · 70146cf9
      Steffen Forkmann 提交于
      Commits:
          implementing "last" for array and list
      
          Show possible System.ArgumentNullException in docs for Array.last
      
          Use direct array lookup for Array.last
      
          use only one test method for "last"
      
          Align "last" docs with the rest
      
          Using tail rec version for List.last
      
          Adding surface area for "last"
      70146cf9
    • S
      Implement Array.pairwise, List.pairwise · b9541ad7
      Steffen Forkmann 提交于
      Commits:
          implementing "pairwise" for array and list
      
          Show possible System.ArgumentNullException in docs for Array.pairwise
      
          use Array.init version for Array.pairwise
      
          use Array.init version for List.pairwise
      
          Adding surface area for pairwise
      b9541ad7
    • S
      Implement Array.singleton, List.singleton · 0e57aa3c
      Steffen Forkmann 提交于
      Commits:
          implementing "singleton" for array and list
      
          Add surface area for singleton
      
          Add null test case for singleton
      
          Change 'yields' to 'contains' in docs, per code review
      0e57aa3c
    • S
      Implement Array.compareWith, List.compareWith · befea5b6
      Steffen Forkmann 提交于
      Commits:
          Implementing "compareWith" for Array and List
      
          Show ArgumentNullException for compareWith on arrays
      
          use tail recursive version for Array.compareWith
      
          use tail recursive version for List.compareWith
      
          Adding surface area for Array.CompareWith and List.CompareWith
      
          Only use one test method for compareWith
      
          Adding more tests for compareWith
      
          Putting all length checks to the beginning in Array.compareWith
      
          Use min operator in Array.compareWith
      befea5b6
    • S
      Implement Array.exactlyOne, List.exactlyOne · cc2834df
      Steffen Forkmann 提交于
      Commits:
          Implementing "exactlyOne" for Array and List
      
          Alphabetical order in .fsi files
      
          Simplify unit tests for exactlyOne
      
          Check for null in Array.exactlyOne
      
          Make XML comment more specific in List.exactlyOne
      
          Adding surface area for Array.ExactlyOne and List.ExactlyOne
      
          Do not use pattern matching on array in Array.exactlyOne
      cc2834df
    • S
      Implement Array.where, List.where · 0fd67dbc
      Steffen Forkmann 提交于
      Commits:
          Implementing "where" for Array and List
      
          Alphabetical order in .fsi files
      
          Show possible System.ArgumentNullException in docs for Array.where
      
          Make XML docs more specific for Array.where and List.where
      
          Make it more obvious that Array.where = Array.filter
      
          Adding surface area fir Array.where and List.where
      
          Array.filter already does a null check. No need to do this in Array.where
      0fd67dbc
    • M
      Implement Array.contains, List.contains, Seq.contains · e8ac90ab
      Max Malook 提交于
          add Seq.contains function
      
          add List.contains function
      
          add Array.contains function
      
          adujst assertion as requested by code review
      
          remove empty comment lines
      
          refactor Seq.contains towards better performance as suggested by code review
      
          refactor List.contains towards better performance as suggested by code review
      
          refactor Array.contains towards better performance as suggested by code review
      
          update surface area tests with added contains functions
      
          define contains functions as inline
      
          Resetting all of the whitespace changes, so that overall diff stays clean
      e8ac90ab
  2. 09 10月, 2014 2 次提交
  3. 01 10月, 2014 3 次提交
  4. 27 9月, 2014 3 次提交
  5. 20 9月, 2014 1 次提交
    • K
      Fix getentryassembly · d2de9b85
      KevinRansom 提交于
           Codeplex issue:  https://visualfsharp.codeplex.com/workitem/131
      
           System.Reflection.Assembly.GetEntryAssembly() returns null if shadow copying is true, and the FSI assembly otherwise.
           Quite a few tools use GetEntryAssembly to get at FSI state, including some internal tools we use. They will break with the new FSI.
      
           Modified test2 to also verify that GetEntryAssembly() returns non-null.  Added a bit more diagnostic output to test1 and test2
       (changeset 1339032)
      d2de9b85
  6. 19 9月, 2014 1 次提交
    • K
      Codeplex issue: 132 - FSI Shadowcopy -- causes a significant degrade in the fsi first execute time · 09e5eb5c
      KevinRansom 提交于
      if you type
       1+1;;
       2+2;;
       there is a perhaps 1 second delay between hitting return and seeing the answer when shadow copy is enabled this delay does not occur when shadow copy is not enabled.
       subsequent statements to the first are not delayed significantly.
      
      The Fix is to enable LoaderOptimisation.MultiDomainHost -- this causes the clr to use the ngened images for assemblies that are signed, loaded from the gac and have corresponding ngen images.   In the issue scenario, when enabling shadowcopy, the appdomain loader unable to load the ngen images in the appdomain doing the work.  This is a known limitation of AppDomains.  The solution is to make the assemblies shared accross appdomains
      
      I did some testing and for a script similar to the 1+1;; in the issue report I ran fsi with and without shadowcopyreferences enabled, with and without MultiDomainHost enabled a few hundred times the table below is the average times of each set of runs.  In all cases Fsharp files were ngened and loaded from their standard VS install locations.
      
      		Without MultiDomainHost			With MultiDomainHost
      		/shadowcopy-	/shadowcopy+		/shadowcopy-	/shadowcopy+
      		56840.58411	118600.1729		61529.93774	71692.79377
      
      As you can see the impact of shadowcpy is much smaller, close to without.  The extra work here is due to creating a new appdomain so the devel it can be unloaded.
      
      MultiDomainHost causes static fields to be indirected and so there is a small degrade on with/without.  The timings were done on a dualcore VM on a server that was not doing any other work.
      
       (changeset 1338154)
      09e5eb5c
  7. 16 9月, 2014 1 次提交
  8. 12 9月, 2014 2 次提交
  9. 11 9月, 2014 2 次提交
  10. 30 8月, 2014 1 次提交
  11. 29 8月, 2014 6 次提交
  12. 28 8月, 2014 4 次提交
  13. 27 8月, 2014 1 次提交
  14. 26 8月, 2014 1 次提交
  15. 20 8月, 2014 1 次提交
  16. 14 8月, 2014 1 次提交