www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2021/02/07/18:52:48

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-CMAE-Analysis: v=2.4 cv=MJKlJOVl c=1 sm=1 tr=0 ts=60207863
a=+cj0cO56Fp8x7EdhTra87A==:117 a=OUiuIHZsXbKyaeOEd2QfuA==:17
a=9+rZDBEiDlHhcck0kWbJtElFXBc=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19
a=IkcTkHD0fZMA:10 a=qa6Q16uM49sA:10 a=P-IrANrGqaeWobxoWtoA:9 a=QEXdDO2ut3YA:10
X-SECURESERVER-ACCT: glimrick AT epilitimus DOT com
X-Original-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=epilitimus.com; s=default; h=Content-Transfer-Encoding:Content-Type:
MIME-Version:Date:Message-ID:Subject:From:To:Sender:Reply-To:Cc:Content-ID:
Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
List-Subscribe:List-Post:List-Owner:List-Archive;
bh=pXSd3iVCOJvOShLayIKUvPYwHKvCcYtt1Lhnf0c9EeQ=; b=RJM4uDontoxNeixo894dPeVSUJ
yww6WIS+wCVDll1wI+y7kTjz2P185ldOf7OuKqC0oFjdiyCX17UZHAo2/S86niX1ETT4z8Z1EpA7v
HAQRB9wY+/UZdsZmlulY5j+pR2LrxI9QJN1m09mXeNJz2li9OiYJZHnUX/yRt8IL+769jWnc73sQT
eqThgI3Z2CxHOcL8LjX/Vvvaf6ztsm6KrY4DWZj1NMPjp1lGkpTjFR9C/L9OKumMvDMyDV36z1hMe
FzOzmCvHsIvO0ArJHSYwufvv6+3XF1pIcVyxUiopTuk/4HsNd0YtvyelEmyY7b3R93Wg2JrAqv23k
SOvPZ/XQ==;
To: geda-user ailing list <geda-user AT delorie DOT com>
From: "Glenn (glimrick AT epilitimus DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
Subject: [geda-user] Freaky bug alternative
Message-ID: <02684899-7aa9-bea5-0a67-7414295cb838@epilitimus.com>
Date: Sun, 7 Feb 2021 15:31:49 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
Firefox/60.0 SeaMonkey/2.53.3
MIME-Version: 1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - a2plcpnl0121.prod.iad2.secureserver.net
X-AntiAbuse: Original Domain - delorie.com
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - epilitimus.com
X-Get-Message-Sender-Via: a2plcpnl0121.prod.iad2.secureserver.net: authenticated_id: glimrick AT epilitimus DOT com
X-Authenticated-Sender: a2plcpnl0121.prod.iad2.secureserver.net: glimrick AT epilitimus DOT com
X-Source:
X-Source-Args:
X-Source-Dir:
X-CMAE-Envelope: MS4xfP+cfSVV2Aqmq6gh5x57BvlrvmMkCvxpry3sAV26ZGmPaZ+PDOXnZJTyXDlN6YG/E5362Yxkgp2tHfRbw6oESURnHeTyhq/4LTUx41j3D2OeyMTsGYHV
yf08yMY3c5ljF4M9inesaHLAEqknuoSamo/qawRAPM2JPac3VfZZLXuSHyiTPyT/oQ5DUZRbHgajZyD6rAozTz7jihKISD3smteBVM2lY4F0DoX5xX8evSp0
Reply-To: geda-user AT delorie DOT com

Roland,
See if this reasoning works for you.

Recursion is a fatal error because there is no way to resolve the
recursed sheets into actual components. Since there is no way to resolve
the sheets we must conclude that the internal state is unstable and
irreparable. When we detect recursion we call sheet.error which sets the
error flag. So if after completing the sheet traversal the error flag is
set we terminate processing at that point rather than attempt post
processing which is where the freaky bug occurs.

Yes this terminates processing early so there may be errors which will
show up later, but we don't have to do any special processing to handle
a bug which is effectively the result of attempting to process input
which we already know is invalid. And when we do move into the post
processing stage we are doing so with an internal state we have a
reasonable expectation of being usable, which means the bug doesn't happen.

A variant of the above is we could make a distinction between errors and
fatal errors, like recursion, This would require an additional flag, and
possibly adding a 'is_fatal' parameter to the error function, have it
default to false so no other code needs to be changed.

Glenn

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019