[svn:parrot] r49708 - in branches/gsoc_nci: config/gen/libffi src/pmc

plobsing at svn.parrot.org plobsing at svn.parrot.org
Thu Oct 28 02:36:44 UTC 2010


Author: plobsing
Date: Thu Oct 28 02:36:44 2010
New Revision: 49708
URL: https://trac.parrot.org/parrot/changeset/49708

Log:
kill dead code

Modified:
   branches/gsoc_nci/config/gen/libffi/nci-ffi.pmc.in
   branches/gsoc_nci/src/pmc/nci.pmc

Modified: branches/gsoc_nci/config/gen/libffi/nci-ffi.pmc.in
==============================================================================
--- branches/gsoc_nci/config/gen/libffi/nci-ffi.pmc.in	Thu Oct 28 02:06:18 2010	(r49707)
+++ branches/gsoc_nci/config/gen/libffi/nci-ffi.pmc.in	Thu Oct 28 02:36:44 2010	(r49708)
@@ -26,29 +26,25 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_IGNORABLE_RESULT
-static nci_thunk_t /*@alt void@*/
-build_func(PARROT_INTERP,
+static ffi_cif* build_libffi_func(PARROT_INTERP,
     ARGMOD(Parrot_NCI_attributes *nci_info))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*nci_info);
 
-static void pcc_params(PARROT_INTERP,
-    ARGIN(STRING *sig),
-    ARGMOD(Parrot_NCI_attributes *nci_info),
-    size_t sig_length)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*nci_info);
+static INTVAL parse_prefix(INTVAL c);
+static INTVAL parse_sig(PARROT_INTERP,
+    STRING *sig,
+    size_t sig_length,
+    Parrot_NCI_attributes *nci_info)
+        __attribute__nonnull__(1);
 
-#define ASSERT_ARGS_build_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(nci_info))
-#define ASSERT_ARGS_pcc_params __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_build_libffi_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(sig) \
     , PARROT_ASSERT_ARG(nci_info))
+#define ASSERT_ARGS_parse_prefix __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_parse_sig __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -132,8 +128,8 @@
 
 /*
 
-=item C<static INTVAL parse_sig(PARROT_INTERP, STRING *sig,
-                                size_t sig_length, Parrot_NCI_attributes *nci_info)>
+=item C<static INTVAL parse_sig(PARROT_INTERP, STRING *sig, size_t sig_length,
+Parrot_NCI_attributes *nci_info)>
 
 Parse a full signature. All signatures should contain a return type and a list of
 arguments. "vv" Would be the shortest "void fn(void)" signature you can legally make.
@@ -665,104 +661,11 @@
     return length;
 }
 
-static void
-pcc_params(PARROT_INTERP, ARGIN(STRING *sig), ARGMOD(Parrot_NCI_attributes *nci_info),
-                size_t sig_length)
-{
-    ASSERT_ARGS(pcc_params)
-
-    /* NCI and PCC have a 1 to 1 mapping except an
-       extra char in PCC for invocant and slurpy */
-    size_t       buf_length = sig_length + 2 + 1;
-
-    /* avoid malloc churn on common signatures */
-    char         static_buf[16];
-    char * const sig_buf = sig_length <= sizeof static_buf ?
-                            static_buf :
-                            (char *)mem_sys_allocate(buf_length);
-
-    size_t j = 0;
-    size_t i;
-
-    for (i = 0; i < sig_length; ++i) {
-        const INTVAL c = Parrot_str_indexed(interp, sig, i);
-
-        PARROT_ASSERT(j < buf_length - 1);
-
-        switch (c) {
-          case (INTVAL)'0':    /* null ptr or such - doesn't consume a reg */
-            break;
-          case (INTVAL)'f':
-          case (INTVAL)'N':
-          case (INTVAL)'d':
-            sig_buf[j++] = 'N';
-            break;
-          case (INTVAL)'I':   /* INTVAL */
-          case (INTVAL)'l':   /* long */
-          case (INTVAL)'i':   /* int */
-          case (INTVAL)'s':   /* short */
-          case (INTVAL)'c':   /* char */
-            sig_buf[j++] = 'I';
-            break;
-          case (INTVAL)'S':
-          case (INTVAL)'t':   /* string, pass a cstring */
-            sig_buf[j++] = 'S';
-            break;
-          case (INTVAL)'J':   /* interpreter */
-            break;
-          case (INTVAL)'p':   /* push pmc->data */
-          case (INTVAL)'P':   /* push PMC * */
-          case (INTVAL)'V':   /* push PMC * */
-          case (INTVAL)'2':
-          case (INTVAL)'3':
-          case (INTVAL)'4':
-            sig_buf[j++] = 'P';
-            break;
-          case (INTVAL)'v':
-            /* null return */
-            if (j == 0)
-                sig_buf[j++] = '\0';
-            break;
-          case (INTVAL)'O':   /* push PMC * invocant */
-            sig_buf[j++] = 'P';
-            sig_buf[j++] = 'i';
-            break;
-          case (INTVAL)'@':   /* push PMC * slurpy */
-            sig_buf[j++] = 'P';
-            sig_buf[j++] = 's';
-            break;
-          case (INTVAL)'b': /* buffer (void*) pass Buffer_bufstart(SReg) */
-          case (INTVAL)'B': /* buffer (void**) pass &Buffer_bufstart(SReg) */
-            sig_buf[j++] = 'S';
-            break;
-          default:
-            Parrot_ex_throw_from_c_args(interp, NULL,
-                    EXCEPTION_JIT_ERROR,
-                    "Unknown param Signature %c\n", (char)c);
-            break;
-        }
-    }
-
-    PARROT_ASSERT(j < buf_length);
-    sig_buf[j++] = '\0';
-
-
-    nci_info->pcc_return_signature =
-        Parrot_str_new(interp, sig_buf, 1);
-
-    nci_info->pcc_params_signature = j ?
-        Parrot_str_new(interp, sig_buf + 1, j - 1) :
-        CONST_STRING(interp, "");
-
-    if (sig_buf != static_buf)
-        mem_sys_free(sig_buf);
-}
-
 PARROT_IGNORABLE_RESULT
 static ffi_cif*
 build_libffi_func(PARROT_INTERP, ARGMOD(Parrot_NCI_attributes *nci_info))
 {
-    ASSERT_ARGS(build_func)
+    ASSERT_ARGS(build_libffi_func)
 
     STRING * const key      = nci_info->signature;
     const size_t key_length = Parrot_str_byte_length(interp, key);
@@ -772,30 +675,6 @@
     return (ffi_cif*)nci_info->cif;
 }
 
