|
Thought this might be of interest. Send responses to farr@ca.ibm.com >X-From_: farr@ca.ibm.com Tue Jan 5 14:11:29 1999 >From: farr@ca.ibm.com >Date: Tue, 5 Jan 1999 14:08:28 -0500 >Subject: RPG IV Enhancements for this and futiure releases!!! >Content-Disposition: inline > > > >PLEASE PASS THIS ON TO ANYONE ELSE WHO MIGHT BE INTERESTED: > >This is your chance to influence what goes in the next or future releases >of the RPG IV product. DON'T MISS THIS CHANCE. An opportunity >of a life time. > >You have $100 to spend. Fill your shopping cart with up to $100 worth of >the following enhancements. If you have enough money, you can buy an item >more than once to indicate that it is a high-priority for you. Be careful >not to spend more than $100. If you do, your response may not be counted. > >IBMers: Yes, you can vote as well. This is for internal IBM users as well. > >Please respond with a table something like this (created by editing the >list): > >Price|Item| Item > |Num | >-----+----+---------------------------------------------------------------- >$4 |3 | Factor 1 *EXTFMT for MOVE/MOVEL/TEST indicating that the >$8 |7 | Bitwise operations in expressions. > >$20 |9 | MONITOR operation group > >$2 |12 | Extender on SORTA to reverse the order of sorting. >$8 |13 | New keyword LIKEDS(dsname) PREFIX(pfx : nbr_char_replaced) >$2 |16 | ELSEIF opcode. >$4 |17 | Keylists in D specs. >$20 |24 | Allow dynamic resizing of standalone arrays or overlay arrays. > >$20 |24 | Allow dynamic resizing of standalone arrays or overlay arrays. > >$4 |26 | New keyword, RECPREFIX, to prefix record-format names to >$8 |8 | Date/time/timestamp operations in expressions. ie: > >-----+----+----------------------------------------------------------- >$100 (total) > > > >Price|Item| Item > |Num | >-----+----+---------------------------------------------------------------- >$6 |1 | Run-time control of actual file to be opened by an F spec > | | keyword. > | | > | | FILENAME(name) > | | where the name is a field or literal in one of these > | | formats (lib can be '*LIBL', and mbr can be '*FIRST') > | | - lib/file(mbr) > | | - lib/file > | | - file(mbr) > | | - file >-----+----+------------------------------------------------------------- >$4 |2 | H-spec keyword EXTDEFS to indicate that the internal format > | | of a field should be the same as the external format. This > | | would mean that all external formats for fields must be > | | the same. (This would be a problem for programs that have > | | a field defined as packed in the database but zoned in the > | | display file.) >-----+----+------------------------------------------------------------- >$4 |3 | Factor 1 *EXTFMT for MOVE/MOVEL/TEST indicating that the > | | date/time format for the character or numeric value > | | should be the same as the external format of the date/time > | | field. This implies that for that date/time field, all > | | external formats must be the same. >-----+----+--------------------------------------------------------------- >$4 |4 | %INT(char expression) and %FLOAT(char expression) > | | Return the integer or float value of an expression. > | | Example: eval i = %INT('123') > | | ===> i = 123 > | | eval x = %FLOAT('123.4') > | | ===> x = 1.123e2 > | | eval x = %FLOAT('-1.25E27') > | | ===> x = -1.25e27 >-----+----+--------------------------------------------------------------- >$100 |5 | Full free-form calculations (no new function, syntax only) >-----+----+--------------------------------------------------------------- >$12 |6 | Allow specification of the values allowed for a field with > | | D spec keywords RANGE and VALUES. > | | > | | Example: > | | D temp S 10i 0 range(-40 : 120) > > | | D sex S 1a values('M':'F') > > | | > > | | If a value is assigned that is not correct, an exception > > | | would be given. The TEST operation would be allowed for > > | | the field. > > | | If the field is used, and it has an incorrect value, an >exception > | | would be given. > >-----+----+---------------------------------------------------------------- > >$8 |7 | Bitwise operations in expressions. > > | | Allows integer/unsigned OR character operands > | | If you pick this, please indicate your preference for syntax: > > | | > > | | Infix | BIF > > | | -----------+---------------------- > > | | x andb y | %bitand(x : y) > > | | x orb y | %bitor(x : y) > > | | x xorb y | %bitxor(x : y) > > | | notb y | %bitnot(x) > | | > | | Example: x = x'01A5' = B'0000 0001 1010 0101' > | | y = x'11B3' = B'0001 0001 1011 0011' > | | > | | x andb y = x'01A1' = B'0000 0001 1010 0001' > | | x orb y = x'11B7' = B'0001 0001 1011 0111' > | | x xorb y = x'1016' = B'0001 0000 0001 0110' > | | notb y = x'EE4C' = B'1110 1110 0100 1100' > | | > | | (Rules for unequal-length operands to be determined. Probably > | | left-padded with x'00' for numerics, right-padded with x'00' > | | for characters.) >-----+----+-------------------------------------------------------------- > >$8 |8 | Date/time/timestamp operations in expressions. ie: > > | | C EVAL dt = dt + %DAYS(23) > > | | C EVAL days = %DAYS(dt1 - dt2) > >-----+----+-------------------------------------------------------------- > >$20 |9 | MONITOR operation group > > | | If an unhandled (no E or error indicator) exception occurs > > | | in the code between the MONITOR and the first WHEN or OTHER, > > | | control branches to the first WHEN or OTHER that matches. > > | | > > | | C MONITOR > > | | C do something > > | | C can have nested MONITORs or DO/IF etc. here > > | | C do something else > > | | C WHEN namelen < 100 and status = 00100 > > | | C handle string error > > | | C WHEN status > 01000 > > | | C handle file error > > | | C OTHER > > | | C handle all other errors > | | C handle all other errors > | | C ENDMON > | | > >-----+----+------------------------------------------------------------- >$6 |10 | SORTA overarr1 : overarr2 : overarr3 > | | > | | Sort an array based on the keys in several overlaid > | | arrays. The second, third etc. arrays would be used to > | | sort elements that had equal values with earlier arrays. > | | > | | The arrays must all be arrays defined with OVERLAY over > | | the same larger array > | | > | | (Note: this enhancement can co-exist with the next - the > | | two new versions of SORTA are distinguished by the > | | presence or absence of the WITH keyword.) >-----+----+-------------------------------------------------------------- >$6 |11 | SORTA array1 : array2 : array3 WITH key_array > | | All the arrays including key_array are sorted, but the > | | sort sequence is determined by key_array > | | > | | - the arrays cannot overlay each other >-----+----+-------------------------------------------------------------- >$2 |12 | Extender on SORTA to reverse the order of sorting. > | | SORTA(A) SORTA(D). >-----+----+-------------------------------------------------------------- >$8 |13 | New keyword LIKEDS(dsname) PREFIX(pfx : nbr_char_replaced) > | | > | | Would solve the problem of not being able to prototype > | | data structure parameters, and might allow conveniently > | | defining substructures like other structures. >-----+----+---------------------------------------------------------- >$2 |14 | Allow debugging of procedure return values. > | | EVAL _QRNU_RET_procname >-----+----+---------------------------------------------------------- >$4 |15 | BIF %OCUR(mds) to query or set current occurrence of DS >-----+----+---------------------------------------------------------- >$2 |16 | ELSEIF opcode. >-----+----+---------------------------------------------------------- >$4 |17 | Keylists in D specs. >-----+----+------------------------------------------------------------ >$2 |18 | Predefined compiler directives > > | | - *AS400 or *VARPG > > | | - *V4R4M0 > > | | e.g. TGTRLS(V3R7M0) would define *V3R1M0, *V3R2M0, *V3R7M0 > > | | - maybe things like *TRUNCNBR, *ALWNULL ... > >-----+----+------------------------------------------------------------ >$16 |19 | Implement %CHECK, %CHECKR, %XLATE, %SCANR, %LOOKUP > >-----+----+------------------------------------------------------------ >$4 |20 | OPTIONS(*VARTYPE) on a parameter definition for reference > > | | parameters to bypass type checking for the parm. A pointer > > | | parm would be coded in the PI for that parameter. It would be > > | | the responsibility of the programmer to access the data using > > | | based variables of the expected types. > >-----+----+------------------------------------------------------------ >$4 |21 | Support > > | | C *RANGEYMD TEST DateField > > | | C *RANGECYMD TEST DateField > > | | to enable a check that the date is within the YMD or CYMD >range. >-----+----+------------------------------------------------------------ >$8 |22 | Enhance TEST to check validity of packed, zoned, binary, and > > | | varying length character and graphic fields. > >-----+----+------------------------------------------------------------ >$6 |23 | %repeat(character expression : total_length) > > | | The value returned from %repeat is the expression repeated > > | | enough times to fill up the length. > | | > | | Example: (res is char(10)) > | | EVAL res = %repeat('abc' : %len(res)) > | | res = 'abcabcabca' > > | | EVAL res = %repeat('abc' : 5) > > | | res = 'abcab ' > > | | > > | | Alternatively: > | | Allow multiplication of character expressions > > | | eval res = 'abc' * times_to_repeat > > | | Example: EVAL res = 'abc' * 4 > > | | 'abc' * 4 = 'abcabcabcabc' > > | | res = 'abcabcabca' > > | | > | | If you choose this item, please indicate which version you >prefer. >-----+----+----------------------------------------------------------- >$20 |24 | Allow dynamic resizing of standalone arrays or overlay arrays. > > | | This would mean that SORTA, LOOKUP and range-checking would use > > | | the new size. For based arrays, the programmer would be > > | | responsible for storage management. For non-based arrays, the > > | | compiler would handle it. > > | | > > | | D array S 10A VARDIM(initsize {: >maxsize|) > | | C EVAL %ELEM(array) = new_size > > | | > > | | "maxsize" is required for subfields. > > | | > > | | Also LHS %OCCURs for varying sized multiple-occurrence DS. >-----+----+----------------------------------------------------------- >$2 |25 | format change on a LIKE define for numerics > > | | D fld1 s 5s 0 > > | | D fld2 s p like(fld1) > >-----+----+----------------------------------------------------------- >$4 |26 | New keyword, RECPREFIX, to prefix record-format names to > > | | save having to do all the renames. > >-----+----+----------------------------------------------------------- >$4 |27 | DIM(*FIT) with overlay field. > > | | (Valid only if the array fits exactly) > >-----+----+----------------------------------------------------------- >$30 |28 | Multiple-dimension arrays >-----+----+----------------------------------------------------------- >$20 |29 | Multiple-dimension arrays supported only in expressions. > | | Besides not being allowed in fixed-form calculations, it > | | would be impossible to code these array elements in input > | | or output specifications. >-----+----+----------------------------------------------------------- > > > > >George N. Farr - farr@ca.ibm.com >RPG and Visual RPG Development manager. >RPG and Java come from the same family. It has been tested! > > > > Charlie Massoglia, Massoglia Technical Consulting, Inc. PO Box 1065, Okemos, MI 48854, USA 517-676-9700 Fax: 517-676-1006 EMAIL: cmassoglia@voyager.net * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * This is the RPG/400 Discussion Mailing List! To submit a new * * message, send your mail to "RPG400-L@midrange.com". To unsubscribe * * from this list send email to MAJORDOMO@midrange.com and specify * * 'unsubscribe RPG400-L' in the body of your message. Questions should * * be directed to the list owner / operator: david@midrange.com * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.