sync with ruby trunk