বাইট-সংকলন করার সময় Defcustom সহ ম্যাক্রো "ভেরিয়েবল হিসাবে প্রতীকটির মান বাতিল হয়" ত্রুটি বাড়ে


13

আমার দুটি প্যাকেজটিতে আমার একটি ম্যাক্রো রয়েছে যেখানে দেহটি কোনও defcustomফর্মের সংজ্ঞায়িত চলকটির উপর নির্ভর করে ।

মেলপা থেকে প্যাকেজগুলি ইনস্টল করার সময়, বাইট-সংকলনটি এখানে শেষ হয়:

ত্রুটি: ভেরিয়েবল হিসাবে প্রতীকটির মানটি শূন্য: আমার-ডিফকাস্টম-ভেরিয়েবল

তারপরে, একটি বাফার কার্যক্রমে ফাইলটি খোলার মাধ্যমে ম্যানুয়ালি বাইট-সংকলন করুন।

আমি একটি autoloadকুকি দিয়ে চেষ্টা করেছি কিন্তু এখনও একই আচরণ আছে have

আমি এখানে গুরুত্বপূর্ণ কিছু মিস করছি।


1
defcustomম্যাক্রো শরীরে একটি নির্ভর করে করা একটি অদ্ভুত জিনিস, কারণ defcustomকেবলমাত্র বাইট-সংকলনের সময় কার্যকর হবে (যেখানে ম্যাক্রো প্রসারিত হয়)। এটি আমার কাছে খুব একটা বোঝায় বলে মনে হচ্ছে না।
লুনারিওর

ধন্যবাদ সেবাস্তিয়ান, আপনি ঠিক বলেছেন এবং এটি অনেক কিছুই ব্যাখ্যা করে।
syl20bnr

উত্তর:


15

defcustomঅভিব্যক্তি বাইট-সংকলন করার সময় মূল্যায়ন করা হয় না, তাই যখন আপনার ম্যাক্রো সম্প্রসারিত হয়, পরিবর্তনশীল এখনও বিদ্যমান নেই কারণ যে defcustom কম্পাইল হলেও চালাতে না। আপনি ডিফকাস্টমকে অন্য কোনও ফাইলে স্থানান্তর করতে পারেন (যা আপনি requireনিজের ফাইলের শুরুতে তখন ) বা আপনি ডিফকাস্টমটি ভিতরে আবদ্ধ করতে পারেন eval-and-compile

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