From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20348 invoked by alias); 27 Jan 2005 20:38:44 -0000 Mailing-List: contact cgen-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cgen-owner@sources.redhat.com Received: (qmail 17360 invoked from network); 27 Jan 2005 20:34:49 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 27 Jan 2005 20:34:49 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j0RKYnLG017165 for ; Thu, 27 Jan 2005 15:34:49 -0500 Received: from zenia.home.redhat.com (sebastian-int.corp.redhat.com [172.16.52.221]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j0RKYgO05414; Thu, 27 Jan 2005 15:34:43 -0500 To: Doug Evans Cc: cgen@sources.redhat.com Subject: Re: PATCH: Handle symbols in messages References: <16880.19488.18881.229285@casey.transmeta.com> From: Jim Blandy Date: Thu, 27 Jan 2005 20:38:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2005-q1/txt/msg00014.txt.bz2 Jim Blandy writes: > Doug Evans writes: > > fwiw, while string-concat might not clearly specify the operation > > (though I don't have a problem with it), `concat' seems too generic > > (or at least not string-specific enough in the way that the rest of > > the string functions are so named). > > > > string-map is to map, > > as string-list is to list, > > as string- is to concat. > > > > concat mightn't make sense outside of strings (and thus why have the > > string- prefix ...), but why preclude symbol-concat? (etc.) > > > > How about string-concat? > > Thanks for picking at this. I had thought I was naming it after a > Common Lisp function, but now that I look it up I see I was getting my > dialects confused. (Emacs Lisp has a concat function that does type > conversions on its arguments.) > > How about string/symbol-append? Given that there's no good precedent > for 'concat' after all, and that concat has another meaning in CGEN > .cpu files, and that the distinction between appending and > concatenating is unclear, perhaps we should stick to the verb Scheme > generally uses for this kind of operation, and simply name the types > we're handling. There've been no further comments on this, so I've committed the below on the assumption that it's at least better than the status quo. But of course I'm happy to make further changes as people suggest. 2005-01-27 Jim Blandy * utils.scm (string/symbol->append): Renamed from 'concat'. * opcodes.scm (gen-switch): Use new name. * insn.scm (-sub-insn-make!): Same. * rtl.scm (rtx-dump): Same. * semantics.scm (semantic-compile): Same. Index: cgen/insn.scm =================================================================== RCS file: /cvs/src/src/cgen/insn.scm,v retrieving revision 1.13 diff -c -p -r1.13 insn.scm *** cgen/insn.scm 20 Jan 2005 22:57:10 -0000 1.13 --- cgen/insn.scm 27 Jan 2005 20:15:24 -0000 *************** *** 271,280 **** (obj:name insn) ":" (string-map (lambda (op newval) ! (concat " " ! (obj:name op) ! "=" ! (obj:name newval))) anyof-operands new-values) " ...\n") --- 271,280 ---- (obj:name insn) ":" (string-map (lambda (op newval) ! (string/symbol-append " " ! (obj:name op) ! "=" ! (obj:name newval))) anyof-operands new-values) " ...\n") Index: cgen/opcodes.scm =================================================================== RCS file: /cvs/src/src/cgen/opcodes.scm,v retrieving revision 1.8 diff -c -p -r1.8 opcodes.scm *** cgen/opcodes.scm 20 Jan 2005 23:12:50 -0000 1.8 --- cgen/opcodes.scm 27 Jan 2005 20:15:24 -0000 *************** *** 516,522 **** (lambda (ops) ; OPS is a list of operands with the same name that for whatever reason ; were defined separately. ! (logit 3 (concat "Processing " (obj:str-name (car ops)) " " what " ...\n")) (if (= (length ops) 1) (gen-obj-sanitize (car ops) --- 516,523 ---- (lambda (ops) ; OPS is a list of operands with the same name that for whatever reason ; were defined separately. ! (logit 3 (string/symbol-append ! "Processing " (obj:str-name (car ops)) " " what " ...\n")) (if (= (length ops) 1) (gen-obj-sanitize (car ops) Index: cgen/rtl.scm =================================================================== RCS file: /cvs/src/src/cgen/rtl.scm,v retrieving revision 1.8 diff -c -p -r1.8 rtl.scm *** cgen/rtl.scm 20 Jan 2005 22:57:10 -0000 1.8 --- cgen/rtl.scm 27 Jan 2005 20:15:24 -0000 *************** *** 786,796 **** (define (rtx-dump rtx) (cond ((list? rtx) (map rtx-dump rtx)) ! ((object? rtx) (concat "#")) (else rtx)) ) --- 786,796 ---- (define (rtx-dump rtx) (cond ((list? rtx) (map rtx-dump rtx)) ! ((object? rtx) (string/symbol-append "#")) (else rtx)) ) Index: cgen/semantics.scm =================================================================== RCS file: /cvs/src/src/cgen/semantics.scm,v retrieving revision 1.6 diff -c -p -r1.6 semantics.scm *** cgen/semantics.scm 20 Jan 2005 22:57:10 -0000 1.6 --- cgen/semantics.scm 27 Jan 2005 20:15:25 -0000 *************** *** 798,808 **** sorted-outs out-op-nums) (let ((dump (lambda (op) ! (concat " " ! (obj:name op) ! " " ! (number->string (op:num op)) ! "\n")))) (logit 4 "Input operands:\n" (map dump sorted-ins) --- 798,808 ---- sorted-outs out-op-nums) (let ((dump (lambda (op) ! (string/symbol-append " " ! (obj:name op) ! " " ! (number->string (op:num op)) ! "\n")))) (logit 4 "Input operands:\n" (map dump sorted-ins) Index: cgen/utils.scm =================================================================== RCS file: /cvs/src/src/cgen/utils.scm,v retrieving revision 1.14 diff -c -p -r1.14 utils.scm *** cgen/utils.scm 20 Jan 2005 22:57:10 -0000 1.14 --- cgen/utils.scm 27 Jan 2005 20:15:25 -0000 *************** *** 87,93 **** ; Concatenate all the arguments and make a string. Symbols are ; converted to strings. ! (define (concat . sequences) (define (sequence->string o) (if (symbol? o) (symbol->string o) o)) (apply string-append (map sequence->string sequences))) --- 87,93 ---- ; Concatenate all the arguments and make a string. Symbols are ; converted to strings. ! (define (string/symbol-append . sequences) (define (sequence->string o) (if (symbol? o) (symbol->string o) o)) (apply string-append (map sequence->string sequences)))