From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: John Yates Newsgroups: gmane.emacs.devel Subject: Re: inlinable functions instead of macros Date: Sat, 18 Aug 2012 18:55:14 -0400 Message-ID: References: <502EDAF3.6030005@cs.ucla.edu> <503013F0.1020300@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: ger.gmane.org 1345330524 13232 80.91.229.3 (18 Aug 2012 22:55:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 18 Aug 2012 22:55:24 +0000 (UTC) Cc: Paul Eggert , Stefan Monnier , emacs-devel@gnu.org To: Daniel Colascione Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Aug 19 00:55:23 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1T2rvM-0007BO-Ml for ged-emacs-devel@m.gmane.org; Sun, 19 Aug 2012 00:55:20 +0200 Original-Received: from localhost ([::1]:44473 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T2rvL-0000l8-B7 for ged-emacs-devel@m.gmane.org; Sat, 18 Aug 2012 18:55:19 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:48191) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T2rvI-0000ks-QB for emacs-devel@gnu.org; Sat, 18 Aug 2012 18:55:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T2rvH-0007JJ-Sq for emacs-devel@gnu.org; Sat, 18 Aug 2012 18:55:16 -0400 Original-Received: from mail-vc0-f169.google.com ([209.85.220.169]:59706) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T2rvH-0007JC-PI for emacs-devel@gnu.org; Sat, 18 Aug 2012 18:55:15 -0400 Original-Received: by vcbfl10 with SMTP id fl10so4633526vcb.0 for ; Sat, 18 Aug 2012 15:55:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=fpjLlyMjMVWu/3RymraIIrKyH9Sw93QNYpU4XqHr/Iw=; b=rxNVlqUOGD0g+1yVxzQtGz19eUYvHdh5GS7hXZ9h/9CzEztDjXFBTutHRmcNYo+aLL F2t3F+/zu1PNErgOJmS6DFsmKbgku3hOFHFGDOnUzo3FJqB+SwzOFHHBMLSAmBzgtkmC iRVY2hnSD6AXLlx6Y4F9j22lBVf3LRb2F2UGL3f6bTc0i9of4FpjNHYqGsMClGdwxffv rj/idYdBLjQffvlNSmOdAsUWX9vjcPyXqPGyajOPTKyNUX8yJ5IRtM+Gb7irgQ4YLdsA bSNZvuoViOcgVAASrjSADZYVRXDqhaOnxgSJC6HidALEynwDp6inag62LTa+4yqpdFn0 PhPw== Original-Received: by 10.52.95.225 with SMTP id dn1mr5253498vdb.99.1345330514744; Sat, 18 Aug 2012 15:55:14 -0700 (PDT) Original-Received: by 10.58.246.70 with HTTP; Sat, 18 Aug 2012 15:55:14 -0700 (PDT) In-Reply-To: <503013F0.1020300@dancol.org> X-Google-Sender-Auth: LcZr0Yky0SfofOrAIhLjRTyD82E X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.220.169 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:152651 Archived-At: On Sat, Aug 18, 2012 at 6:15 PM, Daniel Colascione wrote: > > On Windows, we solved this problem a long time ago by teaching the > operating system itself how to walk stack frames. When a program > crashes, the OS captures a minidump containing the faulting stack, > instruction pointer, register contents, and (optionally) things like > data segments. If you have one of these minidumps, you don't need > particularly good assertion-failure output: you have everything you > need in the minidump, which you can load into the debugger and examine. And even before that Vax/VMS solved the problem by capturing a stack trace every time a signal was propagated (including of course ACCVIO or access violation, the equivalent of SEGV). A shell setting controlled whether the trace was displayed by default of not. Even if one choose not to display it by default it was always available by explicit request. VMS coding conventions encouraged failure notification via signalling and required a signal handler to use a subsystem specific status when propagating a signal. This lead to very informative stack traces consisting of call sites interspersed with local statuses showing how failure was interpreted and reported as it propagated up the stack. /john