From 5fb167d6ef663508ecdc8f903e6415302c52f34f Mon Sep 17 00:00:00 2001 From: Marcin Szydelski Date: Nov 10 2019 20:55:00 +0000 Subject: 6.3-003A --- diff --git a/CMakeLists.txt b/CMakeLists.txt index dfd73e9..8c03b84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ foreach(lang ${languages}) endforeach() # Defaults -set(version V6.3-003) +set(version V6.3-003A) if("${version}" STREQUAL "") set(version V9.9-0) endif() diff --git a/LICENSE b/LICENSE index 8b3ce06..198b1fe 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -All software in this package is part of FIS GT.M (http://fis-gtm.com) which is Copyright 2017 Fidelity Information +All software in this package is part of FIS GT.M (http://fis-gtm.com) which is Copyright 2018 Fidelity Information Services, Inc., and provided to you under the terms of a license. If there is a COPYING file included in this package, it contains the terms of the license under which the package is provided to you. If there is not a COPYING file in the package, you must ensure that your use of FIS GT.M complies with the license under which it is provided. If you are diff --git a/README b/README index 3c46631..87d492f 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ All software in this package is part of FIS GT.M (http://fis-gtm.com) -which is Copyright 2017 Fidelity Information Services, Inc., and +which is Copyright 2018 Fidelity Information Services, Inc., and provided to you under the terms of a license. If there is a COPYING file included in this package, it contains the terms of the license under which the package is provided to you. If there is not a COPYING file in @@ -25,16 +25,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.3-003 - $ tar xfz fis-gtm-V6.3-003.tar.gz - $ cd fis-gtm-V6.3-003 + the name, fis-gtm-V6.3-003A + $ tar xfz fis-gtm-V6.3-003A.tar.gz + $ cd fis-gtm-V6.3-003A You should find this README, LICENSE, COPYING and CMakeLists.txt file and sr_* source directories. 3. Building GT.M - can be a sub directory of the source directory, - fis-gtm-V6.3-003, or any other valid path. + fis-gtm-V6.3-003A, or any other valid path. $ mkdir $ cd @@ -53,16 +53,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 /fis-gtm-V6.3-003 + $ cmake -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package /fis-gtm-V6.3-003A $ make $ make install - $ cd package/lib/fis-gtm/V6.3-003_x86_64 + $ cd package/lib/fis-gtm/V6.3-003A_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.3-003_x86_64 + # The recommended installation path is /opt/fis-gtm/V6.3-003A_x86_64 $ sudo ./configure diff --git a/sr_i386/GTMDefinedTypesInitDebug.m b/sr_i386/GTMDefinedTypesInitDebug.m index 109ac38..3b7f90a 100644 --- a/sr_i386/GTMDefinedTypesInitDebug.m +++ b/sr_i386/GTMDefinedTypesInitDebug.m @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; -; Copyright (c) 2010-2017 Fidelity National Information ; +; Copyright (c) 2010-2018 Fidelity National Information ; ; Services, Inc. and/or its subsidiaries. All rights reserved. ; ; ; ; This source code contains the intellectual property ; @@ -11,14 +11,14 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; -; Generated by scantypedefs.m at 11:57:59 on 2017-12-18 +; Generated by scantypedefs.m at 10:26:02 on 2018-01-13 ; Build done with GT.M version: GT.M V6.3-002 Linux x86 ; ; Environment variables during run: ; $gtm_dist: /usr/library/V63002/dbg -; $gtm_exe: /usr/library/V63003/dbg -; $gtm_src: /usr/library/V63003/src -; $gtm_inc: /usr/library/V63003/inc +; $gtm_exe: /usr/library/V63003A/dbg +; $gtm_src: /usr/library/V63003A/src +; $gtm_inc: /usr/library/V63003A/inc ; ; Note this file should not be manually invoked ; diff --git a/sr_i386/GTMDefinedTypesInitRelease.m b/sr_i386/GTMDefinedTypesInitRelease.m index 39683f1..d48b4bf 100644 --- a/sr_i386/GTMDefinedTypesInitRelease.m +++ b/sr_i386/GTMDefinedTypesInitRelease.m @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; -; Copyright (c) 2010-2017 Fidelity National Information ; +; Copyright (c) 2010-2018 Fidelity National Information ; ; Services, Inc. and/or its subsidiaries. All rights reserved. ; ; ; ; This source code contains the intellectual property ; @@ -11,14 +11,14 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; -; Generated by scantypedefs.m at 11:56:29 on 2017-12-18 +; Generated by scantypedefs.m at 10:24:28 on 2018-01-13 ; Build done with GT.M version: GT.M V6.3-002 Linux x86 ; ; Environment variables during run: ; $gtm_dist: /usr/library/V63002/pro -; $gtm_exe: /usr/library/V63003/pro -; $gtm_src: /usr/library/V63003/src -; $gtm_inc: /usr/library/V63003/inc +; $gtm_exe: /usr/library/V63003A/pro +; $gtm_src: /usr/library/V63003A/src +; $gtm_inc: /usr/library/V63003A/inc ; ; Note this file should not be manually invoked ; diff --git a/sr_i386/cmerrors_ctl.c b/sr_i386/cmerrors_ctl.c index 3d09df6..11fb5d8 100644 --- a/sr_i386/cmerrors_ctl.c +++ b/sr_i386/cmerrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_i386/cmierrors_ctl.c b/sr_i386/cmierrors_ctl.c index 4ff26bf..75c8f04 100644 --- a/sr_i386/cmierrors_ctl.c +++ b/sr_i386/cmierrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_i386/gdeerrors_ctl.c b/sr_i386/gdeerrors_ctl.c index 863750e..eed1b5f 100644 --- a/sr_i386/gdeerrors_ctl.c +++ b/sr_i386/gdeerrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_i386/merrors_ansi.h b/sr_i386/merrors_ansi.h index c5a88fa..204c51d 100644 --- a/sr_i386/merrors_ansi.h +++ b/sr_i386/merrors_ansi.h @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_i386/merrors_ctl.c b/sr_i386/merrors_ctl.c index 4dd350c..74a9179 100644 --- a/sr_i386/merrors_ctl.c +++ b/sr_i386/merrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_i386/ttt.c b/sr_i386/ttt.c index e00d828..4da6d9c 100644 --- a/sr_i386/ttt.c +++ b/sr_i386/ttt.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_linux/release_name.h b/sr_linux/release_name.h index cb24f32..0f96979 100644 --- a/sr_linux/release_name.h +++ b/sr_linux/release_name.h @@ -12,15 +12,15 @@ #ifndef GTM_RELEASE_NAME #ifdef __CYGWIN__ -#define GTM_RELEASE_NAME "GT.M V6.3-003 CYGWIN x86" +#define GTM_RELEASE_NAME "GT.M V6.3-003A CYGWIN x86" #elif defined(__ia64) -#define GTM_RELEASE_NAME "GT.M V6.3-003 Linux IA64" +#define GTM_RELEASE_NAME "GT.M V6.3-003A Linux IA64" #elif defined(__x86_64__) -#define GTM_RELEASE_NAME "GT.M V6.3-003 Linux x86_64" +#define GTM_RELEASE_NAME "GT.M V6.3-003A Linux x86_64" #elif defined(__s390__) -#define GTM_RELEASE_NAME "GT.M V6.3-003 Linux S390X" +#define GTM_RELEASE_NAME "GT.M V6.3-003A Linux S390X" #else -#define GTM_RELEASE_NAME "GT.M V6.3-003 Linux x86" +#define GTM_RELEASE_NAME "GT.M V6.3-003A Linux x86" #endif #endif #define GTM_PRODUCT "GT.M" diff --git a/sr_port/alloc_reg.c b/sr_port/alloc_reg.c index 43ddbbe..bfe0b5e 100644 --- a/sr_port/alloc_reg.c +++ b/sr_port/alloc_reg.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * @@ -23,6 +23,7 @@ #include "opcode.h" #include "alloc_reg.h" #include "cdbg_dump.h" +#include "fullbool.h" GBLDEF int4 sa_temps[VALUED_REF_TYPES]; GBLDEF int4 sa_temps_offset[VALUED_REF_TYPES]; @@ -59,7 +60,9 @@ void alloc_reg(void) int r, c, temphigh[VALUED_REF_TYPES]; unsigned int oct; int4 size; + DCL_THREADGBL_ACCESS; + SETUP_THREADGBL_ACCESS; memset(&tempcont[0][0], 0, SIZEOF(tempcont)); memset(&temphigh[0], -1, SIZEOF(temphigh)); temphigh[TVAR_REF] = mvmax - 1; @@ -97,16 +100,18 @@ void alloc_reg(void) COMPDBG(PRINTF(" ** Converting triple to NOOP (rsn 2) **\n");); continue; /* continue, because 'normal' NOOP continues from this switch */ } -# ifndef DEBUG - break; -# endif case OC_LINEFETCH: -# ifdef DEBUG + /* this code is a sad hack - it used to assert that there was no temp leak, but in non-short-circuit + * mode there can be a leak, we weren't finding it and the customers were justifiably impatient + * so the following code now makes the leak go away + */ for (c = temphigh[TVAL_REF]; 0 <= c; c--) - assert(0 == tempcont[TVAL_REF][c]); /* check against leaking TVAL temps */ + { + assert((GTM_BOOL != TREF(gtm_fullbool)) || (0 == tempcont[TVAL_REF][c])); + tempcont[TVAL_REF][c] = 0; /* prevent leaking TVAL temps */ + } if (OC_LINESTART == opc) break; -# endif case OC_FETCH: assert((TRIP_REF == x->operand[0].oprclass) && (OC_ILIT == x->operand[0].oprval.tref->opcode)); if (x->operand[0].oprval.tref->operand[0].oprval.ilit == mvmax) @@ -148,6 +153,8 @@ void alloc_reg(void) COMPDBG(PRINTF(" *** OC_PASSTHRU opcode being NOOP'd\n");); remove_backptr(x, &x->operand[0], tempcont); x->opcode = OC_NOOP; + x->operand[0].oprclass = NO_REF; + assert(NO_REF == x->operand[1].oprclass); continue; } if (NO_REF == (dest_type = x->destination.oprclass)) /* Note assignment */ @@ -230,13 +237,8 @@ void remove_backptr(triple *curtrip, oprtype *opnd, char (*tempcont)[MAX_TEMP_CO int r; assert(TRIP_REF == opnd->oprclass); + assert(OC_PASSTHRU != opnd->oprval.tref->opcode); ref = opnd->oprval.tref; - while (OC_PASSTHRU == opnd->oprval.tref->opcode) - { - ref = ref->operand[0].oprval.tref; - opnd = &ref->operand[0]; - assert(TRIP_REF == opnd->oprclass); - } r = ref->destination.oprclass; if (NO_REF != r) { diff --git a/sr_port/bx_boolop.c b/sr_port/bx_boolop.c index 7661fa7..7a5d3bf 100644 --- a/sr_port/bx_boolop.c +++ b/sr_port/bx_boolop.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * @@ -59,15 +59,6 @@ MBSTART { /* Input: \ } \ } MBEND -#define TRACK_JMP_TARGET(T, REF0) \ -MBSTART { /* T is triple to tag; REF0 is the new target triple with which it's tagged */ \ - tripbp = &T->jmplist; /* borrow jmplist to track jmp targets */ \ - assert(NULL == tripbp->bpt); \ - assert((tripbp == tripbp->que.fl) && (tripbp == tripbp->que.bl)); \ - tripbp->bpt = REF0; /* point to the new location */ \ - dqins(TREF(bool_targ_ptr), que, tripbp); /* queue jmplist for clean-up */ \ -} MBEND - void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean_t sense, oprtype *addr) /* process the operations into a chain of mostly conditional jumps * *t points to the Boolean operation @@ -81,7 +72,7 @@ void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean opctype c; oprtype *adj_addr, *i, *p; tbp *tripbp; - triple *ref0, *ref1, *ref2, *t0, *t1, *tb, *tj; + triple *bfini, *binit, *ref0, *ref1, *ref2, *t0, *t1, *tb, *tj; DCL_THREADGBL_ACCESS; SETUP_THREADGBL_ACCESS; @@ -123,12 +114,20 @@ void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean TREF(boolchain_ptr) = &(TREF(boolchain)); dqinit(TREF(boolchain_ptr), exorder); t0 = t->exorder.fl; - TREF(bool_targ_ptr) = &(TREF(bool_targ_anchor)); /* mcalloc won't persist over multiple complies */ + TREF(bool_targ_ptr) = &(TREF(bool_targ_anchor)); /* mcalloc won't persist over multiple compiles */ dqinit(TREF(bool_targ_ptr), que); - /* ex_tail wraps bools that produce a value with OC_BOOLINIT (clr) and OC_BOOLFINI (set) */ - assert((OC_BOOLFINI != t0->opcode) - || ((OC_COMVAL == t0->exorder.fl->opcode) && (TRIP_REF == t0->operand[0].oprclass))); } + if (OC_BOOLFINI == (bfini = t->exorder.fl)->opcode) /* WARNING assignment */ + { /* ex_tail wraps bools that produce a value with OC_BOOLINIT (clr) and OC_BOOLFINI (set) followed by an OC_COMVAL */ + assert((TRIP_REF == bfini->operand[0].oprclass) && (OC_BOOLINIT == bfini->operand[0].oprval.tref->opcode)); + assert(NO_REF == bfini->operand[0].oprval.tref->operand[0].oprclass); + bfini->operand[0].oprval.tref->opcode = OC_NOOP; + binit = maketriple(OC_BOOLINIT); + DEBUG_ONLY(binit->src = bfini->operand[0].oprval.tref->src); + ref1 = (TREF(boolchain_ptr))->exorder.bl; + dqins(ref1, exorder, binit); + } else + bfini = binit = NULL; for (i = t->operand; i < ARRAYTOP(t->operand); i++) { assert(NULL != TREF(boolchain_ptr)); @@ -141,8 +140,6 @@ void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean { /* operand[1] */ bx_tail(tb, sense, addr); /* do normal transform */ RETURN_IF_RTS_ERROR; - if (!expr_fini) /* leaving ref0 same as for operand 0 */ - break; /* only need to relocate last operand[1] */ } if (OC_NOOP == tb->opcode) { /* the technique of sprinkling noops means fishing around for the actual instruction */ @@ -171,7 +168,7 @@ void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean } } assert(OC_NOOP != tb->opcode); - ref0 = maketriple(tb->opcode); /* copy operation for place in new ladder */ + ref0 = maketriple(tb->opcode); /* copy operation to place in new ladder */ DEBUG_ONLY(ref0->src = tb->src); ref1 = (TREF(boolchain_ptr))->exorder.bl; /* common setup for coming copy of this op */ switch (tb->opcode) @@ -190,10 +187,10 @@ void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean } t1 = tb->exorder.fl; assert(OCT_JUMP & oc_tab[t1->opcode].octype); - tj = maketriple(t1->opcode); /* create new jmp on result of coerce */ + tj = maketriple(t1->opcode); /* create JMP in boolchain on result of coerce */ DEBUG_ONLY(tj->src = t1->src); tj->operand[0] = t1->operand[0]; - t1->opcode = OC_NOOP; /* wipe out original jmp */ + t1->opcode = OC_NOOP; /* wipe out original JMP */ t1->operand[0].oprclass = NO_REF; break; case OC_CONTAIN: @@ -209,117 +206,127 @@ void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean STOTEMP_IF_NEEDED(ref0, 0, tb, tb->operand[0]); t1 = tb->exorder.fl; assert(OCT_JUMP & oc_tab[t1->opcode].octype); - tj = maketriple(t1->opcode); /* copy jmp */ + tj = maketriple(t1->opcode); /* copy JMP */ DEBUG_ONLY(tj->src = t1->src); tj->operand[0] = t1->operand[0]; STOTEMP_IF_NEEDED(ref0, 1, t1, tb->operand[1]); - if (OC_NOOP == tb->opcode) /* does op[0] need cleanup? */ + if (OC_NOOP == tb->opcode) /* does operand[0] need cleanup? */ tb->operand[0].oprclass = tb->operand[1].oprclass = NO_REF; break; case OC_JMPTCLR: case OC_JMPTSET: - t1 = tb; /* move copy of jmp to boolchain and NOOP it */ - tj = ref0; - tj->operand[0] = t1->operand[0]; /* new jmp gets old target */ + t1 = tb; + tj = ref0; /* put revised JMP in boolchain */ + tj->opcode = (OC_JMPTCLR == tb->opcode) ? OC_JMPEQU : OC_JMPNEQ; + tj->operand[0] = tb->operand[0]; /* new JMP gets old target */ assert(INDR_REF == tj->operand[0].oprclass); - ref2 = maketriple(OC_NOOP); /* insert NOOP rather than COBOOL in new chain */ - DEBUG_ONLY(ref2->src = tj->src); - dqins(ref1, exorder, ref2); - t1->opcode = OC_NOOP; /* wipe out original jmp */ + ref0 = maketriple(OC_COBOOL); /* insert COBOOL in new chain */ + DEBUG_ONLY(ref0->src = tj->src); + ref0->operand[0] = put_tref(t1); /* aim it at the original JMP */ + dqins(ref1, exorder, ref0); + t1->opcode = OC_GETTRUTH; /* and replace original JMP with OC_GETTRUTH */ t1->operand[0].oprclass = NO_REF; break; default: - assertpro(FALSE); + tj = NULL; /* toss in indicator as flag for code below */ } - assert((OC_STOTEMP == t1->opcode) || (OC_NOOP == t1->opcode) || (OC_COMVAL == t1->opcode) - || (OC_LITC == t1->opcode)); - assert(OCT_JUMP & oc_tab[tj->opcode].octype); + if (NULL != tj) + { + TRACK_JMP_TARGET(tb, ref0); + assert((OC_STOTEMP == t1->opcode) || (OC_NOOP == t1->opcode) || (OC_COMVAL == t1->opcode) + || (OC_LITC == t1->opcode) || (OC_GETTRUTH == t1->opcode)); + assert(OCT_JUMP & oc_tab[tj->opcode].octype); + ref1 = (TREF(boolchain_ptr))->exorder.bl; + dqins(ref1, exorder, tj); /* common insert for new jmp */ + } + } + TRACK_JMP_TARGET(t, (TREF(boolchain_ptr))->exorder.bl); /* track the operator as well as the operands */ + if (bfini == t->exorder.fl) + { /* if OC_BOOLINIT/OC_BOOLFINI pair, move them to the new chain */ + assert((NULL != binit) && (OC_BOOLFINI == bfini->opcode) && (OC_BOOLINIT == binit->opcode)); + assert((OC_COMVAL == bfini->exorder.fl->opcode) && (TRIP_REF == bfini->exorder.fl->operand[0].oprclass)); + ref0 = bfini->exorder.fl; /* get a pointer to the OC_COMVAL */ + bfini->opcode = OC_NOOP; + bfini->operand[0].oprclass = NO_REF; + assert(NO_REF == binit->operand[0].oprclass); + ref2 = maketriple(OC_BOOLFINI); /* put the OC_BOOLFINI at the current end */ + DEBUG_ONLY(ref2->src = bfini->src); + ref2->operand[0] = put_tref(binit); + ref1 = (TREF(boolchain_ptr))->exorder.bl; + dqins(ref1, exorder, ref2); + TRACK_JMP_TARGET(bfini, ref2); + bfini = ref2; + ref2 = maketriple(OC_COMVAL); /* followed by the OC_COMVAL */ + DEBUG_ONLY(ref2->src = ref0->src); + ref2->operand[0] = put_tref(binit); ref1 = (TREF(boolchain_ptr))->exorder.bl; - dqins(ref1, exorder, tj); /* common insert for new jmp */ - TRACK_JMP_TARGET(tb, ref0); + dqins(ref1, exorder, ref2); + ref0->opcode = OC_PASSTHRU; /* turn original OC_COMVAL into an OC_PASSTHRU */ + ref0->operand[0] = put_tref(ref2); + TRACK_JMP_TARGET(ref0, ref2); /* also track it, in case it's a jump target */ + TRACK_JMP_TARGET(ref2, ref2); /* ??? not sure about this line */ + if ((OCT_JUMP & oc_tab[(ref1 = bfini->exorder.bl)->opcode].octype) /* WARNING assignment */ + && (INDR_REF == ref1->operand[0].oprclass) && (NO_REF == ref1->operand[0].oprval.indr->oprclass)) + *ref1->operand[0].oprval.indr = put_tnxt(bfini); /* unresolved JMP around BOOLFINI goes to COMVAL */ + bfini = binit = NULL; } - assert(oc_tab[t->opcode].octype & OCT_BOOL); + assert(OCT_BOOL & oc_tab[t->opcode].octype); t->opcode = OC_NOOP; /* wipe out the original boolean op */ t->operand[0].oprclass = t->operand[1].oprclass = NO_REF; - TRACK_JMP_TARGET(t, (jmp_to_next ? (TREF(boolchain_ptr))->exorder.bl : ref0)); /* point at op[1] or op[0] respectively */ + CHKTCHAIN(TREF(boolchain_ptr), exorder, FALSE); /* ensure no cross threading between the 2 chains */ if (!expr_fini) - return; + return; /* more to come */ /* time to deal with new jump ladder */ assert(NULL != TREF(boolchain_ptr)); assert(NULL != TREF(bool_targ_ptr)); assert(TREF(bool_targ_ptr) != (TREF(bool_targ_ptr))->que.fl); - assert(t0->exorder.bl == t); - assert(t0 == t->exorder.fl); - dqadd(t, TREF(boolchain_ptr), exorder); /* insert the new jump ladder */ - ref0 = (TREF(boolchain_ptr))->exorder.bl->exorder.fl; - if (ref0 == TREF(curtchain)) - ref0 = newtriple(OC_NOOP); /* add a safe target */ - t0 = t->exorder.fl; - assert((OC_COBOOL == t0->opcode) || (OC_JMPTSET != t0->opcode) || (OC_JMPTCLR != t0->opcode)) ; - t0 = t0->exorder.fl; - assert(OCT_JUMP & oc_tab[t0->opcode].octype); - for (; (t0 != ref0) && (OCT_JUMP & oc_tab[t0->opcode].octype); t0 = t0->exorder.fl) + assert((t0->exorder.bl == t) && (t0 == t->exorder.fl)); + ref2 = maketriple(OC_NOOP); /* add a safe target */ + ref1 = (TREF(boolchain_ptr))->exorder.bl; + dqins(ref1, exorder, ref2); + ref0 = TREF(boolchain_ptr); + for (t0 = ref0->exorder.fl; (t0 != ref0); t0 = t0->exorder.fl) { /* process replacement jmps */ + if (!(OCT_JUMP & oc_tab[t0->opcode].octype)) + continue; adj_addr = &t0->operand[0]; - switch (t0->opcode) - { - default: - if (NULL != (t1 = (adj_addr = adj_addr->oprval.indr)->oprval.tref)) /* WARNING assignment */ - { /* need to adjust target */ - if (TNXT_REF == adj_addr->oprclass) /* TNXT requires a different adjustment */ + if (NULL != (t1 = (adj_addr = adj_addr->oprval.indr)->oprval.tref)) /* WARNING assignment */ + { /* need to adjust target */ + if (TNXT_REF == adj_addr->oprclass) /* TNXT requires a different adjustment */ + { + for (ref1 = t1->exorder.fl; ref1 != ref0; ref1 = ref1->exorder.fl) { - for (ref1 = t1->exorder.fl; ref1 != ref0; ref1 = ref1->exorder.fl) + if (NULL != ref1->jmplist.bpt) /* find 1st recorded target after TNXT */ { - if (NULL != ref1->jmplist.bpt) /* find 1st recorded target after TNXT */ - { - assert((OC_NOOP == ref1->opcode) || (OC_STOTEMP == ref1->opcode)); - ref1 = ref1->jmplist.bpt; /* should point to appropriate new target */ - assert((OCT_BOOL & oc_tab[ref1->opcode].octype) - || (OC_NOOP == ref1->opcode)); - break; - } + assert((OC_NOOP == ref1->opcode) || (OC_STOTEMP == ref1->opcode) + || (OC_COMVAL == ref1->opcode) || (OC_PASSTHRU == ref1->opcode)); + ref1 = ref1->jmplist.bpt; /* should point to appropriate new target */ + assert((OCT_BOOL & oc_tab[ref1->opcode].octype) + || (OC_NOOP == ref1->opcode) || (OC_COMVAL == ref1->opcode)); + break; } - } else + } + } else + { + assert(TJMP_REF == adj_addr->oprclass); + assert(OC_NOOP == t1->opcode); + assert(&(t1->jmplist) != t1->jmplist.que.fl); + assert(NULL != t1->jmplist.bpt); + ref1 = t1->jmplist.bpt; + if (ref1 == ref0->exorder.bl->exorder.bl) /* if it wants to jump to the end of the chain */ { - assert(TJMP_REF == adj_addr->oprclass); - if ((t == t1) || (t1 == ref0)) - ref1 = ref0; /* adjust to end of boolean expression */ - else - { /* old target should have jmplist entry */ - /* from the jmp jmplisted in the old target we move past the next test (or NOOP) - * and jmp which correspond to the old target and pick the subsequent test (or NOOP) - * and jmp which correspond to those that originally followed the logic after the - * old target and are therefore the appropriate new target for this jmp - */ - assert(OC_NOOP == t1->opcode); - assert(&(t1->jmplist) != t1->jmplist.que.fl); - assert(NULL != t1->jmplist.bpt); - assert(OCT_JUMP & oc_tab[t1->jmplist.bpt->opcode].octype); - ref1 = t1->jmplist.bpt->exorder.fl; - assert((OCT_BOOL & oc_tab[ref1->opcode].octype) || (OC_NOOP == ref1->opcode)); - ref1 = ref1->exorder.fl->exorder.fl; - while ((triple *)-1 == ref1->exorder.fl->operand[0].oprval.tref) - { /* avoid jumping to a "dead" TRUE item */ - assert(OC_JMP == ref1->exorder.fl->opcode); - ref1 = ref1->exorder.fl->exorder.fl; - assert(INDR_REF == ref1->operand[0].oprclass); - } - assert((OCT_BOOL & oc_tab[(c = ref1->opcode)].octype) /* WARNING assignments */ - || (OC_BOOLFINI == c) - || ((OC_NOOP == c) && ((TREF(curtchain) == ref1->exorder.fl) - || ((OC_JMP == (c = ref1->exorder.fl->opcode)) || (OC_JMPTCLR == c) - || (OC_JMPTSET == c)) - && (INDR_REF == ref1->exorder.fl->operand[0].oprclass)))); - } + assert(OC_NOOP == ref0->exorder.bl->opcode); + ref1 = ref0->exorder.bl; /* no need to do more fishing */ + } else + { /* from the jmp jmplisted in the old target, move forward to the next COBOOL) */ + assert(OCT_JUMP & oc_tab[ref1->opcode].octype); + ref1 = ref1->exorder.fl; + assert((OCT_BOOL & oc_tab[ref1->opcode].octype) || (OC_BOOLFINI == ref1->opcode) + || (OC_BOOLINIT == ref1->opcode)); } - t0->operand[0] = put_tjmp(ref1); /* no indirection simplifies later interations */ } + t0->operand[0] = put_tjmp(ref1); /* no indirection simplifies later compilation */ } - t0 = t0->exorder.fl; - if ((OC_BOOLFINI == t0->opcode) || (TREF(curtchain) == t0->exorder.fl)) - break; - assert((OCT_BOOL & oc_tab[t0->opcode].octype) || (OC_JMP == (c = t0->exorder.fl->opcode)) || (OC_JMPTSET == c) - || (OC_JMPTCLR == c)); /* WARNING assignment */ } dqloop(TREF(bool_targ_ptr), que, tripbp) /* clean up borrowed jmplist entries */ { @@ -328,6 +335,7 @@ void bx_boolop(triple *t, boolean_t jmp_type_one, boolean_t jmp_to_next, boolean } assert((TREF(bool_targ_ptr) == (TREF(bool_targ_ptr))->que.fl) && (TREF(bool_targ_ptr) == (TREF(bool_targ_ptr))->que.bl)); + dqadd(t, TREF(boolchain_ptr), exorder); /* insert the new JMP ladder */ TREF(boolchain_ptr) = NULL; if (TREF(expr_start) != TREF(expr_start_orig)) { /* inocculate against an unwanted GVRECTARG */ diff --git a/sr_port/bx_relop.c b/sr_port/bx_relop.c index 1933f94..d34316d 100644 --- a/sr_port/bx_relop.c +++ b/sr_port/bx_relop.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * @@ -13,6 +13,8 @@ #include "mdef.h" #include "compiler.h" #include "mdq.h" +#include "opcode.h" +#include "fullbool.h" LITREF octabstruct oc_tab[]; @@ -24,7 +26,8 @@ void bx_relop(triple *t, opctype cmp, opctype tst, oprtype *addr) */ { oprtype *p; - triple *ref; + tbp *tripbp; + triple *bini, *comv, *ref, *ref0, ref1; DCL_THREADGBL_ACCESS; SETUP_THREADGBL_ACCESS; @@ -38,6 +41,25 @@ void bx_relop(triple *t, opctype cmp, opctype tst, oprtype *addr) { ex_tail(p); RETURN_IF_RTS_ERROR; + if ((NULL != TREF(boolchain_ptr)) && (OC_COMVAL == (comv = p->oprval.tref)->opcode)) + { /* RELOP needed a BOOLINIT/BOOLFINI/COMVAL, which now must move to the boolchain */ + assert(TREF(saw_side_effect) && (GTM_BOOL != TREF(gtm_fullbool))); + assert(OC_BOOLINIT == comv->operand[0].oprval.tref->opcode); + assert(OC_BOOLFINI == comv->exorder.bl->opcode); + assert(comv->operand[0].oprval.tref == comv->exorder.bl->operand[0].oprval.tref); + for (ref = (bini = comv->operand[0].oprval.tref)->exorder.fl; ref != comv; ref = ref->exorder.fl) + { /* process to matching end of sequence so to conform with addr adjust at end of bx_boolop */ + if (!(OCT_JUMP & oc_tab[ref->opcode].octype)) + TRACK_JMP_TARGET(ref, ref); + } + TRACK_JMP_TARGET(comv, comv); + dqdelchain(bini->exorder.bl, comv->exorder.fl, exorder); /* snip out the sequence */ + ref0 = &ref1; /* anchor it */ + ref0->exorder.fl = bini; + ref0->exorder.bl = comv; + ref = (TREF(boolchain_ptr))->exorder.bl; + dqadd(ref, ref0, exorder); /* and insert it in new chain */ + } } } return; diff --git a/sr_port/fullbool.h b/sr_port/fullbool.h index 64c77ac..8dd708c 100644 --- a/sr_port/fullbool.h +++ b/sr_port/fullbool.h @@ -1,6 +1,7 @@ /**************************************************************** * * - * Copyright 2010, 2014 Fidelity Information Services, Inc * + * Copyright (c) 2010-2018 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 * @@ -25,4 +26,13 @@ enum gtm_se_type SE_WARN /* like STD but give compiler warnings when it makes a difference */ }; +#define TRACK_JMP_TARGET(T, REF0) \ +MBSTART { /* T is triple to tag; REF0 is the new target triple with which it's tagged */ \ + tripbp = &T->jmplist; /* borrow jmplist to track jmp targets */ \ + assert(NULL == tripbp->bpt); \ + assert((tripbp == tripbp->que.fl) && (tripbp == tripbp->que.bl)); \ + tripbp->bpt = REF0; /* point to the new location */ \ + dqins(TREF(bool_targ_ptr), que, tripbp); /* queue jmplist for clean-up */ \ +} MBEND + #endif /* FULLBOOL_H_INCLUDED */ diff --git a/sr_port/gdeinitsz.m b/sr_port/gdeinitsz.m index 7f13763..c56ad6a 100644 --- a/sr_port/gdeinitsz.m +++ b/sr_port/gdeinitsz.m @@ -2,14 +2,14 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; -; Generated by scantypedefs.m at 11:57:59 on 2017-12-18 +; Generated by scantypedefs.m at 10:26:02 on 2018-01-13 ; Build done with GT.M version: GT.M V6.3-002 Linux x86 ; ; Environment variables during run: ; $gtm_dist: /usr/library/V63002/dbg -; $gtm_exe: /usr/library/V63003/dbg -; $gtm_src: /usr/library/V63003/src -; $gtm_inc: /usr/library/V63003/inc +; $gtm_exe: /usr/library/V63003A/dbg +; $gtm_src: /usr/library/V63003A/src +; $gtm_inc: /usr/library/V63003A/inc ; ; Note this file should not be manually invoked ; diff --git a/sr_port/gtm_libaio.h b/sr_port/gtm_libaio.h index a346ef1..042f305 100644 --- a/sr_port/gtm_libaio.h +++ b/sr_port/gtm_libaio.h @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2016-2017 Fidelity National Information * + * Copyright (c) 2016-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * @@ -65,11 +65,21 @@ struct aiocb { /* This struct mimics the structure of struct iocb, but adds a few fields * to the end for our own use. See ::struct iocb. + * Note: that Linux v4.14 typedef'ed aio_rw_flags like so. + * typedef int __bitwise __kernel_rwf_t; */ struct aiocb { /* kernel-internel structure, mirrors struct iocb */ __u64 aio_data; - __u32 PADDED(aio_key, aio_reserved1); +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) + __u32 aio_key; /* the kernel sets aio_key to the req # */ + int __bitwise aio_rw_flags; /* RWF_* flags */ +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) + int __bitwise aio_rw_flags; /* RWF_* flags */ + __u32 aio_key; /* the kernel sets aio_key to the req # */ +#else +#error edit for your odd byteorder. +#endif __u16 aio_lio_opcode; __s16 aio_reqprio; __u32 aio_fildes; @@ -92,10 +102,12 @@ struct aiocb { #define IF_LIBAIO(x) x #define IF_LIBAIO_ELSE(x,y) x -/* linux/aio_abi.h provides PADDED to define the above struct, but this collides with - * our personal #define which means something completely different. +#ifdef PADDED +/* linux/aio_abi.h provides PADDED until Linux v4.14 to define the above struct, but + * this collides with our personal #define which means something completely different. */ #undef PADDED +#endif #endif /* USE_LIBAIO */ #endif /* GTM_LIBAIO_H_INCLUDED */ diff --git a/sr_port/resolve_ref.c b/sr_port/resolve_ref.c index 816f2f3..5eb3f65 100644 --- a/sr_port/resolve_ref.c +++ b/sr_port/resolve_ref.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * @@ -294,16 +294,13 @@ void resolve_tref(triple *curtrip, oprtype *opnd) triple *tripref; tbp *tripbp; - if (OC_PASSTHRU == (tripref = opnd->oprval.tref)->opcode) /* note the assignment */ - { + while (OC_PASSTHRU == (tripref = opnd->oprval.tref)->opcode) /* note the assignment */ + { /* As many OC_PASSTHRUs as are stacked, we devour */ + COMPDBG(PRINTF(" ** Passthru replacement: Operand at 0x%08lx replaced by operand at 0x%08lx\n", + (unsigned long)opnd, (unsigned long)&tripref->operand[0]);); assert(TRIP_REF == tripref->operand[0].oprclass); - do - { /* As many OC_PASSTHRUs as are stacked, we will devour */ - *opnd = tripref->operand[0]; - } while (OC_PASSTHRU == (tripref = opnd->oprval.tref)->opcode); /* note the assignment */ + *opnd = tripref->operand[0]; } - COMPDBG(PRINTF(" ** Passthru replacement: Operand at 0x%08lx replaced by operand at 0x%08lx\n", - (unsigned long)opnd, (unsigned long)&tripref->operand[0]);); tripbp = (tbp *)mcalloc(SIZEOF(tbp)); tripbp->bpt = curtrip; dqins(&opnd->oprval.tref->backptr, que, tripbp); diff --git a/sr_unix/generate_help.csh b/sr_unix/generate_help.csh index 197a800..12fdcee 100644 --- a/sr_unix/generate_help.csh +++ b/sr_unix/generate_help.csh @@ -55,6 +55,8 @@ foreach hlp (${hlpdir}/*.hlp) continue endif + echo "Generating ${prefix}help.gld and ${prefix}help.dat" + # Either help info does not exist or needs to be regenerated # Define the global directory with the same prefix as the HLP file and @@ -92,27 +94,21 @@ GTM_in_gtmhelp continue endif if ("gtm" == "$prefix") then - $gtm_exe/mumps -run GTMDEFINEDTYPESTODB + ${gtm_dist}/mumps -run GTMDEFINEDTYPESTODB if ($status) then @ script_stat++ echo "generatehelp-E-hlp, Error during GTMDEFINEDTYPESTODB ${hlp}" $errout continue endif endif - set oldgld=$gtmgbldir - foreach x (${gtm_dist}/*.gld) - setenv gtmgbldir "$x" - echo "Setting read-only for $x regions" - $gtm_exe/mupip set -read_only -acc=MM -reg "*" >& /dev/null - end + echo "Setting read-only for ${gtm_dist}/${prefix}help.{gld,dat} regions" + ${gtm_dist}/mupip set -read_only -acc=MM -reg "*" >& /dev/null chmod ugo-x ${gtm_dist}/${prefix}help.{gld,dat} - setenv gtmgbldir $oldgld end # Restore read-only status if ($?restorePerms) then chmod ${restorePerms} ${gtm_dist} - $gtm_exe/mupip set -read_only -reg "*" endif exit ${script_stat} diff --git a/sr_unix/gt_timers.c b/sr_unix/gt_timers.c index eb5753e..857c9db 100644 --- a/sr_unix/gt_timers.c +++ b/sr_unix/gt_timers.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * @@ -602,18 +602,20 @@ STATICFNDEF void start_first_timer(ABS_TIME *curr_time) while (timeroot) { eltime = sub_abs_time((ABS_TIME *)&timeroot->expir_time, curr_time); - /* If nothing has expired yet, break. */ - if (((0 <= eltime.at_sec) && !((0 == eltime.at_sec) && (0 == eltime.at_usec))) || (0 < timer_stack_count)) + if (((0 <= eltime.at_sec) && !((0 == eltime.at_sec) && (0 == eltime.at_usec)))) + { /* Timer isn't due yet, so set signal to fire at proper time. */ + deferred_timers_check_needed = FALSE; + SYS_SETTIMER(timeroot, &eltime); break; + } + else if (0 < timer_stack_count) + { /* Timer has expired, but we can't fire it now, so defer. */ + deferred_timers_check_needed = TRUE; + break; + } /* Otherwise, drive the handler. */ timer_handler(DUMMY_SIG_NUM); } - /* Do we still have a timer to set? */ - if (timeroot) - { - deferred_timers_check_needed = FALSE; - SYS_SETTIMER(timeroot, &eltime); - } } else if (0 < safe_timer_cnt) { /* There are some safe timers on the queue. */ tpop = (GT_TIMER *)timeroot; diff --git a/sr_unix/gtmhelp.m b/sr_unix/gtmhelp.m index 042ba0a..bfe859e 100644 --- a/sr_unix/gtmhelp.m +++ b/sr_unix/gtmhelp.m @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; -; Copyright (c) 2002-2017 Fidelity National Information ; +; Copyright (c) 2002-2018 Fidelity National Information ; ; Services, Inc. and/or its subsidiaries. All rights reserved. ; ; ; ; This source code contains the intellectual property ; @@ -40,7 +40,7 @@ again set:$data(COUNT) subtopic="" ; comes back to here and clears a quit ; parse(subtopic) ; organize space-delimited input memes into a topic hierarchy - new (subtopic,NEW,COUNT,TOPIC) + new (pio,subtopic,NEW,COUNT,TOPIC) set NEW=0 for i=1:1:$length(subtopic," ") set x=$piece(subtopic," ",i) if x'="" do . set COUNT=COUNT+1,NEW=NEW+1 @@ -49,7 +49,7 @@ parse(subtopic) ; organize space-delimited input memes into a topic hierar quit ; display ; do the real work - new (COUNT,IO,MATCH,NEW,NOTFOUND,PROMPT,TOPIC) + new (pio,COUNT,IO,MATCH,NEW,NOTFOUND,PROMPT,TOPIC) if $get(TOPIC(COUNT))="?" set COUNT=COUNT-1 ; refresh choices on the same topic (leve) write # if $$MATCH do ; look up the topic @@ -88,7 +88,7 @@ display ; do the real work quit ; print(ref,i); ; text output function - new (ref,i,MATCH,COUNT) + new (pio,ref,i,MATCH,COUNT) write !,@ref set y="" for set y=$order(@ref@(y)) quit:(y="s")!(y="") do @@ -110,7 +110,7 @@ print(ref,i); ; text output function quit ; recursiv(ref,level) ; - new (COUNT,TOPIC,ref,MATCH,level,PROMPT,FLAG) + new (pio,COUNT,TOPIC,ref,MATCH,level,PROMPT,FLAG) set level=level+1 if ($extract(TOPIC(level))="-")&($get(FLAG)'=1) do . set FLAG=1 @@ -141,7 +141,7 @@ recursiv(ref,level) ; . quit quit qualifiers(ref) ; qualifier lister - new (ref) + new (pio,ref) if $data(@ref)>1 do . set ref=$name(@ref@("s")),x="-" . for set x=$order(@ref@(x)) quit:x=""!($extract(x)'="-") do:($extract(^(x))="-") @@ -163,7 +163,7 @@ error ; Error handler called by $etrap quit MATCH() ; return array MATCH containing all global references that match ; the TOPIC array. - new (TOPIC,COUNT,MATCH,PROMPT) + new (pio,TOPIC,COUNT,MATCH,PROMPT) set QUALIFIERS=0 if COUNT=0 set MATCH=1 set MATCH(1)="^HELP" if COUNT'=0 do @@ -189,7 +189,7 @@ COLUMNS(subref,x) if $x+12>$$WIDTH write ! quit "" PROMPT() - new (COUNT,TOPIC,PROMPT) + new (pio,COUNT,TOPIC,PROMPT) write !! set ref="^HELP" for i=1:1:COUNT do diff --git a/sr_unix/kitstart.csh b/sr_unix/kitstart.csh index 7391019..1391e9b 100644 --- a/sr_unix/kitstart.csh +++ b/sr_unix/kitstart.csh @@ -1,7 +1,7 @@ #!/usr/local/bin/tcsh ################################################################# # # -# Copyright (c) 2011-2017 Fidelity National Information # +# Copyright (c) 2011-2018 Fidelity National Information # # Services, Inc. and/or its subsidiaries. All rights reserved. # # # # This source code contains the intellectual property # @@ -380,6 +380,7 @@ if (-f $gtm_tools/gtmpcat.m) then $package $dist_file gtmpcat.m $fldbld install_gtmpcat.sh gtmpcat.sh || exit 10 chown ${prev_user}:${prev_group} gtmpcat.m $fldbld chmod ${prev_perm} gtmpcat.m $fldbld + rm -f gtmpcat.sh install_gtmpcat.sh echo "" echo "Gzipping $dist_file" gzip $dist_file || exit 11 diff --git a/sr_x86_64/GTMDefinedTypesInitDebug.m b/sr_x86_64/GTMDefinedTypesInitDebug.m index 7d7af76..df5536e 100644 --- a/sr_x86_64/GTMDefinedTypesInitDebug.m +++ b/sr_x86_64/GTMDefinedTypesInitDebug.m @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; -; Copyright (c) 2010-2017 Fidelity National Information ; +; Copyright (c) 2010-2018 Fidelity National Information ; ; Services, Inc. and/or its subsidiaries. All rights reserved. ; ; ; ; This source code contains the intellectual property ; @@ -11,14 +11,14 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; -; Generated by scantypedefs.m at 11:50:44 on 2017-12-18 +; Generated by scantypedefs.m at 11:25:23 on 2018-01-13 ; Build done with GT.M version: GT.M V6.3-002 Linux x86_64 ; ; Environment variables during run: ; $gtm_dist: /usr/library/V63002/dbg -; $gtm_exe: /usr/library/V63003/dbg -; $gtm_src: /usr/library/V63003/src -; $gtm_inc: /usr/library/V63003/inc +; $gtm_exe: /usr/library/V63003A/dbg +; $gtm_src: /usr/library/V63003A/src +; $gtm_inc: /usr/library/V63003A/inc ; ; Note this file should not be manually invoked ; diff --git a/sr_x86_64/GTMDefinedTypesInitRelease.m b/sr_x86_64/GTMDefinedTypesInitRelease.m index 1214901..895d971 100644 --- a/sr_x86_64/GTMDefinedTypesInitRelease.m +++ b/sr_x86_64/GTMDefinedTypesInitRelease.m @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; -; Copyright (c) 2010-2017 Fidelity National Information ; +; Copyright (c) 2010-2018 Fidelity National Information ; ; Services, Inc. and/or its subsidiaries. All rights reserved. ; ; ; ; This source code contains the intellectual property ; @@ -11,14 +11,14 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; -; Generated by scantypedefs.m at 11:49:18 on 2017-12-18 +; Generated by scantypedefs.m at 11:23:22 on 2018-01-13 ; Build done with GT.M version: GT.M V6.3-002 Linux x86_64 ; ; Environment variables during run: ; $gtm_dist: /usr/library/V63002/pro -; $gtm_exe: /usr/library/V63003/pro -; $gtm_src: /usr/library/V63003/src -; $gtm_inc: /usr/library/V63003/inc +; $gtm_exe: /usr/library/V63003A/pro +; $gtm_src: /usr/library/V63003A/src +; $gtm_inc: /usr/library/V63003A/inc ; ; Note this file should not be manually invoked ; diff --git a/sr_x86_64/cmerrors_ctl.c b/sr_x86_64/cmerrors_ctl.c index 3d09df6..11fb5d8 100644 --- a/sr_x86_64/cmerrors_ctl.c +++ b/sr_x86_64/cmerrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_x86_64/cmierrors_ctl.c b/sr_x86_64/cmierrors_ctl.c index 4ff26bf..75c8f04 100644 --- a/sr_x86_64/cmierrors_ctl.c +++ b/sr_x86_64/cmierrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_x86_64/gdeerrors_ctl.c b/sr_x86_64/gdeerrors_ctl.c index 863750e..eed1b5f 100644 --- a/sr_x86_64/gdeerrors_ctl.c +++ b/sr_x86_64/gdeerrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_x86_64/merrors_ansi.h b/sr_x86_64/merrors_ansi.h index c5a88fa..204c51d 100644 --- a/sr_x86_64/merrors_ansi.h +++ b/sr_x86_64/merrors_ansi.h @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_x86_64/merrors_ctl.c b/sr_x86_64/merrors_ctl.c index 4dd350c..74a9179 100644 --- a/sr_x86_64/merrors_ctl.c +++ b/sr_x86_64/merrors_ctl.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property * diff --git a/sr_x86_64/ttt.c b/sr_x86_64/ttt.c index 027ebae..eaa5cdf 100644 --- a/sr_x86_64/ttt.c +++ b/sr_x86_64/ttt.c @@ -1,6 +1,6 @@ /**************************************************************** * * - * Copyright (c) 2001-2017 Fidelity National Information * + * Copyright (c) 2001-2018 Fidelity National Information * * Services, Inc. and/or its subsidiaries. All rights reserved. * * * * This source code contains the intellectual property *