Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 365 lines (254 sloc) 9.527 kb
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
1 /*
48311a5 @petdance teeny consting
petdance authored
2 Copyright (C) 2007-2009, Parrot Foundation.
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
3 $Id$
4
5 =head1 NAME
6
7 src/pmc/exporter.pmc - Export globals from one namespace to another
8
abc4db2 @particle [pmc]: exporter api changes
particle authored
9 =head1 SYNOPSIS
10
11 You can use Exporter in PIR to import subs from a library. At its simplest:
12
13 .sub main :main
14 load_bytecode 'Test/More.pir'
f6d5c3e @chromatic [PMC] More minor cleanups and reformattings.
chromatic authored
15
bdc07b9 @chromatic [PMC] Add Exporter documentation into POD (Pabellon, RT #44487).
chromatic authored
16 .local pmc exporter, src_ns, dest_ns
17 src_ns = get_namespace [ 'Test'; 'More' ]
abc4db2 @particle [pmc]: exporter api changes
particle authored
18 exporter = new 'Exporter'
f6d5c3e @chromatic [PMC] More minor cleanups and reformattings.
chromatic authored
19
bdc07b9 @chromatic [PMC] Add Exporter documentation into POD (Pabellon, RT #44487).
chromatic authored
20 exporter.'import'( src_ns :named('source') 'plan ok' :named('globals') )
abc4db2 @particle [pmc]: exporter api changes
particle authored
21 plan(1)
22 ok(1, 'exporter has imported the requested functions')
23 .end
24
bdc07b9 @chromatic [PMC] Add Exporter documentation into POD (Pabellon, RT #44487).
chromatic authored
25 You can also specify the exporter attributes before making the import call,
26 for example to import into the alternate namespace 'Foo' you could use the
27 following code:
28
29 src_ns = get_namespace [ 'Test'; 'More' ]
30 dest_ns = get_namespace [ 'Foo' ]
31 exporter.'source'(src_ns)
32 exporter.'destination'(dest_ns)
33 exporter.'import'('plan ok' :named('globals'))
34
35 You can even import subroutines under different names if globals is a hash:
36
37 globals = new 'Hash'
38 globals['plan'] = 'steps'
39 globals['ok'] = 'passed'
40 exporter.'import'(globals :named('globals'))
41 steps(1)
42 passed(1)
43
abc4db2 @particle [pmc]: exporter api changes
particle authored
44
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
45 =head1 DESCRIPTION
46
b29ad29 @particle [pmc] Exporter updates
particle authored
47 Exports globals from one namespace to another. Exporter always uses
6498378 @particle [pmc]: update Exporter documentation based on draft guidelines
particle authored
48 the typed namespace interface, as outlined in
49 F<docs/pdds/pdd21_namespaces.pod>.
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
50
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
51 Exporter is not derived from any other PMC, and does not provide any
1df1b75 @coke Eliminate 'vtable method'. It's a vtable, or a vtable function.
coke authored
52 vtable interface--its interface consists solely of methods, not
53 vtable functions.
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
54
55 =head2 Structure
56
57 The Exporter PMC structure (C<Parrot_Exporter>) consists of three items:
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
58
59 =over 4
60
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
61 =item C<ns_src>
62
63 The source namespace -- a NameSpace PMC.
5b556ee @particle [pmc]: Exporter is complete
particle authored
64 A Null PMC is allocated during initialization.
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
65
66 =item C<ns_dest>
67
68 The destination namespace -- a NameSpace PMC.
4b47d4c @particle [pmc]: Exporter
particle authored
69 A PMC representing the current namespace is allocated upon initialization.
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
70
71 =item C<globals>
72
bdc07b9 @chromatic [PMC] Add Exporter documentation into POD (Pabellon, RT #44487).
chromatic authored
73 The globals to export -- a PMC that implements a hash, an array, a String
74 containing a list of space-separated subroutine names or Null.
75
b29ad29 @particle [pmc] Exporter updates
particle authored
76 A Null PMC is allocated during initialization.
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
77
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
78 =cut
79
80 */
81
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
82 /*
83
84 =back
85
86 =head2 Functions
87
88 =over 4
89
90 =cut
91
92 */
93
6bdd5f9 @petdance headerizer now runs on PMC files
petdance authored
94 /* HEADERIZER HFILE: none */
95 /* HEADERIZER BEGIN: static */
96 /* HEADERIZER END: static */
97
6b81760 @Whiteknight [pmc] we don't need need_ext anymore, so BALEETED
Whiteknight authored
98 pmclass Exporter auto_attrs {
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
99
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
100 ATTR PMC *ns_src;
101 ATTR PMC *ns_dest;
102 ATTR PMC *globals;
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
103
104 /*
105
106 =item C<void init()>
107
b54e3d5 @particle [pmc]: documentation updates
particle authored
108 Initializes an Exporter PMC.
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
109
110 =cut
111
112 */
113
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
114 VTABLE void init() {
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
115 /* Set up the object. */
ac99f44 @NotFound [cage] full use of SET/GET ATTR in exporter PMC
NotFound authored
116 SET_ATTR_ns_src(INTERP, SELF, PMCNULL);
540d4c3 @bacek Merge context_pmc3 branch into trunk.
bacek authored
117 SET_ATTR_ns_dest(INTERP, SELF, Parrot_pcc_get_namespace(INTERP, CURRENT_CONTEXT(INTERP)));
ac99f44 @NotFound [cage] full use of SET/GET ATTR in exporter PMC
NotFound authored
118 SET_ATTR_globals(INTERP, SELF, PMCNULL);
366638e @particle [pmc]: set pmc flags after anchoring to prevent accidental collection…
particle authored
119
1997c49 @cotto [gc] remove/replace DOD references in core PMCs
cotto authored
120 /* Set flags for custom GC mark and destroy. */
366638e @particle [pmc]: set pmc flags after anchoring to prevent accidental collection…
particle authored
121 PObj_custom_mark_SET(SELF);
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
122 }
123
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
124 /*
125
126 =item C<void mark()>
127
128 Mark referenced strings and PMCs in the structure as live.
129
130 =cut
131
132 */
133
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
134 VTABLE void mark() {
ac99f44 @NotFound [cage] full use of SET/GET ATTR in exporter PMC
NotFound authored
135 PMC *ns_src;
136 PMC *ns_dest;
137 PMC *globals;
e8c1290 @NotFound [cage] codingstd hard tabs, mikehh++
NotFound authored
138 GET_ATTR_ns_src(INTERP, SELF, ns_src);
139 GET_ATTR_ns_dest(INTERP, SELF, ns_dest);
140 GET_ATTR_globals(INTERP, SELF, globals);
ac99f44 @NotFound [cage] full use of SET/GET ATTR in exporter PMC
NotFound authored
141
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
142 Parrot_gc_mark_PMC_alive(INTERP, ns_src);
143 Parrot_gc_mark_PMC_alive(INTERP, ns_dest);
144 Parrot_gc_mark_PMC_alive(INTERP, globals);
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
145 }
146
147
148 /*
149
150 =back
151
152 =head2 Methods
153
154 =over 4
155
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
156 =item C<METHOD
f6d5c3e @chromatic [PMC] More minor cleanups and reformattings.
chromatic authored
157 source(PMC *src :optional, int got_src :opt_flag)>
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
158
159 Accessor for the source NameSpace object (C<ns_src>.)
160 Sets the value if C<src> is passed, otherwise returns the value.
161 Throws an exception if a non-NameSpace PMC is passed.
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
162
163 =cut
164
165 */
166
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
167 METHOD source(PMC *src :optional, int got_src :opt_flag) {
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
168 if (got_src) {
2255840 @allisonrandal [pdd17pmc] Merging the pdd25cx branch into trunk for r26555 to r29949.
allisonrandal authored
169 if (src->vtable->base_type != enum_class_NameSpace)
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
170 Parrot_ex_throw_from_c_args(INTERP, NULL, 0,
ac3ceb6 @particle [pmc] finish Exporter's 'source' and 'destination' methods
particle authored
171 "source must be a NameSpace PMC");
2255840 @allisonrandal [pdd17pmc] Merging the pdd25cx branch into trunk for r26555 to r29949.
allisonrandal authored
172
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
173 SET_ATTR_ns_src(INTERP, SELF, src);
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
174 }
175 else {
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
176 PMC *tmp_ns_src;
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
177 GET_ATTR_ns_src(INTERP, SELF, tmp_ns_src);
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
178 RETURN(PMC *tmp_ns_src);
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
179 }
180 }
181
182
183 /*
184
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
185 =item C<METHOD
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
186 destination(PMC *dest :optional, int got_dest :opt_flag)>
9318910 @particle [pmc] Exporter updates
particle authored
187
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
188 Accessor for the destination NameSpace object (C<ns_dest>.)
189 Sets the value if C<dest> is passed, otherwise returns the value.
190 Throws an exception if a non-NameSpace PMC is passed.
9318910 @particle [pmc] Exporter updates
particle authored
191
192 =cut
193
194 */
195
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
196 METHOD destination(PMC *dest :optional, int got_dest :opt_flag) {
9318910 @particle [pmc] Exporter updates
particle authored
197 if (got_dest) {
2255840 @allisonrandal [pdd17pmc] Merging the pdd25cx branch into trunk for r26555 to r29949.
allisonrandal authored
198
199 if (dest->vtable->base_type != enum_class_NameSpace)
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
200 Parrot_ex_throw_from_c_args(INTERP, NULL, 0,
2255840 @allisonrandal [pdd17pmc] Merging the pdd25cx branch into trunk for r26555 to r29949.
allisonrandal authored
201 "destination must be a NameSpace PMC");
202
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
203 SET_ATTR_ns_dest(INTERP, SELF, dest);
9318910 @particle [pmc] Exporter updates
particle authored
204 }
205 else {
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
206 PMC *tmp_ns_dest;
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
207 GET_ATTR_ns_dest(INTERP, SELF, tmp_ns_dest);
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
208 RETURN(PMC *tmp_ns_dest);
9318910 @particle [pmc] Exporter updates
particle authored
209 }
210 }
211
212
213 /*
214
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
215 =item C<METHOD
b29ad29 @particle [pmc] Exporter updates
particle authored
216 globals(PMC *glb :optional, int got_glb :opt_flag)>
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
217
abc4db2 @particle [pmc]: exporter api changes
particle authored
218 Accessor for the globals to export (C<globals>.)
219 Sets the value if C<glb> is passed, otherwise returns the value.
220 If C<glb> is a String, it is split on ascii whitespace, and each array member
221 is added as a hash key.
222 If C<glb> implements the array interface, each member is added as a hash key.
223 if C<glb> implements the hash interface, it is assigned to Exporter's
224 C<globals> attribute.
225 Throws an exception if an unknown PMC type is passed.
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
226
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
227 =cut
228
229 */
230
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
231 METHOD globals(PMC *glb :optional, int got_glb :opt_flag) {
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
232 STRING * const s_str = CONST_STRING(INTERP, "String");
233 STRING * const s_arr = CONST_STRING(INTERP, "array");
234 STRING * const s_hash = CONST_STRING(INTERP, "hash");
235 STRING * const s_space = CONST_STRING(INTERP, " ");
9318910 @particle [pmc] Exporter updates
particle authored
236
b29ad29 @particle [pmc] Exporter updates
particle authored
237 if (got_glb) {
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
238 STRING * const s_empty = CONST_STRING(INTERP, "");
239 PMC *temp_globals = Parrot_pmc_new(INTERP, enum_class_Hash);
abc4db2 @particle [pmc]: exporter api changes
particle authored
240
241 if (PMC_IS_NULL(glb)) {
242 temp_globals = PMCNULL;
243 }
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
244 else if (VTABLE_isa(INTERP, glb, s_str) || (VTABLE_does(INTERP, glb, s_arr))) {
abc4db2 @particle [pmc]: exporter api changes
particle authored
245 PMC *glb_array;
246 INTVAL n, i;
247
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
248 if (VTABLE_isa(INTERP, glb, s_str))
249 glb_array = Parrot_str_split(INTERP, s_space,
250 VTABLE_get_string(INTERP, glb));
abc4db2 @particle [pmc]: exporter api changes
particle authored
251 else
252 glb_array = glb;
253
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
254 n = VTABLE_elements(INTERP, glb_array);
abc4db2 @particle [pmc]: exporter api changes
particle authored
255
256 if (n == 0)
257 temp_globals = PMCNULL;
258
40e294a manual optimization for old compiler
Jimmy Zhuo authored
259 for (i = 0; i < n; ++i) {
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
260 STRING * const item = VTABLE_get_string_keyed_int(INTERP, glb_array, i);
261 VTABLE_set_string_keyed_str(INTERP, temp_globals, item, s_empty);
abc4db2 @particle [pmc]: exporter api changes
particle authored
262 }
263 }
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
264 else if (VTABLE_does(INTERP, glb, s_hash)) {
265 if (VTABLE_elements(INTERP, glb) == 0)
abc4db2 @particle [pmc]: exporter api changes
particle authored
266 temp_globals = PMCNULL;
267 else
268 temp_globals = glb;
269 }
270 else {
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
271 Parrot_ex_throw_from_c_args(INTERP, NULL, 0,
abc4db2 @particle [pmc]: exporter api changes
particle authored
272 "Invalid type %d in globals()", glb->vtable->base_type);
273 }
274
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
275 SET_ATTR_globals(INTERP, SELF, temp_globals);
b29ad29 @particle [pmc] Exporter updates
particle authored
276 }
277 else {
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
278 PMC *tmp_globals;
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
279 GET_ATTR_globals(INTERP, SELF, tmp_globals);
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
280 if (PMC_IS_NULL(tmp_globals)) {
281 RETURN(PMC *PMCNULL);
b29ad29 @particle [pmc] Exporter updates
particle authored
282 }
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
283 else
284 RETURN(PMC *tmp_globals);
9318910 @particle [pmc] Exporter updates
particle authored
285 }
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
286 }
287
288
289 /*
290
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
291 =item C<METHOD
37922cf @chromatic [lib/PMC] Modified :named parameter syntax in METHODs to match PDD03,…
chromatic authored
292 import(PMC *dest :optional :named("destination"), int got_dest :opt_flag,
293 PMC *src :optional :named("source"), int got_src :opt_flag,
294 PMC *globals :optional :named("globals"), int got_globals :opt_flag)>
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
295
296 Import C<globals> from the C<src> namespace to the C<dest> namespace.
abc4db2 @particle [pmc]: exporter api changes
particle authored
297 If C<src>, C<dest>, or C<globals> are passed, they override the current value.
b29ad29 @particle [pmc] Exporter updates
particle authored
298 C<import> follows the semantics of the C<export_to> method
299 of the C<NameSpace> PMC. in particular, if a NULL value is passed
300 for C<globals>, the default set of items will be imported.
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
301 Throws an exception upon error.
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
302
303 =cut
304
305 */
306
37922cf @chromatic [lib/PMC] Modified :named parameter syntax in METHODs to match PDD03,…
chromatic authored
307 METHOD import(PMC *dest :optional :named("destination"),
308 int got_dest :opt_flag,
309 PMC *src :optional :named("source"),
310 int got_src :opt_flag,
311 PMC *globals :optional :named("globals"),
312 int got_globals :opt_flag) {
2f8fa82 @particle [pmc]: Exporter beginning 'import' method
particle authored
313
b29ad29 @particle [pmc] Exporter updates
particle authored
314 PMC *ns_src, *ns_dest, *ns_globals;
2f8fa82 @particle [pmc]: Exporter beginning 'import' method
particle authored
315
316 if (got_src)
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
317 PCCINVOKE(INTERP, SELF, "source", PMC *src);
f6d5c3e @chromatic [PMC] More minor cleanups and reformattings.
chromatic authored
318
2f8fa82 @particle [pmc]: Exporter beginning 'import' method
particle authored
319 if (got_dest)
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
320 PCCINVOKE(INTERP, SELF, "destination", PMC *dest);
f6d5c3e @chromatic [PMC] More minor cleanups and reformattings.
chromatic authored
321
2f8fa82 @particle [pmc]: Exporter beginning 'import' method
particle authored
322 if (got_globals)
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
323 PCCINVOKE(INTERP, SELF, "globals", PMC *globals);
9318910 @particle [pmc] Exporter updates
particle authored
324
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
325 GET_ATTR_ns_src(INTERP, SELF, ns_src);
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
326 if (PMC_IS_NULL(ns_src))
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
327 Parrot_ex_throw_from_c_args(INTERP, NULL, 0, "source namespace not set");
f6d5c3e @chromatic [PMC] More minor cleanups and reformattings.
chromatic authored
328
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
329 GET_ATTR_ns_dest(INTERP, SELF, ns_dest);
59661f1 @allisonrandal [pdd17pmc] Merging the pdd17pmc branch into trunk (r24435 to r26307).
allisonrandal authored
330 if (PMC_IS_NULL(ns_dest))
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
331 Parrot_ex_throw_from_c_args(INTERP, NULL, 0,
2255840 @allisonrandal [pdd17pmc] Merging the pdd25cx branch into trunk for r26555 to r29949.
allisonrandal authored
332 "destination namespace not set");
2f8fa82 @particle [pmc]: Exporter beginning 'import' method
particle authored
333
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
334 GET_ATTR_globals(INTERP, SELF, ns_globals);
b29ad29 @particle [pmc] Exporter updates
particle authored
335
26914e1 changed interp in pmc class to INTERP for unification
Jimmy Zhuo authored
336 PCCINVOKE(INTERP, ns_src, "export_to", PMC *ns_dest, PMC *ns_globals);
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
337 }
338
339
b29ad29 @particle [pmc] Exporter updates
particle authored
340 } /* end pmclass Exporter */
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
341
342 /*
343
344 =back
345
6498378 @particle [pmc]: update Exporter documentation based on draft guidelines
particle authored
346 =head1 STABILITY
347
348 Unstable. This PMC is under active development; major portions of the
349 interface have not yet been completed.
350
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
351 =head1 SEE ALSO
352
eae5b2f @particle [pmc]: documentation overhaul for Exporter
particle authored
353 F<docs/pdds/pdd17_basic_types.pod>, F<docs/pdds/pdd21_namespaces.pod>.
9255c82 @paultcochrane [src] Set svn:keywords and svn:eol-style properties appropriately
paultcochrane authored
354
355 =cut
356
357 */
358
359 /*
360 * Local variables:
361 * c-file-style: "parrot"
362 * End:
363 * vim: expandtab shiftwidth=4:
364 */
Something went wrong with that request. Please try again.