[t][TT #763] Fix is_deeply() on hashes with undefs and add tests
[parrot.git] / include / parrot / dynext.h
blob67bda9e2b2d2b2d7b242dcdcab807e5b51212696
1 /*
2 * Copyright (C) 2003-2007, Parrot Foundation.
3 */
5 /* dynext.h
7 * $Id$
9 * Parrot dynamic extensions
12 #ifndef PARROT_DYNEXT_H_GUARD
13 #define PARROT_DYNEXT_H_GUARD
15 /* HEADERIZER BEGIN: src/dynext.c */
16 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
18 PARROT_EXPORT
19 PARROT_WARN_UNUSED_RESULT
20 PARROT_CANNOT_RETURN_NULL
21 PMC * Parrot_clone_lib_into(
22 ARGMOD(Interp *d),
23 ARGMOD(Interp *s),
24 ARGIN(PMC *lib_pmc))
25 __attribute__nonnull__(1)
26 __attribute__nonnull__(2)
27 __attribute__nonnull__(3)
28 FUNC_MODIFIES(*d)
29 FUNC_MODIFIES(*s);
31 PARROT_EXPORT
32 PARROT_CANNOT_RETURN_NULL
33 PMC * Parrot_init_lib(PARROT_INTERP,
34 ARGIN_NULLOK(PMC *(*load_func)(PARROT_INTERP)),
35 ARGIN_NULLOK(void (*init_func)(PARROT_INTERP,
36 ARGIN_NULLOK(PMC *))))
37 __attribute__nonnull__(1);
39 PARROT_EXPORT
40 PARROT_WARN_UNUSED_RESULT
41 PARROT_CANNOT_RETURN_NULL
42 PMC * Parrot_load_lib(PARROT_INTERP,
43 ARGIN_NULLOK(STRING *lib),
44 SHIM(PMC *initializer))
45 __attribute__nonnull__(1);
47 #define ASSERT_ARGS_Parrot_clone_lib_into __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
48 PARROT_ASSERT_ARG(d) \
49 , PARROT_ASSERT_ARG(s) \
50 , PARROT_ASSERT_ARG(lib_pmc))
51 #define ASSERT_ARGS_Parrot_init_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
52 PARROT_ASSERT_ARG(interp))
53 #define ASSERT_ARGS_Parrot_load_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
54 PARROT_ASSERT_ARG(interp))
55 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
56 /* HEADERIZER END: src/dynext.c */
58 #endif /* PARROT_DYNEXT_H_GUARD */
61 * Local variables:
62 * c-file-style: "parrot"
63 * End:
64 * vim: expandtab shiftwidth=4: