From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mikael Djurfeldt Newsgroups: gmane.lisp.guile.user Subject: Re: GOOPS question Date: Sun, 2 May 2021 12:26:37 +0200 Message-ID: References: Reply-To: mikael@djurfeldt.com Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9791"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-user To: Damien Mattei Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sun May 02 12:30:02 2021 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ld9MQ-0002RE-IZ for guile-user@m.gmane-mx.org; Sun, 02 May 2021 12:30:02 +0200 Original-Received: from localhost ([::1]:35098 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ld9MP-00060Z-LM for guile-user@m.gmane-mx.org; Sun, 02 May 2021 06:30:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ld9JL-0003t6-7c for guile-user@gnu.org; Sun, 02 May 2021 06:26:51 -0400 Original-Received: from mail-vs1-f47.google.com ([209.85.217.47]:37580) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ld9JI-0000Tg-Vw for guile-user@gnu.org; Sun, 02 May 2021 06:26:50 -0400 Original-Received: by mail-vs1-f47.google.com with SMTP id a24so1502779vso.4 for ; Sun, 02 May 2021 03:26:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=rOQlB4DHCTeVXq41BCLkEROU3u7SkjWzqm3Yn2CkFZk=; b=a7hxkI1xm0v9oadIzs5bbWB0EVNVSM3WcMz/wOiIWJ7w5yGkmstJCGlCjhGpul+O19 UjzsysawsRbgxSRRlRf8slnqGslEKpIJrU4rOYiSkw2qLHh0mMtYh5rCmm8hPfixsK0d VHoX5cc9au7eA2GahUk3HsMP0MEA1ddmiMIKHs8Hb5qdf+ud3GGTte+vGWvnSOiBsnSp njdn+778ljocvrcxVLGiR1k8vAapMqp9Zrjo6dRkAuT6LZvzbGt5bJ2jvwjDEG7ibZhx yHARXNQZ+4QwnlNB1ta61Y2a4xOANvddjsoKYvAi1Y3LluHv1pAUzoncPapavc6qTT/T 6IVA== X-Gm-Message-State: AOAM533dDT1puqp12+IekpKQeEqKHheM0G/hpFaZaejcF2CDAURgHnUB dcV/tThkt2CO4LKZnZyjrV0L1flTIQ7tlmjvJU0= X-Google-Smtp-Source: ABdhPJzAOilG0v5dFv6yTsJLtkFrp8g2z8ZaUjFsda9q2aUkKvxX2m7k+7NN0Qwya17MBYTmnsRao491pwbTXfhd/RA= X-Received: by 2002:a67:b64c:: with SMTP id e12mr1504418vsm.25.1619951207930; Sun, 02 May 2021 03:26:47 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=209.85.217.47; envelope-from=mdjurfeldt@gmail.com; helo=mail-vs1-f47.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17497 Archived-At: make is exported by (oop goops), so yiu always need to do: (use-modules (oop goops)) to use it. Also, you should only use use-modules to load proper modules (starting with define-module). If it is plain scheme code, use load. Den s=C3=B6n 2 maj 2021 12:15Damien Mattei skrev: > i use now the good way to loadmodule: > > scheme@(guile-user)> (set! %load-path (reverse (cons "." (reverse > %load-path)))) > > scheme@(guile-user)> %load-path > > $1 =3D ("/usr/local/Cellar/guile/2.2.6/share/guile/2.2" > "/usr/local/Cellar/guile/2.2.6/share/guile/site/2.2" > "/usr/local/Cellar/guile/2.2.6/share/guile/site" > "/usr/local/Cellar/guile/2.2.6/share/guile" ".") > > scheme@(guile-user)> (use-modules (gvector)) > > ;;; note: source file ./gvector.scm > > ;;; newer than compiled > > /Users/mattei/.cache/guile/ccache/2.2-LE-8-3.A/Volumes/Mojave/Users/matte= i/Dropbox/git/library-FunctProg/gvector.scm.go > > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 > > ;;; or pass the --no-auto-compile argument to disable. > > ;;; compiling ./gvector.scm > > ;;; compiled > > /Users/mattei/.cache/guile/ccache/2.2-LE-8-3.A/Volumes/Mojave/Users/matte= i/Dropbox/git/library-FunctProg/gvector.scm.go > > scheme@(guile-user)> (define c2 (make )) > > ;;; :4:11: warning: possibly unbound variable `make' > > :4:0: In procedure module-lookup: Unbound variable: make > > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > > scheme@(guile-user) [1]> > > module was not in %load-path > but yet another problem that does not exist outside module when simply > including files.... > > On Sun, May 2, 2021 at 2:07 AM Damien Mattei > wrote: > > > seems your template isn't working: > > > > scheme@(guile-user)> (load "gvector.scm") > > > > ;;; note: source file > > /Volumes/Mojave/Users/mattei/Dropbox/git/library-FunctProg/gvector.scm > > > > ;;; newer than compiled > > > /Users/mattei/.cache/guile/ccache/2.2-LE-8-3.A/Volumes/Mojave/Users/matte= i/Dropbox/git/library-FunctProg/gvector.scm.go > > > > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 > > > > ;;; or pass the --no-auto-compile argument to disable. > > > > ;;; compiling > > /Volumes/Mojave/Users/mattei/Dropbox/git/library-FunctProg/gvector.scm > > > > ;;; compiled > > > /Users/mattei/.cache/guile/ccache/2.2-LE-8-3.A/Volumes/Mojave/Users/matte= i/Dropbox/git/library-FunctProg/gvector.scm.go > > > > scheme@(guile-user)> (define c2 (make )) > > > > ;;; :2:11: warning: possibly unbound variable `make' > > > > ;;; :2:11: warning: possibly unbound variable `' > > > > :2:0: In procedure module-lookup: Unbound variable: make > > > > > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > > > > scheme@(guile-user) [1]> ,bt > > > > In current input: > > > > 2:0 0 (_) > > > > but things go well if i remove module part and add: > > > > (use-modules (oop goops) > > (oop goops describe)) > > > > scheme@(guile-user)> (load "gvector.scm") > > > > ;;; note: source file > > /Volumes/Mojave/Users/mattei/Dropbox/git/library-FunctProg/gvector.scm > > > > ;;; newer than compiled > > > /Users/mattei/.cache/guile/ccache/2.2-LE-8-3.A/Volumes/Mojave/Users/matte= i/Dropbox/git/library-FunctProg/gvector.scm.go > > > > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 > > > > ;;; or pass the --no-auto-compile argument to disable. > > > > ;;; compiling > > /Volumes/Mojave/Users/mattei/Dropbox/git/library-FunctProg/gvector.scm > > > > ;;; > > > /Volumes/Mojave/Users/mattei/Dropbox/git/library-FunctProg/gvector.scm:21= :2: > > warning: possibly unbound variable `orig:vector-length' > > > > ;;; > > > /Volumes/Mojave/Users/mattei/Dropbox/git/library-FunctProg/gvector.scm:26= :2: > > warning: possibly unbound variable `orig:vector-set!' > > > > ;;; > > > /Volumes/Mojave/Users/mattei/Dropbox/git/library-FunctProg/gvector.scm:31= :2: > > warning: possibly unbound variable `orig:vector-ref' > > > > ;;; compiled > > > /Users/mattei/.cache/guile/ccache/2.2-LE-8-3.A/Volumes/Mojave/Users/matte= i/Dropbox/git/library-FunctProg/gvector.scm.go > > > > scheme@(guile-user)> (define c2 (make )) > > > > scheme@(guile-user)> c2 > > > > $1 =3D #< 109e82500> > > > > scheme@(guile-user)> (describe c2) > > > > #< 109e82500> is an instance of class > > > > Slots are: > > > > v =3D #(# # # # > > # # # #) > > > > length =3D 0 > > > > probably a module issue.... but i never use them with this Scheme > > otherwise things go well (in other file ....) > > Damien > > > > On Fri, Apr 30, 2021 at 9:55 AM Mikael Djurfeldt > > wrote: > > > >> Hi! > >> > >> I attach a template which you could build on. Please post your class > when > >> you're done. :) > >> > >> Best regards, > >> Mikael > >> > >> On Fri, Apr 30, 2021 at 1:11 AM Damien Mattei > >> wrote: > >> > >>> hi, > >>> i want to create a growable vector class in Guile, > >>> such as std::vector or python list, > >>> first i do not know if it exist already? seems not > >>> > >>> i want to use GOOPS but i do not understand how the superclass could = be > >>> accessed,used, instanciate... > >>> for example in the doc there is: > >>> (define-class () r i #:name "Complex") > >>> > >>> seems superclass is of no use > >>> > >>> for my growable vector i would like to use array as superclass? > >>> but perhaps should it be just a slot as array are a subset of growabl= e > >>> array ,so a subclass > >>> > >>> anyway if i write something ike that: > >>> (define-class () ..... > >>> how can i use the object? > >>> > >>> i think perhaps i should not define a superclass or as super > >>> class.... > >>> any advice welcome... > >>> > >>> Damien > >>> > >> >