Working-around-library-misfeatures.html 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <html lang="en">
  2. <head>
  3. <title>Working around library misfeatures - avram - a virtual machine code interpreter</title>
  4. <meta http-equiv="Content-Type" content="text/html">
  5. <meta name="description" content="avram - a virtual machine code interpreter">
  6. <meta name="generator" content="makeinfo 4.13">
  7. <link title="Top" rel="start" href="index.html#Top">
  8. <link rel="up" href="External-Library-Maintenance.html#External-Library-Maintenance" title="External Library Maintenance">
  9. <link rel="prev" href="Implementing-new-library-functions.html#Implementing-new-library-functions" title="Implementing new library functions">
  10. <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
  11. <meta http-equiv="Content-Style-Type" content="text/css">
  12. <style type="text/css"><!--
  13. pre.display { font-family:inherit }
  14. pre.format { font-family:inherit }
  15. pre.smalldisplay { font-family:inherit; font-size:smaller }
  16. pre.smallformat { font-family:inherit; font-size:smaller }
  17. pre.smallexample { font-size:smaller }
  18. pre.smalllisp { font-size:smaller }
  19. span.sc { font-variant:small-caps }
  20. span.roman { font-family:serif; font-weight:normal; }
  21. span.sansserif { font-family:sans-serif; font-weight:normal; }
  22. --></style>
  23. </head>
  24. <body>
  25. <div class="node">
  26. <a name="Working-around-library-misfeatures"></a>
  27. <p>
  28. Previous:&nbsp;<a rel="previous" accesskey="p" href="Implementing-new-library-functions.html#Implementing-new-library-functions">Implementing new library functions</a>,
  29. Up:&nbsp;<a rel="up" accesskey="u" href="External-Library-Maintenance.html#External-Library-Maintenance">External Library Maintenance</a>
  30. <hr>
  31. </div>
  32. <h4 class="subsection">3.9.3 Working around library misfeatures</h4>
  33. <p>As mentioned already (<a href="Implementing-new-library-functions.html#Implementing-new-library-functions">Implementing new library functions</a>), some
  34. common problems with external libraries that are worthwhile in other
  35. respects are that they may generate unwelcome console output while
  36. running, they may follow ill defined memory management policies, and
  37. they may handle exceptions just by crashing themselves along with the
  38. client module.
  39. <p>An accumulation of techniques for coping with these issues (short of
  40. modifying the library source) has been collected into the API and made
  41. available by way of the header file <samp><span class="file">mwrap.h</span></samp>. This section
  42. briefly documents how they might be put to use.
  43. <ul class="menu">
  44. <li><a accesskey="1" href="Inept-excess-verbiage.html#Inept-excess-verbiage">Inept excess verbiage</a>
  45. <li><a accesskey="2" href="Memory-leaks.html#Memory-leaks">Memory leaks</a>
  46. <li><a accesskey="3" href="Suicidal-exception-handling.html#Suicidal-exception-handling">Suicidal exception handling</a>
  47. </ul>
  48. </body></html>