-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Description
#50105 retroactively made all exported symbols public. I think I raised this point before in some comment, but anyway exported symbols being public by default seems like a breaking change, because previously a symbol could be exported with export
without being part of a public API. The notion of "being public" didn't even exist in Julia (on a language level, as opposed to docs) before that PR. A simple solution would have been to define public symbols as only the ones marked with public
, although I guess now it may be too late for that?
This issue creates some problems for the Julia implementation itself, e.g. Core.Method
is exported into Main
, unintentionally (?) making it public, similarly with GenericMemory
: #53854 #53971
If Julia v1.11 were released as-is, user packages would be locked into supporting undocumented exported symbols until they make a breaking release.