from Ruby-core