Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#882 closed defect (fixed)

* export and macros not working

Reported by: megane Owned by:
Priority: minor Milestone: 4.9.0
Component: unknown Version: 4.7.x
Keywords: Cc:
Estimated difficulty:

Description

There still seems to be problems with the * export list:

(module foo
	*
	(import chicken scheme)
	(define-syntax baz
	  (lambda _
	    ''foo)))

(module bar
	*			; <- change to () and everything works
	(import chicken scheme)
	(import foo)
	(export baz))

(import bar)
(print (baz))

;; Warning: exported identifier of module `bar' has not been defined: baz

;; Error: module unresolved: bar

Attachments (1)

macro-exports.patch (571 bytes) - added by sjamaan 9 years ago.

Download all attachments as: .zip

Change History (5)

Changed 9 years ago by sjamaan

Attachment: macro-exports.patch added

comment:1 Changed 9 years ago by sjamaan

I'm unsure what an export of * is supposed to do with any macros imported from other modules. Is it supposed to re-export those always, or only on explicit request with (export ...)? I think the wildcard syntax is a bad idea and should probably be dropped.

Anyway, the above patch seems to fix the immediate problem, but it doesn't seem to work when an import library is generated for bar, so I guess there's still something missing.

comment:2 Changed 9 years ago by sjamaan

I suppose the patch can be simplified by removing the symbol? check.

comment:3 Changed 9 years ago by sjamaan

Resolution: fixed
Status: newclosed

Felix made a proper fix, which went in as a01a9da3e4832791c70a062f4a1534909fff1c77

comment:4 Changed 9 years ago by felix winkelmann

Milestone: 4.8.04.9.0

Milestone 4.8.0 deleted

Note: See TracTickets for help on using tickets.