BLAST v1.0.4 #7
Replies: 5 comments
-
BLAST v1.0.4b
|
Beta Was this translation helpful? Give feedback.
-
BLAST v1.0.4c
AlignmentWhen blast encounters the following equation: a = a * b * 4, the depending on alignment or not the following assembly is executed in burst (only important parts are shown) **Aligned float * float ** To perform the multiplication between 2 variables in a datasegment that is aligned: **Register float * constant ** The datasegment and stack are setup as arrays of arrays and are said to be aligned when each basepointer of the subarrays has the same offset to the other. If thats not the case we call the data unaligned and blast has to calculate each base index resuling in un-packed instructions but still very fast code: And thats it, the above script executes in 1.7 ns on my machine if i feed it 64 data records. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Blast 1.0.4d introduces codegen for handling external function definitions. Blast can be configured to accept different 255 delegate types mapped to external functions. You can configure the profiles in the blastscriptapi for any pattern up to 8 parameters:
Upon compilation|editor rebuild, blast will generate parts of its own code so it can handle various function pointer types natively, cleanly with maximum performance in burst compiled code. Registration is easy in code:
Scriptcode to use the external:
This will be included in the next asset store release in which an editor will also be included to setup blast for its specifik environment. |
Beta Was this translation helpful? Give feedback.
-
The generation of blasts code for handling generics gives a huge payof giving cleaner code and a more direct functioncall for each external invocation. without codegeneration it would not be possible to have a configurable function protottype for native external functions. |
Beta Was this translation helpful? Give feedback.
-
BLAST Version v1.0.4 has been uploaded to unity and will be released shortly.
This update contains some bugfixes and a large refactor of indexed assignments and introduces CDATA sections. This refactor reduces branching controlflow concerning assignments. CDATA sections provide constant size data segments in the codestream (and with v1.0.5 in the datasegment) providing a backing for typed array data.
Setting and indexing numeric data:
Setting ASCII or Binary data:
In order to write to CDATA the compiler should enable the SHARED_DATA setting:
#define SHARED_CDATA 1
as for normal use CDATA is considered constant when located in the codesegment, it could however be used to share data between executions of script. Future versions of Blast will use CDATA to implement various features.Release Notes:
NORMAL PACKAGEMODE
Beta Was this translation helpful? Give feedback.
All reactions