From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Roland Orre Newsgroups: gmane.lisp.guile.user Subject: Re: Uniform vectors, user survey Date: Tue, 26 Oct 2004 05:03:07 +0200 Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Message-ID: <1098759786.24796.77.camel@localhost> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1098759831 21909 80.91.229.6 (26 Oct 2004 03:03:51 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 26 Oct 2004 03:03:51 +0000 (UTC) Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Oct 26 05:03:42 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CMHcc-0000L1-00 for ; Tue, 26 Oct 2004 05:03:42 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CMHkI-0008Ni-DB for guile-user@m.gmane.org; Mon, 25 Oct 2004 23:11:38 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CMHkD-0008Nc-On for guile-user@gnu.org; Mon, 25 Oct 2004 23:11:33 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CMHkD-0008NP-6b for guile-user@gnu.org; Mon, 25 Oct 2004 23:11:33 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CMHkD-0008NM-4R for guile-user@gnu.org; Mon, 25 Oct 2004 23:11:33 -0400 Original-Received: from [195.54.107.70] (helo=mxfep01.bredband.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CMHcN-0007ud-8t for guile-user@gnu.org; Mon, 25 Oct 2004 23:03:27 -0400 Original-Received: from [10.1.2.4] ([213.112.87.111] [213.112.87.111]) by mxfep01.bredband.com with ESMTP id <20041026030324.NOQW4883.mxfep01.bredband.com@[10.1.2.4]> for ; Tue, 26 Oct 2004 05:03:24 +0200 Original-To: guile-user@gnu.org X-Mailer: Ximian Evolution 1.4.6 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.user:3634 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.user:3634 I'm mainly using guile for data analysis (basically everything what I'm doing) and I'm always used uniform vectors a lot. I'm using uniform vectors as basic data structures and as interfaces. The types I'm using are mainly: #s() Float #i() Double #h() Short #u() Integer #t bits As my habit is to implement things in scheme first and then go to C-code I can gain incredible effects on performance compared to e.g. using standard vectors, which I'm basically use for high level data structures, to keep other vectors and things in. With uniform vector gc goes to zero and the C-code becomes very efficient. I like the uniform vectors and consider them to be an essential feature of guile. I've used them since guile started to be guile ten years or so ago. I also use the shared vectors (as well as shared substrings, nowadays priv impl.) for efficieny reasons. I have to agree somewhat with Peter Christopher though, that I'm not entirely enthusiastic about the prototypes, even though they are quite intuitive (it's basically the difference between float vectors and double vectors I'm not very fond of, as well as the reading/printing syntax of uniform vectors maybe should be more consistent. It may preferrably be something like: type print/read proto gen #() '() or 'v float #f() 'f double #d() 'd complex #c() 'c signint #i() 'i uns.int #u() 'u short #s() 's llong #l() 'l bit #*1010 '* string #a() 'a and so on, something like this would be more intuitive I think, but this is just a wild suggestion. Best regards Roland Orre _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user