[med-svn] [fis-gtm] 01/01: Imported Upstream version 6.2-002A
Amul Shah
tuskentower-guest at moszumanska.debian.org
Sat Jun 27 11:43:10 UTC 2015
This is an automated email from the git hooks/post-receive script.
tuskentower-guest pushed a commit to annotated tag upstream/6.2-002A
in repository fis-gtm.
commit a63c745931c5a17208bb828cc16e086c3e7141b2
Author: Amul Shah <Amul.Shah at fisglobal.com>
Date: Fri Jun 26 21:05:46 2015 -0400
Imported Upstream version 6.2-002A
---
CMakeLists.txt | 2 +-
README | 20 +++++++-------
sr_i386/gtm_threadgbl_deftypes.h | 2 +-
sr_linux/release_name.h | 10 +++----
sr_port/actuallist.c | 5 ++--
sr_port/compiler.h | 6 ++---
sr_port/eval_expr.c | 5 ++--
sr_port/expritem.c | 3 +--
sr_port/f_name.c | 5 ++--
sr_port/f_select.c | 55 +++++++++++++++++---------------------
sr_port/gvn.c | 17 +++++-------
sr_port/indirection.c | 1 -
sr_x86_64/gtm_threadgbl_deftypes.h | 2 +-
13 files changed, 63 insertions(+), 70 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6b1625e..4a7c074 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,7 @@ foreach(lang ${languages})
endforeach()
# Defaults
-set(version V6.2-002)
+set(version V6.2-002A)
if("${version}" STREQUAL "")
set(version V9.9-0)
endif()
diff --git a/README b/README
index aab5a15..e5a803f 100644
--- a/README
+++ b/README
@@ -35,11 +35,11 @@ To build GT.M for Linux, do the following steps:
from http://sourceforge.net/projects/fis-gtm/ Unpack the tar file and run
the configure script as root. Note: the tar file unpacks everything into
your current working directory, not a new subdirectory. The Linux Standard
- Base (LSB) install path for GT.M V6.2-002 is /opt/fis-gtm/V6.2-002_i586 or
- /opt/fis-gtm/V6.2-002_x8664. These instructions are written using x8664, please
+ Base (LSB) install path for GT.M V6.2-002A is /opt/fis-gtm/V6.2-002A_i586 or
+ /opt/fis-gtm/V6.2-002A_x8664. These instructions are written using x8664, please
use i586 as necessary.
- $ tar xfz gtm_V62002_linux_x8664_pro.tar.gz
+ $ tar xfz gtm_V62002A_linux_x8664_pro.tar.gz
# Note down the installation path for use with cmake below
@@ -47,16 +47,16 @@ To build GT.M for Linux, do the following steps:
2. Unpack the GT.M sources
The GT.M source tarball extracts to a directory with the version number in
- the name, fis-gtm-V6.2-002
- $ tar xfz fis-gtm-V6.2-002.tar.gz
- $ cd fis-gtm-V6.2-002
+ the name, fis-gtm-V6.2-002A
+ $ tar xfz fis-gtm-V6.2-002A.tar.gz
+ $ cd fis-gtm-V6.2-002A
You should find this README, LICENSE, COPYING and CMakeLists.txt file and
sr_* source directories.
3. Building GT.M -
<fis-gtm-build> can be a sub directory of the source directory,
- fis-gtm-V6.2-002, or any other valid path.
+ fis-gtm-V6.2-002A, or any other valid path.
$ mkdir <fis-gtm-build>
$ cd <fis-gtm-build>
@@ -75,16 +75,16 @@ To build GT.M for Linux, do the following steps:
#
# -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package
#
- $ cmake -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package <path to>/fis-gtm-V6.2-002
+ $ cmake -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package <path to>/fis-gtm-V6.2-002A
$ make
$ make install
- $ cd package/lib/fis-gtm/V6.2-002_x86_64
+ $ cd package/lib/fis-gtm/V6.2-002A_x86_64
# Now you are ready to install GT.M. Answer a few questions and install it.
- # The recommended installation path is /opt/fis-gtm/V6.2-002_x86_64
+ # The recommended installation path is /opt/fis-gtm/V6.2-002A_x86_64
$ sudo ./configure
diff --git a/sr_i386/gtm_threadgbl_deftypes.h b/sr_i386/gtm_threadgbl_deftypes.h
index e2b4a28..88eced2 100644
--- a/sr_i386/gtm_threadgbl_deftypes.h
+++ b/sr_i386/gtm_threadgbl_deftypes.h
@@ -10,7 +10,7 @@
* *
****************************************************************/
-/* Generated by /usr/library/V62002/tools/gen_gtm_threadgbl_deftypes.csh */
+/* Generated by /usr/library/V62002A/tools/gen_gtm_threadgbl_deftypes.csh */
#ifndef GTM_THREADGBL_DEFTYPES_INCLUDED
#define GTM_THREADGBL_DEFTYPES_INCLUDED
diff --git a/sr_linux/release_name.h b/sr_linux/release_name.h
index 4f434e0..6977231 100644
--- a/sr_linux/release_name.h
+++ b/sr_linux/release_name.h
@@ -10,15 +10,15 @@
****************************************************************/
#ifdef __CYGWIN__
-#define GTM_RELEASE_NAME "GT.M V6.2-002 CYGWIN x86"
+#define GTM_RELEASE_NAME "GT.M V6.2-002A CYGWIN x86"
#elif defined(__ia64)
-#define GTM_RELEASE_NAME "GT.M V6.2-002 Linux IA64"
+#define GTM_RELEASE_NAME "GT.M V6.2-002A Linux IA64"
#elif defined(__x86_64__)
-#define GTM_RELEASE_NAME "GT.M V6.2-002 Linux x86_64"
+#define GTM_RELEASE_NAME "GT.M V6.2-002A Linux x86_64"
#elif defined(__s390__)
-#define GTM_RELEASE_NAME "GT.M V6.2-002 Linux S390X"
+#define GTM_RELEASE_NAME "GT.M V6.2-002A Linux S390X"
#else
-#define GTM_RELEASE_NAME "GT.M V6.2-002 Linux x86"
+#define GTM_RELEASE_NAME "GT.M V6.2-002A Linux x86"
#endif
#define GTM_PRODUCT "GT.M"
#define GTM_VERSION "V6.2"
diff --git a/sr_port/actuallist.c b/sr_port/actuallist.c
index cc8c3d0..a350e79 100644
--- a/sr_port/actuallist.c
+++ b/sr_port/actuallist.c
@@ -1,6 +1,7 @@
/****************************************************************
* *
- * Copyright 2001, 2013 Fidelity Information Services, Inc *
+ * Copyright (c) 2001-2015 Fidelity National Information *
+ * Services, Inc. and/or its subsidiaries. All rights reserved. *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
@@ -106,7 +107,7 @@ error_def(ERR_SIDEEFFECTEVAL);
if ((1 < parmcount) && (TREF(side_effect_base))[TREF(expr_depth)])
{ /* at least two arguments and at least one side effect - look for lvns needing protection */
assert(OLD_SE != TREF(side_effect_handling));
- se_warn = (!run_time && (SE_WARN == TREF(side_effect_handling)));
+ se_warn = SE_WARN_ON;
for (i = 0, j = parmcount, ref0 = counttrip->operand[1].oprval.tref; --j;
ref0 = ref0->operand[1].oprval.tref)
{ /* no need to do the last argument - can't have a side effect after it */
diff --git a/sr_port/compiler.h b/sr_port/compiler.h
index 052630a..11872b0 100644
--- a/sr_port/compiler.h
+++ b/sr_port/compiler.h
@@ -243,6 +243,7 @@ typedef struct
* PostConditionals can cause this path to be avoided in which case we do not want to issue an error at compile time.
* Therefore issue only a warning at compile-time and proceed with compilation as if this codepath will not be reached at runtime.
*/
+error_def(ERR_BOOLSIDEFFECT);
error_def(ERR_DEVPARINAP);
error_def(ERR_DEVPARUNK);
error_def(ERR_DEVPARVALREQ);
@@ -353,9 +354,8 @@ typedef struct
newtriple(OC_GVRECTARG)->operand[0] = put_tref(TREF(expr_start)); \
}
-/* note assignment below and that it always occurs */
-#define SHIFT_SIDE_EFFECTS ((TREF(saw_side_effect) = TREF(shift_side_effects)) \
- && (NULL != TREF(expr_start)) && (GTM_BOOL == TREF(gtm_fullbool)))
+/* note assignment below */
+#define SHIFT_SIDE_EFFECTS ((TREF(saw_side_effect) = TREF(shift_side_effects)) && (GTM_BOOL == TREF(gtm_fullbool)))
#define INITIAL_SIDE_EFFECT_DEPTH 33 /* initial allocation for expression nesting to track side effects */
diff --git a/sr_port/eval_expr.c b/sr_port/eval_expr.c
index 341ba04..1ae54e7 100644
--- a/sr_port/eval_expr.c
+++ b/sr_port/eval_expr.c
@@ -1,6 +1,7 @@
/****************************************************************
* *
- * Copyright 2001, 2013 Fidelity Information Services, Inc *
+ * Copyright (c) 2001-2015 Fidelity National Information *
+ * Services, Inc. and/or its subsidiaries. All rights reserved. *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
@@ -47,7 +48,7 @@ int eval_expr(oprtype *a)
return EXPR_FAIL;
}
se_handling = TREF(side_effect_handling);
- se_warn = (!run_time && (SE_WARN == se_handling));
+ se_warn = SE_WARN_ON;
while (bin_opcode = tokentable[TREF(window_token)].bo_type) /* NOTE assignment NOT condition */
{
type = tokentable[TREF(window_token)].opr_type;
diff --git a/sr_port/expritem.c b/sr_port/expritem.c
index fddee39..f19c5ea 100644
--- a/sr_port/expritem.c
+++ b/sr_port/expritem.c
@@ -27,7 +27,6 @@
GBLREF bool devctlexp;
GBLREF boolean_t run_time;
-error_def(ERR_BOOLSIDEFFECT);
error_def(ERR_EXPR);
error_def(ERR_FCNSVNEXPECTED);
error_def(ERR_FNOTONSYS);
@@ -705,7 +704,7 @@ int expritem(oprtype *a)
if (!saw_se) /* might have lucked out on ordering */
saw_local = FALSE; /* just clear the backptrs - shut off other processing */
saw_se = FALSE;
- se_warn = (!run_time && (SE_WARN == TREF(side_effect_handling)));
+ se_warn = SE_WARN_ON;
dqloop(funcbp, que, tripbp)
{ /* work chained arguments which are in reverse order */
argtrip = tripbp->bpt;
diff --git a/sr_port/f_name.c b/sr_port/f_name.c
index 13cf1a3..b2f685b 100644
--- a/sr_port/f_name.c
+++ b/sr_port/f_name.c
@@ -1,6 +1,7 @@
/****************************************************************
* *
- * Copyright 2001, 2014 Fidelity Information Services, Inc *
+ * Copyright (c) 2001-2015 Fidelity National Information *
+ * Services, Inc. and/or its subsidiaries. All rights reserved. *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
@@ -76,7 +77,7 @@ int f_name(oprtype *a, opctype op)
column = source_column;
if (EXPR_FAIL == expr(depth, MUMPS_STR))
return FALSE;
- if (!run_time && (OC_INDFNNAME2 == r->opcode) && (SE_WARN == TREF(side_effect_handling)))
+ if (SE_WARN_ON && (OC_INDFNNAME2 == r->opcode))
ISSUE_SIDEEFFECTEVAL_WARNING(column - 1);
}
coerce(depth, OCT_MVAL);
diff --git a/sr_port/f_select.c b/sr_port/f_select.c
index 3da7b1e..47d60c3 100644
--- a/sr_port/f_select.c
+++ b/sr_port/f_select.c
@@ -35,7 +35,7 @@ LITREF octabstruct oc_tab[];
int f_select(oprtype *a, opctype op)
{
- boolean_t first_time, save_saw_side, *save_se_base, save_shift, shifting, we_saw_side_effect = FALSE;
+ boolean_t first_time, save_saw_side, saw_se_in_select, *save_se_base, save_shift, shifting, gvn_or_indir_in_select;
opctype old_op;
oprtype *cnd, endtrip, target, tmparg;
triple *oldchain, *r, *ref, *save_start, *save_start_orig, tmpchain, *triptr;
@@ -60,7 +60,8 @@ int f_select(oprtype *a, opctype op)
{
dqinit(&tmpchain, exorder);
oldchain = setcurtchain(&tmpchain);
- INCREMENT_EXPR_DEPTH; /* Don't want to hit botton with each expression, so start at 1 rather than 0 */
+ INCREMENT_EXPR_DEPTH; /* Don't want to hit bottom with each expression, so start at 1 rather than 0 */
+ TREF(expr_start) = TREF(expr_start_orig) = &tmpchain;
TREF(shift_side_effects) = TRUE;
} else
TREF(shift_side_effects) = FALSE;
@@ -130,44 +131,38 @@ int f_select(oprtype *a, opctype op)
ref->operand[0] = tmparg;
ref->operand[1] = put_ilit(FALSE); /* Not a subroutine reference */
ins_triple(r);
+ saw_se_in_select = TREF(saw_side_effect); /* note this down before it gets reset by DECREMENT_EXPR_DEPTH */
if (shifting)
- {
- assert(1 == TREF(expr_depth));
- we_saw_side_effect = TREF(saw_side_effect);
- save_se_base[save_expr_depth] |= (TREF(side_effect_base))[1];
DECREMENT_EXPR_DEPTH; /* Clean up */
- }
assert(!TREF(expr_depth));
+ gvn_or_indir_in_select = (TREF(expr_start) != TREF(expr_start_orig));
TREF(expr_start) = save_start;
TREF(expr_start_orig) = save_start_orig;
- TREF(saw_side_effect) = save_saw_side;
TREF(shift_side_effects) = save_shift;
- SELECT_CLEANUP;
- TREF(expr_depth) = save_expr_depth;
+ save_se_base[save_expr_depth] |= (TREF(side_effect_base))[TREF(expr_depth)];
+ TREF(saw_side_effect) = saw_se_in_select | save_saw_side;
+ SELECT_CLEANUP; /* restores TREF(expr_depth), TREF(side_effect_base) and TREF(side_effect_depth) */
if (shifting)
- { /* We have built a separate chain so decide what to do with it */
- if (we_saw_side_effect || (GTM_BOOL != TREF(gtm_fullbool))
- || ((save_start != save_start_orig) && (OC_NOOP != save_start->opcode)))
- { /* Only play this game if a side effect requires it */
- newtriple(OC_GVSAVTARG); /* Need 1 of these at expr_start */
+ {
+ if (!gvn_or_indir_in_select && ((GTM_BOOL == TREF(gtm_fullbool)) || !saw_se_in_select))
+ {
setcurtchain(oldchain);
- TREF(saw_side_effect) |= we_saw_side_effect;
- if (NULL == save_start)
- { /* If this chain is new, look back for a pre-boolean place to put it */
- for (ref = (TREF(curtchain))->exorder.bl;
- (ref != TREF(curtchain)) && oc_tab[ref->opcode].octype & OCT_BOOL; ref = ref->exorder.bl)
- ;
- TREF(expr_start) = TREF(expr_start_orig) = ref;
- }
- dqadd(TREF(expr_start), &tmpchain, exorder);
- TREF(expr_start) = tmpchain.exorder.bl;
- triptr = newtriple(OC_GVRECTARG);
- triptr->operand[0] = put_tref(TREF(expr_start));
+ triptr = (TREF(curtchain))->exorder.bl;
+ dqadd(triptr, &tmpchain, exorder); /* this is a violation of info hiding */
} else
- { /* Just put it where it would "naturally" go */
+ {
+ shifting = ((TREF(expr_start) != TREF(expr_start_orig)) && (OC_NOOP != (TREF(expr_start))->opcode));
+ newtriple(shifting ? OC_GVSAVTARG : OC_NOOP); /* must have one of these two at expr_start */
setcurtchain(oldchain);
- triptr = (TREF(curtchain))->exorder.bl;
- dqadd(triptr, &tmpchain, exorder);
+ assert(NULL != TREF(expr_start));
+ dqadd(TREF(expr_start), &tmpchain, exorder);
+ TREF(expr_start) = tmpchain.exorder.bl;
+ if (shifting)
+ { /* only play this game if something else started it */
+ assert(OC_GVSAVTARG == (TREF(expr_start))->opcode);
+ triptr = newtriple(OC_GVRECTARG);
+ triptr->operand[0] = put_tref(TREF(expr_start));
+ }
}
}
*a = put_tref(r);
diff --git a/sr_port/gvn.c b/sr_port/gvn.c
index db7e6c3..41c7220 100644
--- a/sr_port/gvn.c
+++ b/sr_port/gvn.c
@@ -32,7 +32,7 @@ error_def(ERR_SIDEEFFECTEVAL);
int gvn(void)
{
- boolean_t in_select = FALSE, parse_status, shifting, vbar;
+ boolean_t parse_status, shifting, vbar;
char x;
int hash_code;
opctype ox;
@@ -45,7 +45,7 @@ int gvn(void)
advancewindow();
sb1 = sb2 = subscripts;
ox = 0;
- if (shifting = (TREF(shift_side_effects) && (!TREF(saw_side_effect) || ((GTM_BOOL == TREF(gtm_fullbool))
+ if (shifting = (TREF(shift_side_effects) && (!TREF(saw_side_effect) || (GTM_BOOL == TREF(gtm_fullbool)
&& (OLD_SE == TREF(side_effect_handling))))))
{ /* NOTE assignment above */
dqinit(&tmpchain, exorder);
@@ -54,7 +54,7 @@ int gvn(void)
if ((TK_LBRACKET == TREF(window_token)) || (TK_VBAR == TREF(window_token)))
{
assert(sb2 == sb1);
- /* Set "hash_code" as the first operand so OC_GVEXTNAM has it passed in at same spot as op_gvname */
+ /* set "hash_code" as the first operand so OC_GVEXTNAM has it passed in at same spot as op_gvname */
sb1++;
vbar = (TK_VBAR == TREF(window_token));
advancewindow();
@@ -102,7 +102,7 @@ int gvn(void)
ox = OC_GVNAME;
*sb1++ = put_ilit((mint)hash_code);
} else
- *sb2 = put_ilit((mint)hash_code); /* Fill in hash_code in the space previously set aside */
+ *sb2 = put_ilit((mint)hash_code); /* fill in hash_code in the space previously set aside */
*sb1++ = put_str((TREF(window_ident)).addr, (TREF(window_ident)).len);
advancewindow();
} else
@@ -121,7 +121,7 @@ int gvn(void)
return FALSE;
}
ox = OC_GVNAKED;
- /* Pass in a dummy hash_code in case of OC_GVNAKED. We need this so op_gvname_fast, op_gvextnam_fast and
+ /* pass in a dummy hash_code in case of OC_GVNAKED. We need this so op_gvname_fast, op_gvextnam_fast and
* op_gvnaked_fast have the same call interface. op_savgvn.c relies on this to replace OC_GVNAME, OC_GVEXTNAM
* or OC_GVNAKED opcodes with a OC_SAVGVN opcode.
*/
@@ -169,11 +169,8 @@ int gvn(void)
SUBS_ARRAY_2_TRIPLES(ref, sb1, sb2, subscripts, 0);
if (shifting)
{
- if (NULL == TREF(expr_start))
- TREF(saw_side_effect) = in_select = TRUE; /* Special case relied on by f_select */
- if (in_select
- || (TREF(saw_side_effect) && ((GTM_BOOL != TREF(gtm_fullbool)) || (OLD_SE != TREF(side_effect_handling)))))
- { /* Saw a side effect in a subscript - time to stop shifting */
+ if (TREF(saw_side_effect) && ((GTM_BOOL != TREF(gtm_fullbool)) || (OLD_SE != TREF(side_effect_handling))))
+ { /* saw a side effect in a subscript - time to stop shifting */
setcurtchain(oldchain);
triptr = (TREF(curtchain))->exorder.bl;
dqadd(triptr, &tmpchain, exorder);
diff --git a/sr_port/indirection.c b/sr_port/indirection.c
index 0403639..127b793 100644
--- a/sr_port/indirection.c
+++ b/sr_port/indirection.c
@@ -27,7 +27,6 @@ GBLREF spdesc stringpool;
GBLREF unsigned char *source_buffer;
GBLREF int source_column;
-error_def(ERR_BOOLSIDEFFECT);
error_def(ERR_EXPR);
error_def(ERR_LPARENMISSING);
error_def(ERR_MAXNRSUBSCRIPTS);
diff --git a/sr_x86_64/gtm_threadgbl_deftypes.h b/sr_x86_64/gtm_threadgbl_deftypes.h
index bd35723..74a3951 100644
--- a/sr_x86_64/gtm_threadgbl_deftypes.h
+++ b/sr_x86_64/gtm_threadgbl_deftypes.h
@@ -10,7 +10,7 @@
* *
****************************************************************/
-/* Generated by /usr/library/V62002/tools/gen_gtm_threadgbl_deftypes.csh */
+/* Generated by /usr/library/V62002A/tools/gen_gtm_threadgbl_deftypes.csh */
#ifndef GTM_THREADGBL_DEFTYPES_INCLUDED
#define GTM_THREADGBL_DEFTYPES_INCLUDED
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/fis-gtm.git
More information about the debian-med-commit
mailing list