Skip to content

Commit a1ee7d4

Browse files
committed
A few more link fixes, mostly in functional-anatomy
1 parent 075be0c commit a1ee7d4

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

_posts/2025-09-02-symbolic-of-what.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ We look at the interpretation of symbols in Clojure code.
1313
Symbols are given meaning by a complex web of interactions among the Lisp reader,
1414
namespaces, the Clojure compiler, and the Clojure runtime.
1515

16-
We'll skip the reader, though the interpretation of symbols as discussed below does come into just a bit in the reading of syntax-quote (` `` `) forms. But that's a bit off the path we need to travel.
16+
We'll skip the reader, though the interpretation of symbols as discussed below does come into just a bit in the reading of syntax-quote forms. But that's a bit off the path we need to travel.
1717

1818
The code for resolving symbols and translating them into nodes in the abstract syntax tree (AST) is complex. In face, there appear to be some reduncancies that could be eliminated, along with a few other simplifications. But let us proceed with the code we have.
1919

@@ -262,8 +262,7 @@ To finish of this code, some brief comments on a few of the auxiliary methods me
262262

263263
`Compiler.RegisterVar` is similar. It just notes the reference to the `Var` in the containing function (if there is one). A field in the class implementing the function will be created and initialized to the `Var` in question.
264264

265-
Looking up types corresponding to names is done in `HostExpr.MaybeType` and `HostExpr.MaybeArrayType`.
266-
I've written about these in [Are you my type?]({{site.baseurl}}{% post_url 2025-03-01-are-you-my-type %}).
265+
Looking up types corresponding to names is done in `HostExpr.MaybeType` and `HostExpr.MaybeArrayType`. I've written about these in [Are you my type?]({{site.baseurl}}{% post_url 2025-03-01-are-you-my-type %}).
267266

268267
## I'm feeling a little testy
269268

_posts/2025-09-03-iseq-clarity.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,13 @@ The following special cases are handled:
9494
- we are not in an 'evaluation context' (more on that some other day).
9595
- the `Var` is not marked as dynamic, does not have metatdata `:redef` = true, and does not have metadata ':declared' = true
9696
- The Var is bound to a class that has an `invokeStatic` method with a matching number of arguments
97-
I discussed static invocation in another blog post, __The function of naming; the naming of functions__. It also will be discussed in __C4: Functional anatomy__.
97+
I discussed static invocation in another blog post, [The function of naming; the naming of functions]({{site.baseurl}}{% post_url 2025-02-28-function-naming %}). It also will be discussed in [C4: Functional anatomy]({{site.baseurl}}{% post_url 2025-09-04-functional-anatomy %}).
9898

9999
- primitive invocation. We create an AST node of type `InstanceMethodExpr` to invoke the `.invokePrim` method of the function. The conditions are:
100100
- `fexpr` is a `VarExpr`
101101
- the `Var` is bound to a class that has an `invokePrim` method with a matching number of arguments (determined by looking at the `:arglists` metadata on the `Var`)
102102
- we are not in an 'evaluation context' (more on that some other day).
103-
We will discuss this in more detail in __C4: Functional anatomy__.
103+
We will discuss this in more detail in [C4: Functional anatomy]({{site.baseurl}}{% post_url 2025-09-04-functional-anatomy %}).
104104

105105
- keyword invocation. When our form looks like `(:keyword coll)`, we create an AST node of type `KeywordInvokeExpr`. The conditions are:
106106
- `fexpr` is a `KeywordExpr`

_posts/2025-09-04-functional-anatomy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ I'll leave `applyTo` as an exercise.
288288

289289
## Static invocation
290290

291-
In the previous post __ISeq clarity__, I touched upon the notion of static invocation of functions. Static invocation is an efficiency hack. It allows a call such as
291+
In the previous post [C4: ISeq clarity]({{site.baseurl}}{% post_url 2025-09-03-iseq-clarity %}), I touched upon the notion of static invocation of functions. Static invocation is an efficiency hack. It allows a call such as
292292

293293
```Clojure
294294
(f 1 2 3)
@@ -302,7 +302,7 @@ to bypass the usual dynamic dispatch that does a lookup of the current value of
302302

303303
When these conditions are met, for each `invoke` the function defines, there will be a `staticInvoke` method of the same arity with the actual function definition. The `invoke` just calls the `staticInvoke` of the same arity.
304304

305-
I provide more detail on some of the issues of static linking in a previous post outside this series: __The function of naming; the naming of function__.
305+
I provide more detail on some of the issues of static linking in a previous post outside this series, [The function of naming; the naming of functions]({{site.baseurl}}{% post_url 2025-02-28-function-naming %}).
306306

307307
## Primitive urges
308308

0 commit comments

Comments
 (0)