Message 97

Re: 15-721: Assignment 3, destructors and error handling

X-Added: With Flames (bblib $Revision: 1.4 $)
Return-path: <spapadim+@cs.cmu.edu>
X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail
Received: from po0.andrew.cmu.edu via trymail for bb+academic.cs.15-721@andrew.cmu.edu
          ID </afs/andrew.cmu.edu/usr0/bb/Mailbox/Uvp5EMK00UdY4iY04=>;
          Mon, 22 Oct 2001 13:15:04 -0400 (EDT)
Received: from mx3.andrew.cmu.edu (MX3.ANDREW.CMU.EDU [128.2.10.113])
        by po0.andrew.cmu.edu (8.9.3/8.9.3) with ESMTP id NAA11916
        for <bb+academic.cs.15-721@ams.andrew.cmu.edu>; Mon, 22 Oct 2001 13:15:03 -0400 (EDT)
Received: from iluvatar.dhs.org (pool-151-201-19-40.pitt.east.verizon.net [151.201.19.40])
        by mx3.andrew.cmu.edu (8.12.0.Beta16/8.12.0.Beta16) with ESMTP id f9MHF2bT010715
        for <bb+academic.cs.15-721@andrew.cmu.edu>; Mon, 22 Oct 2001 13:15:02 -0400
Received: from cs.cmu.edu (iluvatar.hobbiton.cmu.edu [192.168.0.2])
        by iluvatar.dhs.org (Postfix) with ESMTP
        id D83082051F; Mon, 22 Oct 2001 13:15:02 -0400 (EDT)
Message-ID: <3BD45416.4000700@cs.cmu.edu>
Date: Mon, 22 Oct 2001 13:15:02 -0400
From: Spiros Papadimitriou <spapadim+@cs.cmu.edu>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.5) Gecko/20011012
X-Accept-Language: en-us
MIME-Version: 1.0
To: Bartosz Przydatek <bartosz@cs.cmu.edu>
Cc: bb+academic.cs.15-721@andrew.cmu.edu
Subject: Re: 15-721: Assignment 3, destructors and error handling
References: <Pine.LNX.3.95L.1011022110527.10080J-100000@ux10.sp.cs.cmu.edu>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

>
>
>1. What should descructors ~indexNestedLoop() and ~sortMerge() do?
>
>   [...]
>
Yes, you are right (they basically do nothing).  Everything is done as a
side-effect of object construction (which might be a slightly...
unconvetional method :-).

>2. Does the extension of the error handling constitute a part 
>   of the assignment, or it is just an option?
>   In other words, do we need it for a full credit?
>   If so, what are we expected to do?
>
Well, presumably you have already been doing this in previous
assignments as well, ;-) but we won't start checking now...

However, using the error reporting macros consistently is not
that hard and can also help you when debugging...  Basically,
what you have to do is two things (basically mentioned in the
handout):
- Use MINIBASE_FIRST_ERROR() to report error conditions
   that occur for the first time in your layer
- Check the return status of lower-layer functions you may
   call and use MINIBASE_CHAIN_ERROR() to propagate the
   error.  This sort of creates a traceback.  Admittedly, exceptions
   and tracebacks (a-la Java or Python) are much nicer, but since
   we don't have these... (plus the whole error reporting system
   seems to be a carryover from Minirel, which was in C?).

Spiros