@@ -172,13 +172,13 @@ teardown usually want to happen in the opposite order from each other.
172
172
173
173
= head1 Program Execution Phasers
174
174
175
- = head2 X < BEGIN|BEGIN (phasers) >
175
+ = head2 X < BEGIN|Phasers >
176
176
177
177
Runs at compile time, as soon as possible, only runs once.
178
178
179
179
Can have a return value that is provided even in later phases.
180
180
181
- = head2 X < CHECK|CHECK (phasers) >
181
+ = head2 X < CHECK|Phasers >
182
182
183
183
Runs at compile time, As late as possible, only runs once.
184
184
@@ -188,7 +188,7 @@ Code that is generated at run time can still fire off C<CHECK> and C<INIT>
188
188
phasers, though of course those phasers can't do things that would require
189
189
travel back in time. You need a wormhole for that.
190
190
191
- = head2 X < LINK|LINK (phasers) >
191
+ = head2 X < LINK|Phasers >
192
192
193
193
Runs at link time, As late as possible, only runs once.
194
194
@@ -197,7 +197,7 @@ Can have a return value that is provided even in later phases.
197
197
The compiler is free to ignore C < LINK > phasers compiled at run time since
198
198
they're too late for the application-wide linking decisions.
199
199
200
- = head2 X < INIT|INIT (phasers) >
200
+ = head2 X < INIT|Phasers >
201
201
202
202
Runs after compilation during main execution, as soon as possible, only runs
203
203
once.
@@ -215,7 +215,7 @@ travel back in time. You need a wormhole for that.
215
215
216
216
An C < INIT > only runs once for all copies of a cloned closure.
217
217
218
- = head2 X < END|END (phasers) >
218
+ = head2 X < END|Phasers >
219
219
220
220
Runs after compilation during main execution, as late as possible, only runs
221
221
once.
@@ -225,7 +225,7 @@ treated as if declared at C<use> time in the using module. (It is erroneous to
225
225
depend on this order if the module is used more than once, however, since the
226
226
phasers are only installed the first time they're noticed.)
227
227
228
- = head2 X < CLOSE|CLOSE (phasers) >
228
+ = head2 X < CLOSE|Phasers >
229
229
230
230
Appears in a supply block. Called when the supply is closed.
231
231
@@ -251,7 +251,7 @@ All of these phaser blocks can see any previously declared lexical variables,
251
251
even if those variables have not been elaborated yet when the closure is
252
252
invoked (in which case the variables evaluate to an undefined value.)
253
253
254
- = head2 X < ENTER|ENTER (phasers) >
254
+ = head2 X < ENTER|Phasers >
255
255
256
256
Runs at every block entry time, repeats on loop blocks.
257
257
@@ -260,7 +260,7 @@ Can have a return value that is provided even in later phases.
260
260
An exception thrown from an C < ENTER > phaser will abort the C < ENTER > queue, but
261
261
one thrown from a C < LEAVE > phaser will not.
262
262
263
- = head2 X < LEAVE|LEAVE (phasers) >
263
+ = head2 X < LEAVE|Phasers >
264
264
265
265
Runs at every block exit time (even stack unwinds from exceptions).
266
266
@@ -277,7 +277,7 @@ stack is unwinding, the unwinding continues and collects exceptions to be
277
277
handled. When the unwinding is completed all new exceptions are thrown from
278
278
that point.
279
279
280
- = head2 X < KEEP|KEEP (phasers) >
280
+ = head2 X < KEEP|Phasers >
281
281
282
282
Runs at every successful block exit, as part of the LEAVE queue (shares the
283
283
same order of execution).
@@ -286,12 +286,12 @@ For phasers such as C<KEEP> and C<POST> that are run when exiting a scope
286
286
normally, the return value (if any) from that scope is available as the current
287
287
topic within the phaser.
288
288
289
- = head2 X < UNDO|UNDO (phasers) >
289
+ = head2 X < UNDO|Phasers >
290
290
291
291
Runs at every unsuccessful block exit, as part of the LEAVE queue (shares the
292
292
same order of execution).
293
293
294
- = head2 X < PRE|PRE (phasers) >
294
+ = head2 X < PRE|Phasers >
295
295
296
296
Asserts a precondition at every block entry. Runs before the ENTER phase.
297
297
@@ -301,7 +301,7 @@ The exceptions thrown by failing C<PRE> and C<POST> phasers cannot be caught by
301
301
a C < CATCH > in the same block, which implies that C < POST > phaser are not run if
302
302
a C < PRE > phaser fails.
303
303
304
- = head2 X < POST|POST (phasers) >
304
+ = head2 X < POST|Phasers >
305
305
306
306
Asserts a postcondition at every block entry. Runs after the LEAVE phase.
307
307
@@ -329,11 +329,11 @@ a C<PRE> phaser fails.
329
329
C < FIRST > , C < NEXT > , and C < LAST > are meaningful only within the lexical scope of
330
330
a loop, and may occur only at the top level of such a loop block.
331
331
332
- = head2 X < FIRST|FIRST (phasers) >
332
+ = head2 X < FIRST|Phasers >
333
333
334
334
Runs at loop initialization, before ENTER.
335
335
336
- = head2 X < NEXT|NEXT (phasers) >
336
+ = head2 X < NEXT|Phasers >
337
337
338
338
Runs when loop is continued (either through C < next > or because you got to the
339
339
bottom of the loop and are looping back around), before LEAVE.
@@ -344,18 +344,18 @@ phaser is not executed if the loop block is exited via any exception other than
344
344
the control exception thrown by C < next > . In particular, a C < last > bypasses
345
345
evaluation of C < NEXT > phasers.
346
346
347
- = head2 X < LAST|LAST (phasers) >
347
+ = head2 X < LAST|Phasers >
348
348
349
349
Runs when loop is aborted (either through C < last > , or C < return > , or because you
350
350
got to the bottom of the loop and are done), after LEAVE.
351
351
352
352
= head1 Exception Handling Phasers
353
353
354
- = head2 X < CATCH|CATCH (phasers) >
354
+ = head2 X < CATCH|Phasers >
355
355
356
356
Runs when an exception is raised by the current block, before the LEAVE phase.
357
357
358
- = head2 X < CONTROL|CONTROL (phasers) >
358
+ = head2 X < CONTROL|Phasers >
359
359
360
360
Runs when a control exception is raised by the current block, before the LEAVE
361
361
phase. It is raised by C < return > , C < fail > , C < redo > , C < next > , C < last > , C < take > ,
@@ -364,13 +364,13 @@ C<warn>, C<proceed> and C<succeed>.
364
364
# NYI
365
365
# =head1 Object Phasers
366
366
#
367
- # =head2 X < COMPOSE|COMPOSE (phasers) >
367
+ # =head2 X < COMPOSE|Phasers >
368
368
#
369
369
# Runs when a role is composed into a class.
370
370
371
371
= head1 Asynchronous Phasers
372
372
373
- = head2 X < LAST|asynchronous LAST (phasers) >
373
+ = head2 X < LAST|Phasers >
374
374
375
375
Runs when a L < Supply|/type/Supply > finishes with a call to C < done > or when a
376
376
C < supply > block exits normally. It runs completely after the C < whenever > block
@@ -380,7 +380,7 @@ This phaser reuses the name C<LAST>, but works differently from the C<LAST> loop
380
380
phaser. This phaser is similar to setting the C < done > routine while tapping a
381
381
supply with C < tap > .
382
382
383
- = head2 X < QUIT|QUIT asynchronous QUIT (phasers) >
383
+ = head2 X < QUIT|Phasers >
384
384
385
385
Runs when a L < Supply|/type/Supply > terminates early with an exception. It runs
386
386
after the C < whenever > block it is placed within finishes.
@@ -390,7 +390,7 @@ with C<tap>.
390
390
391
391
= head1 DOC phasers
392
392
393
- = head2 X < DOC|DOC (phasers) >
393
+ = head2 X < DOC|Phasers >
394
394
395
395
The phasers C < BEGIN > , C < CHECK > and C < INIT > are run only in documentation mode when
396
396
prefixed with the C < DOC > keyword. The compiler is in documentation when run with C < --doc > .
0 commit comments