ไม่ Ruby ไม่ดำเนินการ TCO อย่างไรก็ตามยังไม่ได้ทำ TCO
ข้อกำหนดภาษา Ruby ไม่ได้บอกอะไรเกี่ยวกับ TCO มันไม่ได้บอกว่าคุณต้องทำมัน แต่มันก็ยังไม่ได้บอกว่าคุณไม่สามารถทำมันได้ คุณไม่สามารถพึ่งพามันได้
ซึ่งแตกต่างจาก Scheme ตรงที่ข้อกำหนดของภาษากำหนดให้การใช้งานทั้งหมดต้องดำเนินการ TCO แต่มันก็แตกต่างจาก Python ตรงที่ Guido van Rossum ได้กล่าวไว้อย่างชัดเจนในหลาย ๆ ครั้ง (ครั้งล่าสุดเมื่อสองสามวันก่อน) ว่า Python Implementations ไม่ควรทำ TCO
Yukihiro Matsumoto เห็นใจ TCO เขาไม่ต้องการบังคับให้Implementation ทั้งหมดสนับสนุน น่าเสียดายนั่นหมายความว่าคุณไม่สามารถพึ่งพา TCO ได้หรือหากคุณทำเช่นนั้นโค้ดของคุณจะไม่สามารถพกพาไปยังการใช้งาน Ruby อื่น ๆ ได้อีกต่อไป
ดังนั้นการใช้งาน Ruby บางส่วนจึงดำเนินการ TCO แต่ส่วนใหญ่ไม่ทำเช่นนั้น ตัวอย่างเช่น YARV รองรับ TCO แม้ว่า (ในขณะนี้) คุณต้องยกเลิกการใส่ข้อความในซอร์สโค้ดอย่างชัดเจนและคอมไพล์ VM ใหม่เพื่อเปิดใช้งาน TCO - ในเวอร์ชันต่อ ๆ ไปจะมีการเปิดใช้งานตามค่าเริ่มต้นหลังจากการใช้งานพิสูจน์แล้ว มั่นคง Parrot Virtual Machine รองรับ TCO โดยกำเนิดดังนั้น Cardinal จึงสามารถรองรับได้อย่างง่ายดายเช่นกัน CLR มีการสนับสนุน TCO ซึ่งหมายความว่า IronRuby และ Ruby.NET อาจทำได้ Rubinius ก็อาจทำได้เช่นกัน
แต่ JRuby และ XRuby ไม่รองรับ TCO และอาจจะไม่ได้เว้นแต่ JVM จะได้รับการสนับสนุน TCO ปัญหาคือ: หากคุณต้องการใช้งานที่รวดเร็วและการรวมเข้ากับ Java ที่รวดเร็วและราบรื่นคุณควรเข้ากันได้กับ Java แบบ stack และใช้สแต็กของ JVM ให้มากที่สุด คุณสามารถใช้ TCO กับแทรมโพลีนหรือรูปแบบการส่งผ่านต่อเนื่องอย่างชัดเจนได้อย่างง่ายดาย แต่คุณไม่ได้ใช้สแต็ก JVM อีกต่อไปซึ่งหมายความว่าทุกครั้งที่คุณต้องการเรียกเข้า Java หรือเรียกจาก Java เป็น Ruby คุณต้องดำเนินการบางอย่าง การแปลงซึ่งช้า ดังนั้น XRuby และ JRuby จึงเลือกใช้ความเร็วและการรวม Java ผ่าน TCO และความต่อเนื่อง (ซึ่งโดยทั่วไปมีปัญหาเดียวกัน)
สิ่งนี้ใช้กับการใช้งาน Ruby ทั้งหมดที่ต้องการผสานรวมอย่างแน่นหนากับแพลตฟอร์มโฮสต์บางตัวที่ไม่รองรับ TCO ตัวอย่างเช่นฉันเดาว่า MacRuby จะมีปัญหาเดียวกัน