<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - BlitzLLVM</title>
		<link>https://www.blitzforum.de/worklogs/578/</link>
		<description>Worklog von Xaymar</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Sat, 31 Oct 2026 12:35:25 +0100</pubDate>
		<lastBuildDate>Sat, 31 Oct 2026 12:35:25 +0100</lastBuildDate>

		<item>
			<title>Ein funktionierende Recompiler/Transpiler für Blitz3D?!</title>
			<link>https://www.blitzforum.de/worklogs/578/#3972</link>
			<guid>https://www.blitzforum.de/worklogs/578/#3972</guid>
			<author>Xaymar</author>
			<description>&lt;b&gt;Die Vergangenheit&lt;/b&gt;&lt;br /&gt;Alles f&amp;auml;ngt irgendwo mal an, und f&amp;uuml;r dieses Projekt war es mit einem reverse engineertem build von Blitz3D - ein paar hacks hier und da und zack gingen schon 2560x1440 statt nur 2048x2048. Ein meilenweiter sprung f&amp;uuml;r moderne systeme, aber die Geschwindigkeit lie&amp;szlig; leider auf sich warten. Sp&amp;auml;ter gab es dann den Source Code f&amp;uuml;r Blitz3D und daraus wurde &lt;a href=&quot;https://github.com/Xaymar/BlitzNext&quot; target=&quot;_blank&quot;&gt;BlitzNext&lt;/a&gt; - leider musste ich dies Aufgrund meiner Arbeit aufgeben, oder eher zum Gl&amp;uuml;ck.&lt;br /&gt;&lt;br /&gt;Denn ohne diese Vergangenheit w&amp;auml;re &lt;a href=&quot;https://github.com/Xaymar/BlitzLLVM/&quot; target=&quot;_blank&quot;&gt;BlitzLLVM&lt;/a&gt; nicht entstanden. Anstatt mit etwas existierendem anzufangen und es zwanghaft auf moderne standards zu bringen, warum nicht einfach von vorne anfangen? Es kann ja schlie&amp;szlig;lich nicht so schwer sein und sicherlich werde ich nicht unterbr- oh geil, mein Lohn reicht auf einmal nicht mehr. Ging also wieder in die Schublade zur&amp;uuml;ck.&lt;br /&gt;&lt;br /&gt;Und jetzt ist es endlich hier, aber nur \\\&amp;quot;dank\\\&amp;quot; AI - Claude Sonnet um genau zu sein. F&amp;uuml;r mich hie&amp;szlig; es: Geil ich kann Stranded 2 wieder auf mehr als 3 fps spielen, f&amp;uuml;r andere hei&amp;szlig;t es wohl \\\&amp;quot;cool mein Blitz3D projekt l&amp;auml;uft nun unter modernen Systemen\\\&amp;quot; und f&amp;uuml;r noch andere hei&amp;szlig;ts wohl \\\&amp;quot;wieder so ein schei&amp;szlig; AI projekt das nur Arbeitspl&amp;auml;tze klaut\\\&amp;quot; usw. Mir Wurst, Stranded 2 l&amp;auml;uft!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Und was ist es nun?&lt;/b&gt;&lt;br /&gt;Das ist echt einfach: BlitzLLVM ist ein LLVM basierter transpiler f&amp;uuml;r BlitzBasic, Blitz3D und BlitzPlus! Es nutzt Vulkan+SDL3 f&amp;uuml;r Grafik, FFmpeg+SDL3 f&amp;uuml;r Audio und Video, unterst&amp;uuml;tzt Windows, Linux, und macOS, kann x86, x86-64, arm64, und einiges mehr. Die ganze Liste an features ist inzwischen extrem lang, aber daf&amp;uuml;r ist dieser worklog ja da. Gucken wir uns doch mal die gr&amp;ouml;&amp;szlig;ten unterschiede so an:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Transpiler / Compiler:&lt;/b&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Echte Optimierungen dank LLVM: Der Unterschied zwischen Debug und Release ist nun nicht mehr ob da ein Debugger fenster dran klebt.&lt;br /&gt;&lt;li&gt;Multi-Platform und Multi-Arch: Windows 32-bit ist nicht mehr das limit, alles was LLVM/clang hat kann nun verwendet werden - Linux, macOS, 64-bit, ARM, x86, x86-64. &lt;br /&gt;&lt;li&gt;Deutlich schnellere Speicheralloziierungen: Der Heap allocator vom System wird nicht mehr mit anfrangen zugebombt, sondern es wird ein gro&amp;szlig;er Block geholt und der wird unterteilt.&lt;br /&gt;&lt;li&gt;Echte Warnungen und Fehler vom Lexer und Parser: -W0 bis -W4 schaltet nun weitere Warnungen an oder aus, der Standard ist -W2. Z.b. -Wunused-result gibt eine Warnung aus wenn eine Funktion etwas zur&amp;uuml;ckgibt aber das Ergebnis ignoriert wird.&lt;br /&gt;&lt;li&gt;Kein BLITZPATH zwang mehr!&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Syntax:&lt;/b&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Neue Datentypen: Byte/Int8, UByte/UInt8, Short/Int16, UShort/UInt16, Int/Int32, UInt/UInt32, Long/Int64, ULong/UInt64, Half/Float16, Float/Float32, Double/Float64. Verwendbar mit dem Syntax \\\&amp;quot;Variable:Type\\\&amp;quot;&lt;br /&gt;&lt;li&gt;Parameter k&amp;ouml;nnen nun In, Out oder InOut sein. Ein In parameter ist der alte standard, ein Out parameter kann in eine funktion gegeben werden und muss geschrieben werden, und ein InOut ist beides in einem.[syntax=\\\&amp;quot;bb\\\&amp;quot;]Function MyFunction(In A:Int32, Out B:Int32 = 0, InOut C:Int32 = 2)&lt;br /&gt;    B = C&lt;br /&gt;End Function[/syntax]&lt;br /&gt;&lt;li&gt;Funktionen k&amp;ouml;nnen nun mit dem Void Datentyp angeben das nichts zur&amp;uuml;ckgegeben wird. Eine Funktion mit :Void l&amp;auml;sst Return mit Daten (z.b. Return 4) als Fehler ausgeben.&lt;br /&gt;&lt;li&gt;For ... Step ... erlaubt nun das der Step eine variable ist, wenn man sich selbst sabotieren will.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Grundfunktionen:&lt;/b&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Int(String) l&amp;auml;sst nun $ (0x) und % (0b) zu f&amp;uuml;r String to Int konvertierungen.&lt;br /&gt;&lt;li&gt;Include ... ist nun immer relativ zur Datei die man kompiliert anstatt relativ zum ordner in dem man blitzcc ausf&amp;uuml;hrt.&lt;br /&gt;&lt;li&gt;Input, Print, Write und &amp;auml;hnliche Befehle gehen nun in die Konsole. &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;und noch so viel mehr. Es ist einfach so viel neu drin das ich das nicht in einem post unterbringen kann. Aber willkommen in 2026, kompiliert eure alten Blitz3D titel doch mal neu und zeigt so ob es noch l&amp;auml;uft.&lt;br /&gt;&lt;br /&gt;Wenn ihr darauf bock habt: &lt;a href=&quot;https://github.com/Xaymar/BlitzLLVM/releases/tag/nightly&quot; target=&quot;_blank&quot;&gt;DOWNLOAD&lt;/a&gt; &amp;lt;- immer aktuell!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Nachwort&lt;/b&gt;&lt;br /&gt;Ein gro&amp;szlig;es Danke geht noch an DexBeyond f&amp;uuml;r den Zugriff auf ein Projekt das tats&amp;auml;chlich noch in Blitz3D entwickelt wurde - So konnten einige Probleme schnell gefunden und behoben werden. Guckt euch &lt;a href=&quot;https://beyondfrontiers.eu/&quot; target=&quot;_blank&quot;&gt;beyond.frontiers&lt;/a&gt; mal an wenn man lust drauf hat.</description>
			<pubDate>Sat, 31 Oct 2026 12:35:25 +0100</pubDate>
		</item>


	</channel>
</rss>
