Good day, everyone.
I’m starting this thread to get up to date on the latest developments in the Xojo compiler.
Good day, everyone.
I’m starting this thread to get up to date on the latest developments in the Xojo compiler.
I’ve watched this video:
[Leveraging LLVM: A Compiler Overview | Xojo Developer Conference 2018 Session]
I was left wanting more details. I didn’t watch it all.
Does anyone on the forum know if there’s more information on this topic?
My goal is to create a comparison of how Xojo uses the compiler compared to other languages. I’m going to compare it with JavaScript, C#…
I would like to validate the comparison.
Suggestions and opinions are welcome.
Fase
Xojo
C++
Swift
C#
Python
Lexer
Yes
Yes
Yes
Yes
Yes
Parser
Yes
Yes
Yes
Yes
Yes
Semantic Analyzer
Yes
Yes
Yes
Yes
Limited
IR
LLVM IR
LLVM IR/GIMPLE/etc.
LLVM IR
CIL / MSIL
Bytecode
Optimizer
LLVM
Very advanced / CLANG+GCC
LLVM
LLVM
Very limited
Ahead-of-Time Machine Code
Yes
Yes
Yes
Partial
No
Front end quality
9/10
10
10
9
8
Level
Level A
Level A
Level A
Lebel B
Level C
Compilation result
They do not need a virtual machine to run.
They do not need a virtual machine to run.
They do not need a virtual machine to run.
They generate a portable IR.
Interpreted Bytecode
Comments
C#, Java, JavaScript (V8), are at the same level.
Beside “Do not use Python”, what is the conclusion ?
My personal opinion.
The C language has the best compiler on the market. XOJO performs reasonably well compared to other A-level languages. Its compiler is good.
Python isn’t bad; it depends on what you’re using it for. If you’re looking for a native compiler, you can rule out Python.
Everyone know Ruby is the best
Note:
I forgot to add Kotlin to the table. And Ruby…
Actually I would be interested in those stats
1 Like
Ruby is not generally recognized for cutting-edge compiler technology. Historically, it has relied on an interpreter-based execution model, with later performance improvements introduced through JIT compilation techniques.
@Jose_Fernandez_del_Valle
My Ruby comment was sprinkled with some humor
1 Like
Add two more lines. Which I consider important.
Fase
Xojo
C++
Swift
C#
Python
Lexer
Yes
Yes
Yes
Yes
Yes
Parser
Yes
Yes
Yes
Yes
Yes
Semantic Analyzer
Yes
Yes
Yes
Yes
Limited
IR
LLVM IR
(Clang - LLVM IR) / (GCC - GIMPLE)
LLVM IR
CIL / MSIL
CPython Bytecode
Optimizer
LLVM
Very advanced / CLANG+GCC
LLVM
Roslyn + RyuJIT
Very limited
Ahead-of-Time Machine Code
Yes
Yes
Yes
Partial
No
AOT vs JIT
AOT
AOT
AOT
JIT + AOT Partial
Interpreter
SSA (Static Single Assignment)
YES
YES
YES
YES
NO
Front end quality
9/10
10
10
9
8
Level
Level A
Level A
Level A
Lebel B
Level C
Compilation result
They do not need a virtual machine to run.
They do not need a virtual machine to run.
They do not need a virtual machine to run.
They generate a portable IR.
Interpreted Bytecode
Comments
C#, Java, JavaScript (V8), are at the same level.
My comparison shows that Xojo is much closer to C++ and Swift than is commonly believed, because it shares the same LLVM infrastructure for optimization and native code generation.