-/* actually build the NCI thunk */
-
-PARROT_IGNORABLE_RESULT
-static nci_thunk_t
-build_func(PARROT_INTERP, ARGMOD(Parrot_NCI_attributes *nci_info))
-{
-    ASSERT_ARGS(build_func)
-
-    STRING * const key      = nci_info->signature;
-    const size_t key_length = Parrot_str_byte_length(interp, key);
-
-    pcc_params(interp, key, nci_info, key_length);
-
-    /* Arity is length of that string minus one (the return type). */
-    nci_info->arity       = key_length - 1;
-
-    /* Build call function. */
-    nci_info->fb_info     = build_call_func(interp, key);
-    nci_info->func        = F2DPTR(VTABLE_get_pointer(interp, nci_info->fb_info));
-
-    return (nci_thunk_t)nci_info->func;
-}
-
-
 pmclass NCI auto_attrs provides invokable {
     /* NCI thunk handling attributes */
     /* NCI thunk handling attributes */
@@ -1398,10 +1277,8 @@
 */
 
     VTABLE INTVAL get_integer() {
-        Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF);
-        if (!nci_info->func)
-            build_func(INTERP, nci_info);
-        return (INTVAL)nci_info->func;
+        // XXX: TODO
+        return 0;
     }
 
 /*

Modified: branches/gsoc_nci/src/pmc/nci.pmc
==============================================================================
--- branches/gsoc_nci/src/pmc/nci.pmc	Thu Oct 28 02:06:18 2010	(r49707)
+++ branches/gsoc_nci/src/pmc/nci.pmc	Thu Oct 28 02:36:44 2010	(r49708)
@@ -26,29 +26,25 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_IGNORABLE_RESULT
-static nci_thunk_t /*@alt void@*/
-build_func(PARROT_INTERP,
+static ffi_cif* build_libffi_func(PARROT_INTERP,
     ARGMOD(Parrot_NCI_attributes *nci_info))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*nci_info);
 
-static void pcc_params(PARROT_INTERP,
-    ARGIN(STRING *sig),
-    ARGMOD(Parrot_NCI_attributes *nci_info),
-    size_t sig_length)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*nci_info);
+static INTVAL parse_prefix(INTVAL c);
+static INTVAL parse_sig(PARROT_INTERP,
+    STRING *sig,
+    size_t sig_length,
+    Parrot_NCI_attributes *nci_info)
+        __attribute__nonnull__(1);
 
-#define ASSERT_ARGS_build_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(nci_info))
-#define ASSERT_ARGS_pcc_params __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_build_libffi_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(sig) \
     , PARROT_ASSERT_ARG(nci_info))
