RX0030

डोमेन: इंजन

त्रुटि संदेश

%s का payload vector अपनी सीमा तक पहुँच गया (%s)

संदेश में %s उस मान की जगह है जिसे इंजन त्रुटि उठाते समय भरता है।

कहानी

आपके verb के operands की सूची अपनी सीमा पर पहुँच गई, और इंजन ने एक और operand लेने से मना कर दिया। चलिए समझें। ExecHeap में हर verb का एक cell होता है, और उसमें operands रखने के लिए गिने-चुने slots होते हैं, हर एक की अधिकतम लंबाई भी तय है। जब slots भर जाते हैं, तो इंजन ज़ोर से बताता है, और चुपचाप कोई operand छोड़कर आगे नहीं बढ़ता। यह इतना ज़रूरी क्यों है? क्योंकि अगर कोई operand खो जाता और verb फिर भी चल पड़ता, तो वह पूरे आत्मविश्वास से जवाब देता, पर ग़लत operands पर, और कहीं कोई चेतावनी न होती। वही बात जो RX0007 एक परत ऊपर रोकता है: सफल दिखने वाला गलत जवाब, खुली अस्वीकृति से कहीं बुरा। जैसे बारह लोगों का हिसाब करना हो और रजिस्टर में दस नाम ही आ सकें, और कोई बिना बताए आख़िरी दो छोड़ दे। इलाज: संदेश में उस cell और सीमा को देखिए। अगर सचमुच ज़्यादा operands चाहिए, तो src/engine/heap/run/run.h में RUSH_RUNHEAP_OPERAND_MAX बढ़ाइए, और अगर नहीं, तो अपनी पुकार में operands घटाइए।

पाठ Rush इंजन की त्रुटि सूची से लिया गया है।