• Home
  • Raw
  • Download

Lines Matching full:and

5 This document outlines the key design decisions in the interpreter and its companion components:
21 and all related components of the platform:
40 1. Bytecode is register-based: all arguments and variables are mapped to virtual registers,
41 and most of bytecodes encode virtual registers as operands.
43 bytecodes and shared across all function frames during runtime.
45 code and documentation generation.
54 a bunch of C/C++ headers is very fragile and error-prone. At the same time,
62 definitions were defined and used, different parts of instruction description doesn't contradict
73 1. All entities in the executable file should be encoded and stored compactly to avoid bloating
81 1. The entire code of the application (excluding frameworks and external libraries) fits into a
85 and foreign (declared elsewhere). Local entities can be accessed directly by the offset
89 1. The format uses raw offsets as the main access method to the actual data and doesn't
96 for the same application introduces extra duplication of metadata and implies extra burden on
105 `zstd-19` algorithm. According to our research, it decreases file size by 21% and
133 1. The inevitable extra cost that interpreters pay for decoding and dispatching bytecode
140 for statically typed languages that run on the platform natively, and 15x-20x for L2 languages.
141 1. Panda should scale onto a wide range of devices, including IoT devices. Although more and
143 on the device. Since static linking with a subset of the library is a pain and may not guarantee
158 1. All virtual registers should explicitly and precisely distinct between garbage collectable
159 objects and non-garbage collectable primitives to simplify automatic memory management.
160 1. Virtual registers should be able to hold following types: unsigned and signed integers with
161 the size of up to 64 bits, floating point numbers of single and double precision, raw pointers
162 to the objects on 32-bit and 64-bit architectures.
167 1. All virtual registers are "tagged", meaning that they contain both the payload and additional
168 metadata (a "tag"), which allows at least distinguish between garbage collectable and other
172 and can be reduced for memory-constrained targets and to 64 bits (using NaN-tagging technique).
186 and padding. A lot of free space is expected to be in the padding area. Probably we may use it
212 1. A set of benchmarks is ported to Panda Assembly and maintained as a part of the source tree.
218 Lots of things are being created in parallel, and currently there is no stable front-end for Panda
221 beside too granular unit tests to ensure quality of the interpreter and companion components