From 0d6c26b9aa607ff14e14e6488bace207e324022a Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 13 Jun 2022 13:20:34 -0400 Subject: =?UTF-8?q?Highlight=20[]=20as=20list=20brackets,=20like=20?= =?UTF-8?q?=E2=9F=A8=E2=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/implementation/kclaims.html | 4 ++-- docs/implementation/vm.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'docs/implementation') diff --git a/docs/implementation/kclaims.html b/docs/implementation/kclaims.html index c92318c3..670187b3 100644 --- a/docs/implementation/kclaims.html +++ b/docs/implementation/kclaims.html @@ -38,7 +38,7 @@

cycles is the total number of CPU cycles run. L1-dcache-load-misses shows L1 data cache misses and L1-icache-load-misses shows the instruction cache misses; cache-misses shows accesses that miss every layer of caching, which is a subset of those two (more detailed explanation here). icache_16b.ifdata_stall is a little fancy. Here's the summary given by perf list:

  icache_16b.ifdata_stall
-       [Cycles where a code fetch is stalled due to L1 instruction cache miss]
+       [Cycles where a code fetch is stalled due to L1 instruction cache miss]
 

That's just the whole cost (in cycles) of L1 misses, exactly what we want! First I'll run this on a J program I have lying around, building my old Honors thesis with JtoLaTeX.

 Performance counter stats for 'jlatex document.jtex nopdf':
@@ -73,7 +73,7 @@
        2.138414849 seconds time elapsed
 

And the Python-based font tool I use to build font samples for this site:

-
 Performance counter stats for 'pyftsubset […more stuff]':
+
 Performance counter stats for 'pyftsubset […more stuff]':
 
        499,025,775      cycles:u
         24,869,974      icache_16b.ifdata_stall:u
diff --git a/docs/implementation/vm.html b/docs/implementation/vm.html
index ba96ac12..7a0093db 100644
--- a/docs/implementation/vm.html
+++ b/docs/implementation/vm.html
@@ -43,7 +43,7 @@
 

The starting index refers to the position in bytecode where execution starts in order to evaluate the block. Different bodies will always have the same set of special names, but the variables they define are unrelated, so of course they can have different counts. The given number of variables includes special names, but list of names and export mask don't.

The program's symbol list is included in the tokenization information t: it is 02t. Since the entire program (the source code passed in one compiler call) uses this list, namespace field accesses can be performed with indices alone within a program. The symbol list is needed for cross-program access, for example if •BQN returns a namespace.

Instructions

-

The following instructions are defined (those without names are tentatively reserved only). The ones emitted by the self-hosted BQN compiler are marked in the "used" column. Only those marked "X" are needed to support the compiler and self-hosted runtime. "NS" indicates instructions used only in programs with namespaces, "HE" is for headers : or predicates ?, and "HR" is for high-rank array notation [].

+

The following instructions are defined (those without names are tentatively reserved only). The ones emitted by the self-hosted BQN compiler are marked in the "used" column. Only those marked "X" are needed to support the compiler and self-hosted runtime. "NS" indicates instructions used only in programs with namespaces, "HE" is for headers : or predicates ?, and "HR" is for high-rank array notation [].

@@ -134,7 +134,7 @@ - + -- cgit v1.2.3
HR Merge top of stack (for [])Merge top of stack (for [])
10