Are there macros which can be used to test Erlang version in driver C code? -


Erlang R15B जोड़ा ErlDrvSSizeT typedef, और R16B जोड़ा erl_drv_output_term समारोह और पुराने समकक्ष को नापसंद किया क्या पुराना एर्लंग के संस्करणों को उसी कोड के साथ समर्थन करने के लिए पूर्वप्रक्रमक मैक्रोज के साथ इन मतभेदों का परीक्षण करने का कोई तरीका है?

आप ERL_DRV_EXTENDED_MAJOR_VERSION और उपयोग कर सकते हैं ERL_DRV_EXTENDED_MINOR_VERSION मैक्रो मूल्यों, erl_driver.h में आपूर्ति, सुविधाओं के बारे में निर्णय लेने के लिए। जब भी ड्राइवर एपीआई बदलता है, ये मान उपयुक्त रूप से बढ़ते हैं। ये वेतन वृद्धि हमेशा Erlang / OTP रिलीज़ नोट में समझाया गया है।

उदाहरण के लिए, Erlang / OTP R15B कुछ एपीआई समारोह पैरामीटर प्रकार पूर्णांक से एक नए प्रकार ErlDrvSizeT करने के लिए बदल 64-बिट प्लेटफार्मों से बेहतर ढंग से सामना करने के लिए आप इस के लिए जांच कर सकते हैं और नीचे दिए गए कोड का उपयोग करते हुए पुराने पूर्व-आर 15 बी संस्करणों के लिए इसकी क्षतिपूर्ति कर सकते हैं:

  #if ERL_DRV_EXTENDED_MAJOR_VERSION & lt; 2 टाइपिंगफेस इंट एरलड्रॉव एसईजेटी; #endif   

यह typedef आप ErlDrvSizeT पुराने ड्राइवर संस्करणों के लिए भी प्रकार उपयोग करने के लिए अनुमति देता है।

इस लेखन के रूप में, Erlang / OTP संस्करण 17.3 और एर्लांग रनटाइम सिस्टम (एर्ट्स) का संस्करण 6.2 वर्तमान है। ERTS 6.2 के लिए, ERL_DRV_EXTENDED_MAJOR_VERSION और ERL_DRV_EXTENDED_MINOR_VERSION मान 3 और 1, क्रमशः है। इन संस्करण के मूल्यों में परिवर्तन।

Comments

Popular posts from this blog

java - ImportError: No module named py4j.java_gateway -

python - Receiving "KeyError" after decoding json result from url -

.net - Creating a new Queue Manager and Queue in Websphere MQ (using C#) -