File: node196.html

package info (click to toggle)
babel 0.10.2-1
  • links: PTS
  • area: contrib
  • in suites: sarge
  • size: 43,932 kB
  • ctags: 29,707
  • sloc: java: 74,695; ansic: 73,142; cpp: 40,649; sh: 18,411; f90: 10,062; fortran: 6,727; python: 6,406; makefile: 3,866; xml: 118; perl: 48
file content (129 lines) | stat: -rw-r--r-- 5,477 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>SIDL Library Issues</TITLE>
<META NAME="description" CONTENT="SIDL Library Issues">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="users_guide.css">

<LINK REL="next" HREF="node197.html">
<LINK REL="previous" HREF="node193.html">
<LINK REL="up" HREF="node187.html">
<LINK REL="next" HREF="node197.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html3649"
  HREF="node197.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html3643"
  HREF="node187.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html3637"
  HREF="node195.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html3645"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html3647"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html3650"
  HREF="node197.html">SCL Files for Dynamic</A>
<B> Up:</B> <A NAME="tex2html3644"
  HREF="node187.html">Building Portable Polyglot Software</A>
<B> Previous:</B> <A NAME="tex2html3638"
  HREF="node195.html">Tracking Down Problems</A>
 &nbsp; <B>  <A NAME="tex2html3646"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html3648"
  HREF="node317.html">Index</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION04140000000000000000"></A><A NAME="s:sidl_lib"></A>
<BR>
SIDL Library Issues
</H1>

<P>
As mentioned in Section&nbsp;<A HREF="node100.html#s:sidl_runtime">5.5</A>, the Babel toolkit includes the
SIDL runtime library.  The library provides a base interface, class,
and exception as the foundation.  This is how Babel provides object-oriented
features to non-object-oriented languages.  In order to support the runtime
system and build the SIDL library, it also provides DLL and Loader classes.

<P>
<A NAME="11220"></A>Babel generated code depends critically on <TT>babel_config.h</TT> to correctly
define a lot of platform specific details.  One detail that changes too 
frequently to encode in <TT>babel_config.h</TT> is whether or not the software 
is being compiled is position independent code (PIC).  This detail is commonly 
added to the compilation instruction using the flags (e.g. <TT>-fPIC -DPIC</TT>
<A NAME="tex2html49"
  HREF="footnode.html#foot11281"><SUP><SPAN CLASS="arabic">15</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A>).  The first flag tells the compiler to generate position independent 
code.  The second defines the preprocessor macro <TT>PIC</TT>.  Looking now at 
<TT>babel_config.h</TT>, we see that either <TT>SIDL_DYNAMIC_LIBRARY</TT> or 
<TT>SIDL_STATIC_LIBRARY</TT> are defined depending on whether or not <TT>PIC</TT> 
is defined.

<P>
As described in Section&nbsp;<A HREF="node194.html#ss:pic">14.3.1</A>, Babel tends to focus on static libraries 
and dynamic linked libraries; not worrying much about <A NAME="11231"></A>shared libraries.  The 
main reason is that for every last drop of performance, people would want 
static libraries.  To support Java and Python (and the CCA model) dynamic 
loading is required.  There's no real benefit to doing shared libraries that 
can't be dynamically loaded, so in developing Babel, we focus on the other two 
linkage situations.

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html3649"
  HREF="node197.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html3643"
  HREF="node187.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html3637"
  HREF="node195.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html3645"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html3647"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html3650"
  HREF="node197.html">SCL Files for Dynamic</A>
<B> Up:</B> <A NAME="tex2html3644"
  HREF="node187.html">Building Portable Polyglot Software</A>
<B> Previous:</B> <A NAME="tex2html3638"
  HREF="node195.html">Tracking Down Problems</A>
 &nbsp; <B>  <A NAME="tex2html3646"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html3648"
  HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>