ইমাস সংস্করণগুলির মধ্যে বাইকোডের বহনযোগ্যতা


9

আমি মাঝে মাঝে একই হোম ডিরেক্টরি থেকে ইম্যাক্সের একাধিক সংস্করণ পরিচালনা করি। আমার কাছে বাইট-সংকলিত ফাইল রয়েছে। বাইটকোড সমস্ত ইমাস সংস্করণ জুড়ে উপযুক্ত নয়, তাই আমি .elcপ্রতিটি সংস্করণ ব্যাপ্তির জন্য ফাইলগুলির জন্য পৃথক ডিরেক্টরি বজায় রাখি ।

বাইটকোড সামঞ্জস্যপূর্ণ এমন সংস্করণ ব্যাপ্তিগুলি কী কী? আমি বর্তমানে আছে

gnu-19.29
gnu-20
gnu-21
gnu-22
gnu-23
gnu-24
source
x-19
x-20
x-21

অর্থাত্ 19.29-এ অতিরিক্ত বিচ্ছেদ সহ প্রতিটি বড় রিলিজের জন্য ডিরেক্টরিগুলি (আমি এই মেশিনে কোনও পুরানো সংস্করণটি ব্যবহার করিনি, অন্যথায় সেখানে থাকত না gnu-19), এবং জিএনইউ ইম্যাকস এবং এক্সএম্যাক্সের জন্য পৃথক ডিরেক্টরি। যদিও আমি সম্ভবত অত্যধিক সতর্ক।

Emacs সংস্করণ জুড়ে বাইটকোড সামঞ্জস্যতা সম্পর্কিত সরকারী নীতি কী? আমি কি আত্মবিশ্বাসের সাথে প্রধান সংস্করণটি ব্যবহার করে রাখতে পারি? আমি কি কিছু সংস্করণ একীভূত করতে পারি? ইমটিক্স সংস্করণে নির্ভর না করে ডিরেক্টরিটির নাম তৈরি করতে সংকলন করার সময় আমি কি কোয়েরোইড সংস্করণ ইঙ্গিত বা চেকসাম থাকতে পারি?

নোট করুন যে আমি প্রাথমিকভাবে সম্পূর্ণ সামঞ্জস্যের প্রতি আগ্রহী, কেবল পিছিয়ে পড়া সামঞ্জস্য নয়। আমি ইমাস্যাক্স 27.3 চালাতে পারি এবং কিছু ফাইল বাইট-কম্পাইল করতে পারি এবং তারপরে পরে একই হোম ডিরেক্টরি সহ ইম্যাক্স 27.2।


কৌতূহলের বাইরে আপনি এত পুরানো সংস্করণ কেন চালাচ্ছেন? ১৯ এর মধ্যে এখন এক দশকের বেশি হওয়া উচিত।
টাইলার

কিছু ইমাস 24.2 .elc ফাইল ইমাস
উইলফ্রেড হিউজ

উত্তর:


9

রক্ষণাবেক্ষণকারী হিসাবে, আমি নিম্নলিখিতগুলি সংরক্ষণ করার চেষ্টা করি:

  • বাইট-কোডের পিছনে সামঞ্জস্য। অর্থাৎ আপনার নিজের .elc ফাইলটি Emacs-19 এর সাথে সংকলিত নিতে এবং এটিকে Emacs-27 এ সফলভাবে চালাতে সক্ষম হওয়া উচিত। অবশ্যই, বাস্তবে এটি সর্বদা কার্যকর হয় না, কারণ পশ্চাদপদ অসম্পূর্ণতাগুলি দুর্ঘটনাক্রমে বা সচেতনভাবে প্রবর্তিত হয় (এগুলি সাধারণত বাইকোম্পাইল ফাইলগুলির সাথে নির্দিষ্ট নয়)।
  • একটি প্রধান সংস্করণে সম্পূর্ণ বাইট-কোড সামঞ্জস্য। এটি কম যত্ন নিয়ে অনুসরণ করা হয়, বেশিরভাগ কারণ এটি স্বয়ংক্রিয়ভাবে ঘটে থাকে তবে সাধারণত আপনি 27.N তে বাইট-সংকলন করতে সক্ষম হন এবং 27.1.1 এ এটি সফলভাবে চালাতে সক্ষম হন। এটি বলেছে, পুরানো সংস্করণে বাইট-সংকলন করার জন্য সর্বদা এটি প্রস্তাবিত।

অবশ্যই, উপরেরটি বিশেষত বাইট সংকলিত কোড সম্পর্কে, এবং এখনও প্রকৃত সাধারণ সামঞ্জস্যের উপর নির্ভর করে: যদি foo.elEmacs-19 এবং Emacs-27 এ চালানো হয়, তবে foo.elcEmacs-19 এ সংকলিত ইম্যাক্স -27 এ কাজ করা উচিত। তবে যদি foo.elএটি ইমাস -১৯ বা ইমাস্যাক্স -27 এ কাজ করে না, তবে foo.elcEmacs-19- এ সংকলিত সম্ভবত ইমাস্যাক্স -27 এ কাজ করবে না।

এছাড়াও, কয়েকটি কেস রয়েছে যেখানে আমরা সচেতনভাবে বাইট-সংকলিত কোডটির পশ্চাদপটে সামঞ্জস্যতা ভেঙে দিয়েছি।


5

আপনার বাইকোড ফাইলগুলি বিভিন্ন ইমাস সংস্করণের মধ্যে সামঞ্জস্যপূর্ণ হওয়ার আশা করা উচিত নয়। আসল বাইটকোড ফর্ম্যাটটি বেশিরভাগ upর্ধ্বমুখী সামঞ্জস্যপূর্ণ তবে আপনি প্রসারিত ম্যাক্রোগুলির সাথে সমস্যায় পড়বেন।

আমাকে বিস্তারিত বলতে দাও. বাইট-সংকলক যখন কোনও ম্যাক্রোর মুখোমুখি হয়, তখন এটি ম্যাক্রোর সম্প্রসারণের গণনা করে এবং ফলাফলটি সংকলন করে। যদি ম্যাক্রো কোনও ফাংশনে কলটিতে প্রসারিত হয়, তবে ফলস্বরূপ বাইটকোড ফাইলটিতে ফাংশনটির একটি রেফারেন্স থাকবে। যদি কোনও অভ্যন্তরীণ ফাংশন ম্যাক্রোর প্রসারণে প্রদর্শিত হয় যা ইমাস সংস্করণগুলির মধ্যে পরিবর্তিত হয়, তবে বাইটকোড সুসংগত হবে না।

স্পষ্টতই, ইমাকস বিকাশকারীরা ম্যাক্রোগুলি এড়াতে চেষ্টা করে যা পরিবর্তিত হতে পারে এমন অভ্যন্তরীণ ফাংশনে প্রসারিত হয়। যাইহোক, এটি কখনও কখনও অর্জন করা কঠিন, এবং আমি এটির উপর নির্ভর করব না, বিশেষত gv.elইম্যাক্স 24 এ প্রবর্তনের মতো বড় পরিবর্তনের উপস্থিতিতে ।

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