+#define ASSERT_ARGS_parse_prefix __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_parse_sig __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -132,8 +128,8 @@
 
 /*
 
-=item C<static INTVAL parse_sig(PARROT_INTERP, STRING *sig,
-                                size_t sig_length, Parrot_NCI_attributes *nci_info)>
+=item C<static INTVAL parse_sig(PARROT_INTERP, STRING *sig, size_t sig_length,
+Parrot_NCI_attributes *nci_info)>
 
 Parse a full signature. All signatures should contain a return type and a list of
 arguments. "vv" Would be the shortest "void fn(void)" signature you can legally make.
@@ -665,104 +661,11 @@
     return length;
 }
 
-static void
-pcc_params(PARROT_INTERP, ARGIN(STRING *sig), ARGMOD(Parrot_NCI_attributes *nci_info),
-                size_t sig_length)
-{
-    ASSERT_ARGS(pcc_params)
-
-    /* NCI and PCC have a 1 to 1 mapping except an
-       extra char in PCC for invocant and slurpy */
-    size_t       buf_length = sig_length + 2 + 1;
-
-    /* avoid malloc churn on common signatures */
-    char         static_buf[16];
-    char * const sig_buf = sig_length <= sizeof static_buf ?
-                            static_buf :
-                            (char *)mem_sys_allocate(buf_length);
-
-    size_t j = 0;
-    size_t i;
-
-    for (i = 0; i < sig_length; ++i) {
-        const INTVAL c = Parrot_str_indexed(interp, sig, i);
-
-        PARROT_ASSERT(j < buf_length - 1);
-
-        switch (c) {
-          case (INTVAL)'0':    /* null ptr or such - doesn't consume a reg */
-            break;
-          case (INTVAL)'f':
-          case (INTVAL)'N':
-          case (INTVAL)'d':
-            sig_buf[j++] = 'N';
-            break;
-          case (INTVAL)'I':   /* INTVAL */
-          case (INTVAL)'l':   /* long */
-          case (INTVAL)'i':   /* int */
-          case (INTVAL)'s':   /* short */
-          case (INTVAL)'c':   /* char */
-            sig_buf[j++] = 'I';
-            break;
-          case (INTVAL)'S':
-          case (INTVAL)'t':   /* string, pass a cstring */
-            sig_buf[j++] = 'S';
-            break;
-          case (INTVAL)'J':   /* interpreter */
-            break;
-          case (INTVAL)'p':   /* push pmc->data */
-          case (INTVAL)'P':   /* push PMC * */
-          case (INTVAL)'V':   /* push PMC * */
-          case (INTVAL)'2':
-          case (INTVAL)'3':
-          case (INTVAL)'4':
-            sig_buf[j++] = 'P';
-            break;
-          case (INTVAL)'v':
-            /* null return */
-            if (j == 0)
-                sig_buf[j++] = '\0';
-            break;
-          case (INTVAL)'O':   /* push PMC * invocant */
-            sig_buf[j++] = 'P';
-            sig_buf[j++] = 'i';
-            break;
-          case (INTVAL)'@':   /* push PMC * slurpy */
-            sig_buf[j++] = 'P';
-            sig_buf[j++] = 's';
-            break;
-          case (INTVAL)'b': /* buffer (void*) pass Buffer_bufstart(SReg) */
-          case (INTVAL)'B': /* buffer (void**) pass &Buffer_bufstart(SReg) */
-            sig_buf[j++] = 'S';
-            break;
-          default:
-            Parrot_ex_throw_from_c_args(interp, NULL,
-                    EXCEPTION_JIT_ERROR,
-                    "Unknown param Signature %c\n", (char)c);
-            break;
-        }
-    }
-
-    PARROT_ASSERT(j < buf_length);
-    sig_buf[j++] = '\0';
-
-
-    nci_info->pcc_return_signature =
-        Parrot_str_new(interp, sig_buf, 1);
-
-    nci_info->pcc_params_signature = j ?
-        Parrot_str_new(interp, sig_buf + 1, j - 1) :
-        CONST_STRING(interp, "");
-
-    if (sig_buf != static_buf)
-        mem_sys_free(sig_buf);
-}
-
 PARROT_IGNORABLE_RESULT
 static ffi_cif*
 build_libffi_func(PARROT_INTERP, ARGMOD(Parrot_NCI_attributes *nci_info))
 {
-    ASSERT_ARGS(build_func)
+    ASSERT_ARGS(build_libffi_func)
 
     STRING * const key      = nci_info->signature;
     const size_t key_length = Parrot_str_byte_length(interp, key);
@@ -772,30 +675,6 @@
     return (ffi_cif*)nci_info->cif;
 }
 
-/* actually build the NCI thunk */
-
-PARROT_IGNORABLE_RESULT
-static nci_thunk_t
-build_func(PARROT_INTERP, ARGMOD(Parrot_NCI_attributes *nci_info))
-{
-    ASSERT_ARGS(build_func)
-
-    STRING * const key      = nci_info->signature;
-    const size_t key_length = Parrot_str_byte_length(interp, key);
-
-    pcc_params(interp, key, nci_info, key_length);
-
-    /* Arity is length of that string minus one (the return type). */
-    nci_info->arity       = key_length - 1;
-
-    /* Build call function. */
-    nci_info->fb_info     = build_call_func(interp, key);
-    nci_info->func        = F2DPTR(VTABLE_get_pointer(interp, nci_info->fb_info));
-
-    return (nci_thunk_t)nci_info->func;
-}
-
-
 pmclass NCI auto_attrs provides invokable {
     /* NCI thunk handling attributes */
     /* NCI thunk handling attributes */
@@ -1398,10 +1277,8 @@
 */
 
     VTABLE INTVAL get_integer() {
-        Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF);
-        if (!nci_info->func)
-            build_func(INTERP, nci_info);
-        return (INTVAL)nci_info->func;
+        // XXX: TODO
+        return 0;
     }
 
 /*


More information about the parrot-commits mailing list