Skip to content

wanderlan/llvm-pascal

Repository files navigation

LLVM-Pascal 2010.9.24 Pre-Alpha IV

Principal implementação deste release: Scanner e Parser

Home: http://llvm-pascal.googlecode.com
Forum: http://groups.google.com/group/llvm-pascal
License: BSD, http://www.opensource.org/licenses/bsd-license.php

- Por enquanto a "compilação" só faz análise léxica e sintática.
- Compilável com qualquer Delphi até versão XE e Free Pascal 2.4.
- Fonte extremamente pequeno e simples usando Orientação a Objetos com Object Pascal.
- "Compila" fontes do dialeto Delphi até a versão XE, não suporta operator overload no dialeto Delphi.
- "Compila" fontes do Lazarus até a versão 0.9.28.2 e Free Pascal até a versão 2.4, 
   suporta macros, generics, operator overload e literais binários.
- "Compila" ~148 klps (mil linhas por segundo) em um Intel E2200 Dual Core II 2.2 GHz com 2 GB de RAM e Windows XP SP3, 
   compilado com Turbo Delphi, com FPC 2.4 ~98 klps.
- Parte dessa diferença se refere às funções Pos, PosEx, UpperCase e LowerCase que são usadas no compilador, 
  que em Delphi são implementadas em Assembly e em FPC são implementadas em Pascal.
- O LLVM-Pascal substitui essas funções, apenas se compilado com FPC, por versões otimizadas em Pascal do site FastCode, 
  o FPC então vai para ~118 klps e o Turbo Delphi para ~147 klps usando FastCode.
- A performance não é tão boa (~95 klps) em Delphi 2009/2010/XE, pois nosso compilador é baseado em AnsiStrings e não em Unicode, gerando muita conversão na VCL. 
- "Compile" seu projeto com LLVM-Pascal e reporte suas questões no fórum: http://groups.google.com/group/llvm-pascal

Para "compilar" use:
LLVM_Pascal *.pas


linha de comando para comparação de performance: LLVM_Pascal "C:\Arquivos de programas\Borland\BDS\4.0\source\*.pas" -fi"C:\Arquivos de programas\Borland\BDS\4.0\source\dunit\contrib\dunitwizard\source\common\" -v1 -vmE130,E139

About

Automatically exported from code.google.com/p/llvm-pascal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published