09/21/87 linus Known errors in the current release of linus. # Associated TR's Description 125 phx20848 Yes, it is true that it outputs a new page character after the report. This was intentionally done this way. Now that hardcopy terminals aren't used much, it seems that perhaps this wasn't the best choice, and a better way to do this would be to surpress the FF. 123 phx20420 The linus display request prints a confusing error message under certain circumstances. If a user types "display -of foo" and it finds data, and then after inputting a different selection expression that doesn't find data types "display -of foo", there will be two error messages printed. The first states that there was no data found, and the second states that the partial report can be found in [pd]>foo. This is because linus_display.pl1 is testing report_control_info.no_of_formatted_pages > 0 and printing the error message based on that. 122 phx20325 When using the report writer, a case arises where grouped columns are incorrectly outlined. This happens when subtotals are being emitted because the value of a major grouping column has changed. Minor grouping columns up to the column being watched should not be outlined when this happens. The bug was that the code was still outlining when the current value and the next value were the same. The fix is to change it not to attempt outlining after the major column changes. 121 phx18362 The problem is that LINUS is messing up when it passes in the relation names in the -range clause (when it call dsl_$retrieve). For the test case in the TR, the following argument list was received by dsl_$retrieve. Ignore args 4 and 5, they are output and so haven't been initialized yet. The problem is that arg 3 should have been "A1", or else "A1" should have been put in the -range clause. ARG 1 @ 503|0 = 1 ARG 2 @ 433|65706 = "-range (e1 .V.) (e2 A1) -select e1.nom_etudiant e2.nom_etudiant -where e1.annee = e2.annee" ARG 3 @ 433|102 = 1 ARG 4 @ 433|103 = "^@^@^@^@^@@^@^@^@^@@^@^@^@^@@^@^@^@^@" ARG 5 @ 433|106(27) = "@^@^@^@^@@^@^@^@^@@^@^@^@^@@^@^@^@^@" ARG 6 @ 746|202 = 0 120 phx19416 The info segment for the set_mode request incorrectly shows the linus prompt as "?". 116 phx19041 Entry #43 talks about fixing the sum and avg builtins to accept character data-type arguments that can be converted to numbers, as a result of the very old TR 9259. The person didn't bother fixing the max and min bultins, as the new phx19041 points out. I checked out all of the other builtins and the rest work fine. Whilst doing the checkout I tried feeding the sum builtin a character argument that couldn't be converted to a number, and ran into strange behavours. The mainline linus module handles the conversion condition and tried to put the user back to command level by calling its internal procedure, "tidy_up". tidy_up fails and leaves the user up one level, at command level. When the user types "release" tidy up is entered again with more strange behaviour resulting. 112 phx18619 phx18620 The invoke request is incompatible with LINUS subsystem exec_coms. This limitation needs to be documented in the LINUS manual. 111 phx18618 The linus store request was re-written to correct many outstanding TRs. Some improvements were made to it as part of this process. One such improvement was that it counts the number of characters provided for a column, and checks this against the column width as defined in the submodel. If too many characters were provided, it prints a warning message something like: Warning: The 15 characters just received will be truncated to 5. TR18618 complains that the modify request doesn't also do this. The solution is to upgrade the modify request to provide this feature. 110 phx18602 The sub_error_ handler in linus.pl1 does a non-local goto after verifying that it was mrds that signalled the condition. It should also verify that it was a linus module that called dsl_. This should be done by setting a flag in the lcb before each dsl_ call, and resetting the flag after the call is complete. The sub_error_ handler should check the flag and call continue_to_signal_ if it isn't on. If it is on, it should turn the flag off before doing the non-local goto. There appears to be about 49 calls to dsl_ scattered through 22 linus modules. 108 phx15909 The same temp table can't be used twice in a lila select experssion. This is because in linus_lila_get_token, the second time the relation is looked for it is found in linus_rel_table. Since it is in the rel_table, linus assumes it is a MRDS perm. rel. The fix is to add a bit to rel_table that says the relation was orignally a temp relation. A select like the following will fail. select * from a:temp_table b:temp_table where a.one = b.one & a.two = 5 & b.two = 6 106 phx17746 When a user has a select that looks like select name from employee where city = {select city from employee where state = "ca" differ select city from employee where state = "az"} it gets detected as an invalid statement at the "differ" token. The parser thinks the only valid thing at that point is "}", and that's why it gives the error when it hits "differ". Investigation is required to determine if the parser is correct, or if this should be a valid statement. 104 phx16087 When iteration is turned off and the user has entered a modify request like "modify (salary+salary) -brief", it works fine. When the user types "modify (salary + salary) -brief", the -brief isn't detected. This is because the code that tries to combine "(salary + salary)" into one argument isn't working correctly. 092 phx15155 The formatting_options.gi should point the reader to sfo.info for a detailed description of each formatting option, and point the reader to lsfo.info for a brief description of each formatting option. 091 phx14897 All of the calls to assign_ in dsl_ and mrds_call were changed to assign_round_ so that values like "45.647" stored into a domain of fixed dec (7,2) were converted to 45.65 instead of 45.64. None of the assign_ entries in linus were changed to assign_round_, making the conversion rules of these two co-operating systems different. All of the assign_ calls have to be examined and changed to assign_round_ if appropriate. 083 phx15052 phx20596 The NOT operator doesn't work to negate a parenthesized experssion in the selection expression. It gives no error either and seems to be simply ignored. 075 (EXL only) If the command line contains a macro path or the -rq string contains an invoke request, and if prompting is on, 2 prompts are printed upon reaching request level. 010 The following is a list of static variables used in linus that should be removed so that linus may be recursively invoked: linus.pl1 recursed linus_builtin_.pl1 caound_calc set_fn_real_flaf data_calc(1 2 3 4) linus_lila_get_token.pl1 debug_switch linus_modify.pl1 debug_switch linus_retrieve.pl1 ANOTHER_PTR debug_switch linus_store.pl1 buff_len in_buf_ptr 009 While the print request apparently will print all of large strings, create_list and write and report apparently don't. This problem was reported to be by Mary Ward, after encountering some difficulty with her requirements database. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved