Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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