From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32087 invoked by alias); 25 Sep 2017 17:19:48 -0000 Mailing-List: contact kawa-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: kawa-owner@sourceware.org Received: (qmail 31914 invoked by uid 89); 25 Sep 2017 17:19:48 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=fragile, H*r:sk:kawa@so, Hope X-HELO: aibo.runbox.com Received: from aibo.runbox.com (HELO aibo.runbox.com) (91.220.196.211) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 25 Sep 2017 17:19:45 +0000 Received: from [10.9.9.212] (helo=mailfront12.runbox.com) by mailtransmit03.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1dwX2l-00057O-4S for kawa@sourceware.org; Mon, 25 Sep 2017 19:19:43 +0200 Received: from 70-36-239-2.dsl.dynamic.fusionbroadband.com ([70.36.239.2] helo=localhost.localdomain) by mailfront12.runbox.com with esmtpsa (uid:757155 ) (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.82) id 1dwX1n-0002Wn-99 for kawa@sourceware.org; Mon, 25 Sep 2017 19:18:43 +0200 Subject: Re: no class-of ? To: kawa@sourceware.org References: <425B3BC8-31F3-4299-ADB1-9E064C1E8D3E@theptrgroup.com> <51a642b1-f20d-9f32-645d-ea96b935e3c2@bothner.com> <332863a5-3fdf-147e-e9c8-23253b0eff31@bothner.com> <7DB8779E-1D1D-4B80-8D4D-DA50375A1B02@theptrgroup.com> From: Per Bothner Message-ID: <4094d314-0200-30f6-c1bf-16589f9a5081@bothner.com> Date: Mon, 25 Sep 2017 17:19:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <7DB8779E-1D1D-4B80-8D4D-DA50375A1B02@theptrgroup.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2017-q3/txt/msg00082.txt.bz2 On 09/25/2017 09:58 AM, Jamison Hope wrote: > My validate-apply handler now looks like: > > (define-validate validateEnsureBoolean (exp required proc) > ((exp:isSimple 1 1) > (let* ((e0 (visit-exp (exp:getArg 0))) > (t0 (e0:getType))) > (cond ((eq? t0 boolean) e0) > ((eq? t0 int) (apply-exp = e0 0)) > ((eq? t0 void) (begin-exp e0 #t)) > (else (gnu.expr.ErrorExp > (format #f "unsupported expression type: ~a" t0) > (get-compilation))))))) Of course using eq? to compare type objects is going to be very fragile. You might consider using (for example): (> (invoke int 'isCompatibleWithValue t0) 0) -- --Per Bothner per@bothner.com http://per.bothner.com/