Revision 136f018e7473e48ebb90ed5bc8dc6ad3dd109d6f authored by Keno Fischer on 01 March 2024, 06:32:36 UTC, committed by GitHub on 01 March 2024, 06:32:36 UTC
The following is currently an error: ``` julia> module MyMacroModule macro mymacro end end Main.MyMacroModule julia> macro MyMacroModule.mymacro() 1 end ERROR: syntax: invalid macro definition around REPL[2]:1 Stacktrace: [1] top-level scope @ REPL[2]:1 ``` Discussing with Jeff, we didn't think there was any good reason not to allow this, just a missing case in lowering. It's probably not particularly useful (unlike the corresponding case for functions that is used all the time), but it came up in writing a test case for #53515.
1 parent 95f54c4
NEWS.md
Julia v1.12 Release Notes
========================
New language features
---------------------
Language changes
----------------
- When methods are replaced with exactly equivalent ones, the old method is no
longer deleted implicitly simultaneously, although the new method does take
priority and become more specific than the old method. Thus if the new
method is deleted later, the old method will resume operating. This can be
useful to mocking frameworks (such as in SparseArrays, Pluto, and Mocking,
among others), as they do not need to explicitly restore the old method.
While inference and compilation still must be repeated with this, it also
may pave the way for inference to be able to intelligently re-use the old
results, once the new method is deleted. ([#53415])
Compiler/Runtime improvements
-----------------------------
Command-line option changes
---------------------------
* The `-m/--module` flag can be passed to run the `main` function inside a package with a set of arguments.
This `main` function should be declared using `@main` to indicate that it is an entry point.
Multi-threading changes
-----------------------
Build system changes
--------------------
New library functions
---------------------
* `logrange(start, stop; length)` makes a range of constant ratio, instead of constant step ([#39071])
* The new `isfull(c::Channel)` function can be used to check if `put!(c, some_value)` will block. ([#53159])
New library features
--------------------
* `tempname` can now take a suffix string to allow the file name to include a suffix and include that suffix in
the uniquing checking ([#53474])
Standard library changes
------------------------
#### StyledStrings
#### JuliaSyntaxHighlighting
#### Package Manager
#### LinearAlgebra
#### Logging
#### Printf
#### Profile
#### Random
#### REPL
#### SuiteSparse
#### SparseArrays
#### Test
#### Dates
#### Statistics
#### Distributed
#### Unicode
#### DelimitedFiles
#### InteractiveUtils
Deprecated or removed
---------------------
External dependencies
---------------------
Tooling Improvements
--------------------
<!--- generated by NEWS-update.jl: -->
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...