[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gawk-diffs] [SCM] gawk branch, gawk_performance, updated. 15010185527cd
From: |
John Haque |
Subject: |
[gawk-diffs] [SCM] gawk branch, gawk_performance, updated. 15010185527cdfbbe1adedcb1551ba7a84156aa5 |
Date: |
Sun, 21 Aug 2011 11:08:55 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, gawk_performance has been updated
via 15010185527cdfbbe1adedcb1551ba7a84156aa5 (commit)
from 9f4b6c25cd7ef4532bb9ec2e53026bf10a44708c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=15010185527cdfbbe1adedcb1551ba7a84156aa5
commit 15010185527cdfbbe1adedcb1551ba7a84156aa5
Author: john haque <address@hidden>
Date: Sun Aug 21 05:54:38 2011 -0500
Add a test input file and code cleanups.
diff --git a/array.c b/array.c
index 9b12e97..4806686 100644
--- a/array.c
+++ b/array.c
@@ -51,7 +51,6 @@ static int num_atypes = 0;
* index 0 : initialization.
* index 1 : check if index is compatible.
* index 8 : array dump, memory and other statistics (do_adump).
- * Also used by debugger 'examine' command.
*/
diff --git a/awk.h b/awk.h
index dcf3e9a..985e1c0 100644
--- a/awk.h
+++ b/awk.h
@@ -414,13 +414,13 @@ typedef struct exp_node {
/* Node_hashnode, Node_param_list */
#define hnext sub.nodep.r.rptr
-#define hname vname
-#define hlength sub.nodep.reserved
+#define hname vname
+#define hlength sub.nodep.reserved
#define hcode sub.nodep.cnt
#define hvalue sub.nodep.x.extra
/* Node_param_list, Node_func */
-#define param_cnt sub.nodep.l.ll
+#define param_cnt sub.nodep.l.ll
/* Node_param_list */
#define param vname
@@ -433,13 +433,13 @@ typedef struct exp_node {
#define re_flags sub.nodep.reflags
#define re_text lnode
#define re_exp sub.nodep.x.extra
-#define re_cnt flags
+#define re_cnt flags
/* Node_val */
#define stptr sub.val.sp
#define stlen sub.val.slen
#define valref sub.val.sref
-#define stfmt sub.val.idx
+#define stfmt sub.val.idx
#define wstptr sub.val.wsp
#define wstlen sub.val.wslen
#define numbr sub.val.fltnum
@@ -1011,7 +1011,6 @@ extern int do_flags;
#define do_dump_vars (do_flags & DO_DUMP_VARS)
#define do_tidy_mem (do_flags & DO_TIDY_MEM)
#define do_sandbox (do_flags & DO_SANDBOX)
-#define do_annotate (do_flags & DO_ANNOTATE)
extern int do_optimize;
diff --git a/cint_array.c b/cint_array.c
index e7eb09f..72cd737 100644
--- a/cint_array.c
+++ b/cint_array.c
@@ -464,17 +464,19 @@ cint_dump(NODE *symbol, NODE *ndump)
NODE *tn, *xn = NULL;
int indent_level;
size_t i;
- long cint_size = 0, int_size = 0;
+ long cint_size = 0, xsize = 0;
AWKNUM kb = 0;
extern AWKNUM int_kilobytes(NODE *symbol);
+ extern AWKNUM str_kilobytes(NODE *symbol);
+ extern array_ptr int_array_func[];
indent_level = ndump->alevel;
if (symbol->xarray != NULL) {
xn = symbol->xarray;
- int_size = xn->table_size; /* FIXME -- can be int_array or
str_array */
+ xsize = xn->table_size;
}
- cint_size = symbol->table_size - int_size;
+ cint_size = symbol->table_size - xsize;
if ((symbol->flags & XARRAY) == 0)
fprintf(output_fp, "%s `%s'\n",
@@ -493,7 +495,7 @@ cint_dump(NODE *symbol, NODE *ndump)
fprintf(output_fp, "THRESHOLD: %ld\n", THRESHOLD);
indent(indent_level);
fprintf(output_fp, "table_size: %ld (total), %ld (cint), %ld (int +
str)\n",
- symbol->table_size, cint_size, int_size);
+ symbol->table_size, cint_size, xsize);
indent(indent_level);
fprintf(output_fp, "array_capacity: %lu\n", (unsigned long)
symbol->array_capacity);
indent(indent_level);
@@ -508,8 +510,13 @@ cint_dump(NODE *symbol, NODE *ndump)
}
kb += (INT32_BIT * sizeof(NODE *)) / 1024.0; /* symbol->nodes */
kb += (symbol->array_capacity * sizeof(NODE *)) / 1024.0; /*
value nodes in Node_array_leaf(s) */
- if (xn != NULL)
- kb += int_kilobytes(xn); /* FIXME: can be str_array or
int_array ? */
+ if (xn != NULL) {
+ if (xn->array_funcs == int_array_func)
+ kb += int_kilobytes(xn);
+ else
+ kb += str_kilobytes(xn);
+ }
+
indent(indent_level);
fprintf(output_fp, "memory: %.2g kB (total)\n", kb);
diff --git a/eval.c b/eval.c
index 8278371..916cad0 100644
--- a/eval.c
+++ b/eval.c
@@ -1904,32 +1904,32 @@ top:
break;
case Op_equal:
- r = make_number((AWKNUM) cmp_scalar() == 0);
+ r = make_number((AWKNUM) (cmp_scalar() == 0));
REPLACE(r);
break;
case Op_notequal:
- r = make_number((AWKNUM) cmp_scalar() != 0);
+ r = make_number((AWKNUM) (cmp_scalar() != 0));
REPLACE(r);
break;
case Op_less:
- r = make_number((AWKNUM) cmp_scalar() < 0);
+ r = make_number((AWKNUM) (cmp_scalar() < 0));
REPLACE(r);
break;
case Op_greater:
- r = make_number((AWKNUM) cmp_scalar() > 0);
+ r = make_number((AWKNUM) (cmp_scalar() > 0));
REPLACE(r);
break;
case Op_leq:
- r = make_number((AWKNUM) cmp_scalar() <= 0);
+ r = make_number((AWKNUM) (cmp_scalar() <= 0));
REPLACE(r);
break;
case Op_geq:
- r = make_number((AWKNUM) cmp_scalar() >= 0);
+ r = make_number((AWKNUM) (cmp_scalar() >= 0));
REPLACE(r);
break;
@@ -2219,11 +2219,6 @@ mod:
break;
case Op_arrayfor_init:
-#define idx_list sub.nodep.r.av
-#define num_idx sub.nodep.reflags
-#define cur_idx sub.nodep.l.ll
-#define for_array sub.nodep.rn
-
{
NODE **list = NULL;
NODE *array, *sort_str;
diff --git a/int_array.c b/int_array.c
index 913e154..3020fb2 100644
--- a/int_array.c
+++ b/int_array.c
@@ -691,7 +691,7 @@ int_hash(uint32_t k, uint32_t hsize)
return k;
}
-/* assoc_find --- locate symbol[subs] */
+/* int_find --- locate symbol[subs] */
static inline NODE **
int_find(NODE *symbol, long k, uint32_t hash1)
diff --git a/symbol.h b/symbol.h
deleted file mode 100644
index d5c2d85..0000000
--- a/symbol.h
+++ /dev/null
@@ -1,6 +0,0 @@
-extern NODE *install_symbol(char *name, NODETYPE type);
-extern NODE *lookup(const char *name);
-extern void install_params(NODE *paramtab, int pcount);
-extern void remove_params(NODE *paramtab, int pcount);
-extern NODE *remove_symbol(char *name);
-extern void destroy_symbol(char *name);
diff --git a/test/fnarray2.in b/test/fnarray2.in
new file mode 100644
index 0000000..587be6b
--- /dev/null
+++ b/test/fnarray2.in
@@ -0,0 +1 @@
+x
-----------------------------------------------------------------------
Summary of changes:
array.c | 1 -
awk.h | 11 +++++------
cint_array.c | 19 +++++++++++++------
eval.c | 17 ++++++-----------
int_array.c | 2 +-
symbol.h | 6 ------
test/fnarray2.in | 1 +
7 files changed, 26 insertions(+), 31 deletions(-)
delete mode 100644 symbol.h
create mode 100644 test/fnarray2.in
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gawk-diffs] [SCM] gawk branch, gawk_performance, updated. 15010185527cdfbbe1adedcb1551ba7a84156aa5,
John Haque <=