From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: KAction@gnu.org Newsgroups: gmane.lisp.guile.devel Subject: [PATCH 09/25] system/foreign/declarative: rename `predicate' to `validate' Date: Mon, 18 Jul 2016 18:17:32 +0300 Message-ID: <1468855068-7029-10-git-send-email-KAction@gnu.org> References: <1468855068-7029-1-git-send-email-KAction@gnu.org> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1468855172 9480 80.91.229.3 (18 Jul 2016 15:19:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 18 Jul 2016 15:19:32 +0000 (UTC) Cc: Dmitry Bogatov To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Jul 18 17:19:31 2016 Return-path: Envelope-to: guile-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 1bPAKQ-000383-Vf for guile-devel@m.gmane.org; Mon, 18 Jul 2016 17:19:31 +0200 Original-Received: from localhost ([::1]:48251 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPAKQ-0005Vq-7G for guile-devel@m.gmane.org; Mon, 18 Jul 2016 11:19:30 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37227) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPAJe-0005Ew-F5 for guile-devel@gnu.org; Mon, 18 Jul 2016 11:18:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bPAJZ-0001ZT-Aj for guile-devel@gnu.org; Mon, 18 Jul 2016 11:18:41 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54468) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPAJZ-0001Yd-8U for guile-devel@gnu.org; Mon, 18 Jul 2016 11:18:37 -0400 Original-Received: from broadband-46-188-10-23.2com.net ([46.188.10.23]:56730 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bPAJX-0004FM-A6; Mon, 18 Jul 2016 11:18:35 -0400 X-Mailer: git-send-email 2.1.4 In-Reply-To: <1468855068-7029-1-git-send-email-KAction@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:18563 Archived-At: From: Dmitry Bogatov With this renaming validation function is allowed to throw excection by itself to more accurately describe violated assumption. By convention, predicates never throws. --- module/system/foreign/declarative.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/module/system/foreign/declarative.scm b/module/system/foreign/declarative.scm index 4177bf7..5a5d688 100644 --- a/module/system/foreign/declarative.scm +++ b/module/system/foreign/declarative.scm @@ -28,7 +28,7 @@ encode-proc decode-proc type - predicate-proc + validate-proc clone-proc free-proc) foreign-type? @@ -36,7 +36,7 @@ (encode-proc ft-encode-proc) (decode-proc ft-decode-proc) (type ft-type) - (predicate-proc ft-predicate-proc) + (validate-proc ft-validate-proc) (clone-proc ft-clone-proc) (free-proc ft-free-proc)) @@ -49,7 +49,7 @@ encode-proc decode-proc (type '*) - (predicate-proc (lambda (x) #t)) + (validate-proc (lambda (x) #t)) clone-proc free-proc) (define-syntax-rule (default ) @@ -68,7 +68,7 @@ encode-proc decode-proc type - predicate-proc + validate-proc clone-proc free-proc)) @@ -81,7 +81,7 @@ ((_ prim pred) (with-syntax ((ft (datum->syntax x (symbol-append (syntax->datum #'prim) ':)))) - #'(mirror-primitive-type prim ft #:predicate-proc pred))) + #'(mirror-primitive-type prim ft #:validate-proc pred))) ((_ prim ft rest* ...) #'(define-foreign-type ft #:encode-proc (lambda (x) x) @@ -106,7 +106,7 @@ (mirror-primitive-type uint64 integer?) (mirror-primitive-type float real?) (mirror-primitive-type double real?) -(mirror-primitive-type '* *: #:predicate-proc pointer?) +(mirror-primitive-type '* *: #:validate-proc pointer?) (define-record-type (%make-foreign-argument type) @@ -151,13 +151,13 @@ (map %make-foreign-argument (list type ...)))) (frontend-function (lambda (arg-name ...) - (let ((predicate? (ft-predicate-proc type))) - (unless (predicate? arg-name) + (let ((validate (ft-validate-proc type))) + (unless (validate arg-name) (throw 'wrong-type-arg 'function-name - "Wrong type argument named `~A' (failed to satisfy predicate `~A'): ~S" - (list 'arg-name (procedure-name predicate?) arg-name) + "Wrong type argument named `~A' (failed to satisfy validator `~A'): ~S" + (list 'arg-name (procedure-name validate) arg-name) (list arg-name)))) ... (backend-function arg-name ...)))) -- I may be not subscribed. Please, keep me in carbon copy.