From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.42.153.202 with SMTP id n10mr37750797icw.21.1432654715267; Tue, 26 May 2015 08:38:35 -0700 (PDT) X-Received: by 10.140.96.137 with SMTP id k9mr57654qge.10.1432654715139; Tue, 26 May 2015 08:38:35 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!news.glorb.com!j8no9778003igd.0!news-out.google.com!4ni57qgh.1!nntp.google.com!z60no3936481qgd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 26 May 2015 08:38:34 -0700 (PDT) In-Reply-To: <20c56bea-2803-4aa9-a626-2d25e480df20@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=105.237.62.132; posting-account=orbgeAkAAADzWCTlruxuX_Ts4lIq8C5J NNTP-Posting-Host: 105.237.62.132 References: <127b004d-2163-477b-9209-49d30d2da5e1@googlegroups.com> <59a4ee45-23fb-4b0e-905c-cc16ce46b5f6@googlegroups.com> <46b2dce1-2a1c-455d-b041-3a9d217e2c3f@googlegroups.com> <3277d769-6503-4c7f-885f-3a730762b620@googlegroups.com> <9fa68fb7-89f0-42b3-8f25-20e70cb34d63@googlegroups.com> <87egm3u662.fsf@adaheads.sparre-andersen.dk> <20c56bea-2803-4aa9-a626-2d25e480df20@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Build language with weak typing, then add scaffolding later to strengthen it? From: jan.de.kruyf@gmail.com Injection-Date: Tue, 26 May 2015 15:38:35 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:26011 Date: 2015-05-26T08:38:34-07:00 List-Id: Here is a follow up to my previous post: I happen to find the system TRAP list of native Oberon for pc. (so not the latest version 07) If my memory serves me right the compiler was written for a master thesis at eth. It is not a military strength compiler obviously, but for industrial use it has proven itself. A trap would automatically give a stack trace. the location could be found back by compiling with debug info. Georg, please note TRAP2 :) Perhaps we are here just discussing 25 years after the fact. And perhaps the language report is what it is to encourage the discussion which led to this: -------------------------------------------- Trap numbers fall into the following ranges: Traps -39 to -32 are generated by the floating-point unit of the processor. By default floating-point checks are disabled and the special overflow and error values INF and NaN are generated (see module Reals). Traps -31 to 0 are generated by the processor. Traps 1 to 10 are generated by compiler-inserted checks. Traps 11 to 19 are generated by system modules. Traps 20 and above are generated by HALT or ASSERT statements. More detailed information about specific traps: TRAP -35 Floating-point stack fault: The floating-point unit made an incorrect memory reference. TRAP -34 Floating-point operation invalid: The floating-point stack overflowed or underflowed, or an invalid arithmetic operand was encountered (disabled by default). TRAP -33 Floating-point overflow: Caused by an arithmetic overflow (disabled by default). TRAP -32 Floating-point division by 0: Caused by an attempt to divide by 0 (disabled by default). TRAP -16 Floating-point error: Generic floating-point error. TRAP -14 NIL reference / Stack overflow / Page fault: An incorrect memory reference occured. This could be the result of a NIL pointer reference or a stack overflow. TRAP -13 General protection fault: This is a generic exception generated by the processor. Refer to the processor documentation for more information. TRAP -12 Stack overflow: An incorrect memory reference occured in a stack segment. TRAP -6 Invalid instruction: An invalid machine instruction was encountered. This could be the result of a corrupted module in the heap. TRAP -4 Overflow: An integer overflow. These checks are disabled by default and can be enabled with the \v switch of the compiler. TRAP 0 Division by zero: A DIV (or MOD) by 0 occured, or the result of a divide was too big for the destination type. TRAP 1 WITH guard failed: The type guard in a WITH statement failed (can be disabled with the \t compiler switch). TRAP 2 CASE invalid: A CASE expression evaluated to a value that has no label, and the CASE has no ELSE clause. TRAP 3 RETURN missing: A function procedure ended without a RETURN statement. TRAP 4 Overflow: See TRAP -4. TRAP 5 Implicit type guard failed: An implicit type guard generated as part of an assignment failed (can be disabled with the \t compiler switch). TRAP 6 Type guard failed: An explicit type guard failed (can be disabled with the \t compiler switch). TRAP 7 Index out of range: An array index was out of range (can be disabled with the \x compiler switch). TRAP 8 ASSERT failed: A programmed ASSERT statement failed (can be disabled with the \a compiler switch). TRAP 9 Array dimension error: A dynamically computed array dimension was incorrect (e.g. negative dimension in a NEW). TRAP 13 Keyboard interrupt: A keyboard interrupt was generated with Ctrl-Break. TRAP 14 Out of memory: The requested memory allocation (NEW) could not be fulfilled. TRAP 15 Bad sector number: An incorrect sector number was detected. This could be the result of an error with on-disk file system structures, or memory corruption. TRAP 16 Disk full: The disk is almost full. Reboot to have the disk garbage collector run during startup. TRAP 17 Disk error: The disk driver encountered a hardware error. The local variable "err" or "res" contains further information. TRAP 18 File too large: A file was generated that is too large for the file system. TRAP 19 Buffer overflow: Generated by Files.ReadBytes and WriteBytes if the supplied buffer is too small. ------------------------------------------- cheers, j.