Opened 12 years ago

Closed 12 years ago

Last modified 12 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 12 years ago.

Download all attachments as: .zip

Change History (5)

Changed 12 years ago by sjamaan

Attachment: macro-exports.patch added

comment:1 Changed 12 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 12 years ago by sjamaan

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

comment:3 Changed 12 years ago by sjamaan

Resolution: fixed
Status: newclosed

Felix made a proper fix, which went in as a01a9da3e4832791c70a062f4a1534909fff1c77

comment:4 Changed 12 years ago by felix winkelmann

Milestone: 4.8.04.9.0

Milestone 4.8.0 deleted

Note: See TracTickets for help on using tickets.