* export from an imported module
@ 2023-10-29 20:55 Damien Mattei
2023-10-29 22:05 ` Mikael Djurfeldt
0 siblings, 1 reply; 6+ messages in thread
From: Damien Mattei @ 2023-10-29 20:55 UTC (permalink / raw)
To: guile-user
i noticed that in Guile if i use a module in a module i can not export
the definitions of the used module. It is possible in Racket but in
guile it even cause problems.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: export from an imported module
2023-10-29 20:55 export from an imported module Damien Mattei
@ 2023-10-29 22:05 ` Mikael Djurfeldt
2023-10-29 22:05 ` Mikael Djurfeldt
0 siblings, 1 reply; 6+ messages in thread
From: Mikael Djurfeldt @ 2023-10-29 22:05 UTC (permalink / raw)
To: Damien Mattei; +Cc: guile-user, Mikael Djurfeldt
Look at #re-export here:
https://www.gnu.org/software/guile/manual/html_node/Creating-Guile-Modules.html
Den sön 29 okt. 2023 21:55Damien Mattei <damien.mattei@gmail.com> skrev:
> i noticed that in Guile if i use a module in a module i can not export
> the definitions of the used module. It is possible in Racket but in
> guile it even cause problems.
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: export from an imported module
2023-10-29 22:05 ` Mikael Djurfeldt
@ 2023-10-29 22:05 ` Mikael Djurfeldt
2023-10-30 7:37 ` Damien Mattei
0 siblings, 1 reply; 6+ messages in thread
From: Mikael Djurfeldt @ 2023-10-29 22:05 UTC (permalink / raw)
To: Damien Mattei; +Cc: guile-user
#:re-export
Den sön 29 okt. 2023 23:05Mikael Djurfeldt <mikael@djurfeldt.com> skrev:
> Look at #re-export here:
>
>
> https://www.gnu.org/software/guile/manual/html_node/Creating-Guile-Modules.html
>
> Den sön 29 okt. 2023 21:55Damien Mattei <damien.mattei@gmail.com> skrev:
>
>> i noticed that in Guile if i use a module in a module i can not export
>> the definitions of the used module. It is possible in Racket but in
>> guile it even cause problems.
>>
>>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: export from an imported module
2023-10-29 22:05 ` Mikael Djurfeldt
@ 2023-10-30 7:37 ` Damien Mattei
2023-10-30 9:29 ` Mikael Djurfeldt
0 siblings, 1 reply; 6+ messages in thread
From: Damien Mattei @ 2023-10-30 7:37 UTC (permalink / raw)
To: mikael; +Cc: guile-user
i tried:
;;; WARNING: compilation of /usr/local/share/guile/site/3.0/Scheme+.scm failed:
;;; re-exporting local variable: infix-operators-lst
While compiling expression:
re-exporting local variable: infix-operators-lst
anyway it works with loading each module separately at different
levels, code is perheaps more clean to read like that instead of
calculating what modules should re-export above which complex things
and sometimes cause re-exporting the same variable from multiple
modules...
On Sun, Oct 29, 2023 at 11:06 PM Mikael Djurfeldt <mikael@djurfeldt.com> wrote:
>
> #:re-export
>
> Den sön 29 okt. 2023 23:05Mikael Djurfeldt <mikael@djurfeldt.com> skrev:
>>
>> Look at #re-export here:
>>
>> https://www.gnu.org/software/guile/manual/html_node/Creating-Guile-Modules.html
>>
>> Den sön 29 okt. 2023 21:55Damien Mattei <damien.mattei@gmail.com> skrev:
>>>
>>> i noticed that in Guile if i use a module in a module i can not export
>>> the definitions of the used module. It is possible in Racket but in
>>> guile it even cause problems.
>>>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: export from an imported module
2023-10-30 7:37 ` Damien Mattei
@ 2023-10-30 9:29 ` Mikael Djurfeldt
2023-10-30 14:40 ` Damien Mattei
0 siblings, 1 reply; 6+ messages in thread
From: Mikael Djurfeldt @ 2023-10-30 9:29 UTC (permalink / raw)
To: Damien Mattei; +Cc: guile-user, Mikael Djurfeldt
[-- Attachment #1: Type: text/plain, Size: 1609 bytes --]
Well, not sure what you mean, and if there is a problem it must be
something in your code. I attach a simple example where the module (b)
re-exports a definition from the used module (a).
You need to have the directory re-export on your %load-path in order to be
able to ,use (b) after which you should be able to type x and get 1.
Best regards,
Mikael
On Mon, Oct 30, 2023 at 8:37 AM Damien Mattei <damien.mattei@gmail.com>
wrote:
> i tried:
>
> ;;; WARNING: compilation of /usr/local/share/guile/site/3.0/Scheme+.scm
> failed:
> ;;; re-exporting local variable: infix-operators-lst
> While compiling expression:
> re-exporting local variable: infix-operators-lst
>
> anyway it works with loading each module separately at different
> levels, code is perheaps more clean to read like that instead of
> calculating what modules should re-export above which complex things
> and sometimes cause re-exporting the same variable from multiple
> modules...
>
> On Sun, Oct 29, 2023 at 11:06 PM Mikael Djurfeldt <mikael@djurfeldt.com>
> wrote:
> >
> > #:re-export
> >
> > Den sön 29 okt. 2023 23:05Mikael Djurfeldt <mikael@djurfeldt.com> skrev:
> >>
> >> Look at #re-export here:
> >>
> >>
> https://www.gnu.org/software/guile/manual/html_node/Creating-Guile-Modules.html
> >>
> >> Den sön 29 okt. 2023 21:55Damien Mattei <damien.mattei@gmail.com>
> skrev:
> >>>
> >>> i noticed that in Guile if i use a module in a module i can not export
> >>> the definitions of the used module. It is possible in Racket but in
> >>> guile it even cause problems.
> >>>
>
[-- Attachment #2: re-export.tar.gz --]
[-- Type: application/gzip, Size: 227 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: export from an imported module
2023-10-30 9:29 ` Mikael Djurfeldt
@ 2023-10-30 14:40 ` Damien Mattei
0 siblings, 0 replies; 6+ messages in thread
From: Damien Mattei @ 2023-10-30 14:40 UTC (permalink / raw)
To: mikael; +Cc: guile-user
thank you
it works now for the first time, i do not really know what was wrong, i just do:
rm -rf .cache/guile
and tried a re-export and it is ok.
I know the local cache but between multiple architecture with same
code shared via dropbox can cause problems
now it is ok like in Racket code, i again have a module version of
Scheme+ (no more need to includes files all is in a module now):
(define-module (Scheme+)
#:use-module (for_next_step)
#:use-module (growable-vector)
;;#:use-module (ice-9 local-eval)
#:use-module (infix-operators)
#:use-module (overload)
#:use-module (array)
#:use-module (ice-9 match)
#:use-module (ice-9 arrays) ;; for array-copy
#:use-module (srfi srfi-1) ;; any,every
#:use-module (srfi srfi-69) ;; Basic hash tables
#:use-module (srfi srfi-31) ;; rec
#:use-module (srfi srfi-26) ;; cut
#:re-export (for
for-basic
for-next
for-basic/break
for-basic/break-cont
for/break-cont
define-overload-procedure
overload-procedure
define-overload-existing-procedure
overload-existing-procedure
define-overload-operator
overload-operator
define-overload-existing-operator
overload-existing-operator
define-overload-n-arity-operator
overload-n-arity-operator
define-overload-existing-n-arity-operator
overload-existing-n-arity-operator
overload-function ;; see how to do the same for operator,
see the possible problem with infix precedence?
;;$ovrld-square-brackets-lst$
overload-square-brackets
;;find-getter-and-setter-for-overloaded-square-brackets
find-getter-for-overloaded-square-brackets
find-setter-for-overloaded-square-brackets
infix-operators-lst
set-infix-operators-lst!
replace-operator!
)
#:replace (do when unless)
#:export ($nfx$
!*prec
def $bracket-apply$ <- ← -> → <+ ⥆ +> ⥅ declare $> $+> condx ≠
** <v v> ⇜ ⇝ repeat % << >> & $ | ) ;; <> is already defined in Guile
) ;; end module definitions
simply used like that:
(use-modules (Scheme+)
(matrix+)
; (infix-operators)
; (overload)
(srfi srfi-42) ; Eager Comprehensions
(oop goops)
(srfi srfi-43)) ; vectors
no more need to add the sub-modules of Scheme+ : infix-operators ,
overload, for_next_step in the main program ,just (use-modules
(Scheme+)) is enought.
Damien
....
On Mon, Oct 30, 2023 at 10:29 AM Mikael Djurfeldt <mikael@djurfeldt.com> wrote:
>
> Well, not sure what you mean, and if there is a problem it must be something in your code. I attach a simple example where the module (b) re-exports a definition from the used module (a).
>
> You need to have the directory re-export on your %load-path in order to be able to ,use (b) after which you should be able to type x and get 1.
>
> Best regards,
> Mikael
>
> On Mon, Oct 30, 2023 at 8:37 AM Damien Mattei <damien.mattei@gmail.com> wrote:
>>
>> i tried:
>>
>> ;;; WARNING: compilation of /usr/local/share/guile/site/3.0/Scheme+.scm failed:
>> ;;; re-exporting local variable: infix-operators-lst
>> While compiling expression:
>> re-exporting local variable: infix-operators-lst
>>
>> anyway it works with loading each module separately at different
>> levels, code is perheaps more clean to read like that instead of
>> calculating what modules should re-export above which complex things
>> and sometimes cause re-exporting the same variable from multiple
>> modules...
>>
>> On Sun, Oct 29, 2023 at 11:06 PM Mikael Djurfeldt <mikael@djurfeldt.com> wrote:
>> >
>> > #:re-export
>> >
>> > Den sön 29 okt. 2023 23:05Mikael Djurfeldt <mikael@djurfeldt.com> skrev:
>> >>
>> >> Look at #re-export here:
>> >>
>> >> https://www.gnu.org/software/guile/manual/html_node/Creating-Guile-Modules.html
>> >>
>> >> Den sön 29 okt. 2023 21:55Damien Mattei <damien.mattei@gmail.com> skrev:
>> >>>
>> >>> i noticed that in Guile if i use a module in a module i can not export
>> >>> the definitions of the used module. It is possible in Racket but in
>> >>> guile it even cause problems.
>> >>>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-10-30 14:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-29 20:55 export from an imported module Damien Mattei
2023-10-29 22:05 ` Mikael Djurfeldt
2023-10-29 22:05 ` Mikael Djurfeldt
2023-10-30 7:37 ` Damien Mattei
2023-10-30 9:29 ` Mikael Djurfeldt
2023-10-30 14:40 ` Damien Mattei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).