কেন সময়সীকরণ.নু ইন্টের সাথে কাজ করে তবে ইঁদুর নয়?


9

একটি সময়কালের জন্য, কেন আমাকে হাতের কাছে একটি ইঁদুরকে জোর করে জবরদস্তি করা দরকার, তবে কোনও আন্ত নয়?

এটি রাকুডো সংস্করণ 2020.01 মোআরভিএম সংস্করণ 2020.01.1 এ বাস্তবায়িত হয়েছে পার্ল 6.d প্রয়োগ করে। ওএসএক্স-এ

say $v.WHAT; #(Int)
$v = Duration.new( $v );
say $v;     #20 

my $w = 20.0;
say $w.WHAT; #(Rat)
$w = Duration.new( $w.Real );
say $w;     #20 

my $x = 20.0;
say $x.WHAT; #(Rat)
$x = Duration.new( $x );
say $x;     #hangs

উত্তর:


10

এটি একটি বাগ। যা https://github.com/rakudo/rakudo/commit/f70d95e299 দিয়ে স্থির করা হয়েছে ।

Ratঅন্য যে কোনও ধরণের চেয়ে এটি ভিন্নভাবে আচরণ করার কারণটি হ'ল Ratকেসটি কোনও জবরদস্তি না করার জন্য অনুকূলিত হয়েছিল, এবং এইভাবে জবরদস্তির ফলাফলটি পরীক্ষা করার প্রয়োজন হয় না। সেক্ষেত্রে মানটি সরাসরি নতুন Durationঅবজেক্টে রাখা হয়েছিল। যাইহোক, এটি ডি-কন্টেইনারাইজিং ছাড়াই এটি করেছে, সুতরাং Durationবস্তুটি আসলে $xআপনার উদাহরণ থেকে পরিবর্তনশীলটিকে উল্লেখ করবে । এটি সাধারণভাবে ঠিক আছে তবে .gistযুক্তিটি কোনওভাবে Durationএই স্ব-রেফারেন্সের কারণে একটি প্রতিনিধিত্ব তৈরি করার চেষ্টা করে একটি অসীম লুপ তৈরি করেছে । অবশ্যই স্বীকার করতে হবে যে আমি সত্যিই এটি কোন লুপের মধ্যে গিয়েছিলাম সেখানে looked

যাইহোক, মানটি Durationবস্তুর অভ্যন্তরে অনিয়ন্ত্রিত হয়ে যায় তা নিশ্চিত করে সমস্যাটি চলে যায় কারণ এটি আর স্ব-উল্লেখ করা যায় না।


1
আহা - ধন্যবাদ! সাধারণত রাকু দিয়ে আমি দেখতে পাই যে বাগগুলি আমার এবং সংকলক নয়!
পি

স্ব-রেফারেন্সিয়াল প্রশ্ন!
এসএস আন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.