~technomancy

WA, USA

https://technomancy.us

tryin' to catch the last train out of Omelas

Trackers

~technomancy/fennel

Last active 17 hours ago

#62 Broken globals checking in import-macros 17 hours ago

Comment by ~technomancy on ~technomancy/fennel

OK, I reviewed this more thoroughly and I think the fix in e3de64d is good.

REPORTED RESOLVED FIXED

#59 Can't nest unquote 2 days ago

bug added by ~technomancy on ~technomancy/fennel

#60 Support separate path lookup for macro modules 2 days ago

enhancement added by ~technomancy on ~technomancy/fennel

#62 Broken globals checking in import-macros 2 days ago

macros added by ~technomancy on ~technomancy/fennel

#62 Broken globals checking in import-macros 2 days ago

bug added by ~technomancy on ~technomancy/fennel

#62 Broken globals checking in import-macros 2 days ago

Comment by ~technomancy on ~technomancy/fennel

I have a patch for this here but I think it needs some more work; at least explaining what's going on and testing:

https://p.hagelb.org/sandbox-improvement.html

#62 Broken globals checking in import-macros 2 days ago

Ticket created by ~technomancy on ~technomancy/fennel

As discussed in #59, globals checking has been disabled in import-macros:

$ echo '(fn foo [] `(print "nothing to see" ,i-dont-exist "here")) {: foo}' > m.fnl
$ echo '(require-macros :m) (foo)' > f.fnl
$ fennel f.fnl
nothing to see  nil     here

#59 Can't nest unquote 4 days ago

Comment by ~technomancy on ~technomancy/fennel

Unquote should only work inside quasiquote.

There's no such distinction in Fennel; we only have one quote. ' is an undocumented alias for backtick.

Nested quasiquotes should increase amount of allowed unquotes

Yeah, this is definitely a bug we should fix.

Unquoting non-existend variable fails silently:

This is unrelated to unquote; it's a problem that globals-checking can get disabled in compiler scope due to the compiler sandbox. I'll create a separate issue for this.

#61 fallback to function call when both macros and functions exist in single namespace and macro is not found 6 days ago

Comment by ~technomancy on ~technomancy/fennel

I don't really see the major issue with having both functions and macros being accessible from the same namespace

In the end that would make it two separate namespaces, if the same name can resolve to two different things depending on the context. So because Fennel is a lisp-1 we need to make every identifier resolve to a single thing. I think the most recent commits on main take care of this.

REPORTED RESOLVED FIXED

#61 fallback to function call when both macros and functions exist in single namespace and macro is not found 8 days ago

Comment by ~technomancy on ~technomancy/fennel

Ah, I see what you mean! The problem is that the entire clj identifier is shadowed inconsistently. That is definitely a bug.

IMO, if you want to prevent this from happening, import-macros should be changed instead to check if symbol is visible.

I don't want to prevent shadowing altogether; I just want to make the shadowing work consistently to how it works for everything else.