Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rubinius/rubinius
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6304e7dfb557^
Choose a base ref
...
head repository: rubinius/rubinius
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 6370559f16f9
Choose a head ref
Loading
Showing with 490 additions and 253 deletions.
  1. +4 −0 configure
  2. +5 −0 kernel/bootstrap/stat.rb
  3. +170 −146 kernel/common/enumerable.rb
  4. +72 −51 kernel/common/file.rb
  5. +28 −0 kernel/common/float.rb
  6. +34 −0 kernel/common/method.rb
  7. +6 −0 spec/ruby/core/enumerable/max_by_spec.rb
  8. +6 −0 spec/ruby/core/enumerable/max_spec.rb
  9. +6 −0 spec/ruby/core/enumerable/min_by_spec.rb
  10. +6 −0 spec/ruby/core/enumerable/min_spec.rb
  11. +27 −11 spec/ruby/core/file/birthtime_spec.rb
  12. +18 −0 spec/ruby/core/kernel/frozen_spec.rb
  13. +14 −0 spec/ruby/core/method/super_method_spec.rb
  14. +1 −0 spec/ruby/core/proc/curry_spec.rb
  15. +1 −1 spec/ruby/core/unboundmethod/fixtures/classes.rb
  16. +14 −0 spec/ruby/core/unboundmethod/super_method_spec.rb
  17. +17 −0 spec/ruby/language/block_spec.rb
  18. +12 −1 spec/ruby/language/def_spec.rb
  19. +7 −7 spec/ruby/language/hash_spec.rb
  20. +17 −0 spec/ruby/language/lambda_spec.rb
  21. +0 −1 spec/ruby/language/regexp/character_classes_spec.rb
  22. +0 −3 spec/tags/ruby/core/enumerable/max_by_tags.txt
  23. +0 −3 spec/tags/ruby/core/enumerable/max_tags.txt
  24. +0 −3 spec/tags/ruby/core/enumerable/min_by_tags.txt
  25. +0 −3 spec/tags/ruby/core/enumerable/min_tags.txt
  26. +0 −4 spec/tags/ruby/core/file/birthtime_tags.txt
  27. +0 −7 spec/tags/ruby/core/float/next_float_tags.txt
  28. +0 −7 spec/tags/ruby/core/float/prev_float_tags.txt
  29. +3 −0 spec/tags/ruby/core/kernel/frozen_tags.txt
  30. +0 −3 spec/tags/ruby/core/method/curry_tags.txt
  31. +0 −1 spec/tags/ruby/core/method/super_method_tags.txt
  32. +1 −0 spec/tags/ruby/core/proc/curry_tags.txt
  33. +0 −1 spec/tags/ruby/core/unboundmethod/super_method_tags.txt
  34. +2 −0 spec/tags/ruby/language/block_tags.txt
  35. +1 −0 spec/tags/ruby/language/def_tags.txt
  36. +4 −0 spec/tags/ruby/language/hash_tags.txt
  37. +2 −0 spec/tags/ruby/language/lambda_tags.txt
  38. +9 −0 vm/builtin/stat.cpp
  39. +3 −0 vm/builtin/stat.hpp
4 changes: 4 additions & 0 deletions configure
Original file line number Diff line number Diff line change
@@ -1230,6 +1230,10 @@ int main() { return tgetnum(""); }
@defines << "HAVE_GETTID"
end

if has_struct_member("stat", "st_birthtimespec", ["sys/stat.h"])
@defines << "HAVE_ST_BIRTHTIME"
end

# glibc has useless lchmod() so we don't try to use lchmod() on linux
if !@linux and has_function("lchmod", ["sys/stat.h", "unistd.h"])
@have_lchmod = true
5 changes: 5 additions & 0 deletions kernel/bootstrap/stat.rb
Original file line number Diff line number Diff line change
@@ -87,6 +87,11 @@ def ctime
raise PrimitiveFailure, "Rubinius::Stat#ctime primitive failed"
end

def birthtime
Rubinius.primitive :stat_birthtime
raise NotImplementedError, "birthtime() function is unimplemented on this machine"
end

def inspect
"#<#{self.class.name} dev=0x#{self.dev.to_s(16)}, ino=#{self.ino}, " \
"mode=#{sprintf("%07d", self.mode.to_s(8).to_i)}, nlink=#{self.nlink}, " \
Loading