Programming The main programming language in Engee is Julia. This section provides full documentation of Julia. User’s Guide Variables Integers and floating point numbers Mathematical operations and elementary functions Complex and rational numbers Lines Functions The order of execution Scope of variables Types Methods Constructors Transformation and promotion Interfaces Modules Documentation Metaprogramming Single- and multidimensional arrays Missing values Network and Streaming Parallel computing Asynchronous programming Multithreading Multiprocessing and distributed computing Execution of external programs Calling code in C and Fortran Processing of operating system options Environment variables Julia Code Implementation Uploading the code Profiling Stack traces Performance Tips Workflow Tips Style Guide Frequently Asked Questions Noteworthy Differences from other Languages Entering Unicode characters Command Line Interface The basic library Main facilities Collections and data structures Mathematical objects Numbers Strings Arrays Tasks Multithreading Values with limited scope Constants The file system I/O and Network Punctuation Sorting and related functions Iteration utilities Analysis and introspection The C interface The C Standard Library Stack tracing SIMD Support Standard Library ArgTools Artifacts Base64 CRC32c Dates Delimited Files Distributed Computing Downloads File Events Future Interactive Utilities Lazy Artifacts LibCURL Dynamic Linker LibGit2 Linear Algebra Logging Markdown Memory-mapped I/O NetworkOptions Pkg Printf Profiling Random Numbers The Julia REPL Serialization SHA Shared Arrays Sockets Sparse Arrays Statistics StyledStrings Tar Unit Testing TOML Unicode UUIDs Documentation for developers Analysis and introspection Julia Internal Device Documentation Initializing the Julia Runtime Environment Abstract Syntax Trees (AST) in Julia Additional information about the types Location of Julia objects in memory Calculating the Julia code Call Agreements Overview of the machine code generation process Features in Julia Base.Cartesian Instructing the compiler (the :meta mechanism) Subarrays (SubArrays) Optimization of combining isbits Building a system image Package Images Working with LLVM LLVM User Passes printf() and stdio in the Julia runtime environment Checking boundaries Proper maintenance of multithreaded locks Arrays with custom indexes Loading modules Output IR representation in SSA form in Julia EscapeAnalysis Compilation before execution Static analyzer annotations for proper garbage collection in C code Garbage collection in Julia JIT development and implementation Core.Builtins Eliminating pre-compilation freezes due to open tasks or I/O Developing/debugging C code in Julia Informing about failures (emergency terminations) and their analysis GDB Debugging Tips Using Valgrind in Julia Support for external profilers Sanitizer support Instrumentation of Julia using DTrace and bpftrace Julia Build Julia Build (detailed description) Linux macOS Windows FreeBSD ARM (Linux) Distribution of binary files Engee system objects Fixed-Point Arithmetic (Fixed-Point) in Engee Arithmetic in HDL and Fixed-Point Script editor breakpoints Masks of code cells Software script management