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
Raw File
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: -->
back to top