Jump to page: 1 2
Thread overview
Gordon programming language
Oct 24
Basile B.
Oct 26
JN
Oct 27
bauss
Oct 26
Dennis
Nov 16
Tony
October 24

Hello,

decided I'd post about my primarily D-influenced programming language here.

It's data oriented, compact and despite D's influence, has a very different personality with no emphasis on metaprogramming – albeit having simple polymorphism and even compile time execution. Stability is something I care about deeply so you can expect few to no deprecations over time after some initial instability perhaps.

Feature set is not large and I'm not willing to add a whole lot of "cool" convenience features besides what there already is, and there is no support for either OO or functional style programming. However, I'm rather open to adding features that unlock great performance benefits, such as intrinsics support.

The module system is similar to Rust and works nicely with conditional compilation in that you can exclude entire modules and directories and, unlike in Rust, use conditional symbols that are automatically visible to all submodules.

The compiler frontend is about 34k lines of code, self hosting and very fast. LLVM is the backend, but with the MIR used in the compiler, it's fairly straight forward to bolt on other backends.

Compiler source code:
https://github.com/tjhann/gordon

Website:
https://tjhann.github.io/gordon-web/

I don't know how to make websites... and I want a much lighter background actually.

Take a look! :)

October 24

On Sunday, 24 October 2021 at 10:13:14 UTC, Tero Hänninen wrote:

>

Hello,

decided I'd post about my primarily D-influenced programming language here.

[...]

Cool! I'll check it out 😎

October 24

On Sunday, 24 October 2021 at 10:13:14 UTC, Tero Hänninen wrote:

>

Hello,

decided I'd post about my primarily D-influenced programming language here.

Nice work.

>

It's data oriented, compact and despite D's influence, has a very different personality with no emphasis on metaprogramming – albeit having simple polymorphism and even compile time execution. Stability is something I care about deeply so you can expect few to no deprecations over time after some initial instability perhaps.

Feature set is not large and I'm not willing to add a whole lot of "cool" convenience features besides what there already is, and there is no support for either OO or functional style programming. However, I'm rather open to adding features that unlock great performance benefits, such as intrinsics support.

Support for LLVM intrinsics should be indeed of a great value added.
That could work by adding a new attribute with a string exp to recognize it.
without that the oprations that are done in the FPU can only be based on assembly and less inlinable.

>

The module system is similar to Rust and works nicely with conditional compilation in that you can exclude entire modules and directories and, unlike in Rust, use conditional symbols that are automatically visible to all submodules.

The compiler frontend is about 34k lines of code, self hosting and very fast. LLVM is the backend, but with the MIR used in the compiler, it's fairly straight forward to bolt on other backends.

Congrats for reaching self-hosting.

Once thing I notice is that there does not seem to be a way to generate debug info. You really should support them (LLVM C api has a whole header with everything you need to achieve that), because not only this allows to debug the compiler more easily but also can be used to easily instrument code in a generic way. With debug info, you can of course debug but also profile (valgrind --tool=calgrind), find leaks (valgrind), cover (kcov), etc.

>

Compiler source code:
https://github.com/tjhann/gordon

Website:
https://tjhann.github.io/gordon-web/

I don't know how to make websites... and I want a much lighter background actually.

Take a look! :)

October 24

On Sunday, 24 October 2021 at 11:33:51 UTC, Basile B. wrote:

>

Once thing I notice is that there does not seem to be a way to generate debug info. You really should support them (LLVM C api has a whole header with everything you need to achieve that), because not only this allows to debug the compiler more easily but also can be used to easily instrument code in a generic way. With debug info, you can of course debug but also profile (valgrind --tool=calgrind), find leaks (valgrind), cover (kcov), etc.

Oh yeah, this. Needs to happen, yes. I'm not much of a debugger guy myself having never used a debugger in my entire life so that side would be just for others but the other benefits attract me too. Thanks for bringing them up.

October 24
The Emperor would shoot you for interrupting his wedding with this news! Fire when Gordon's in range!
October 25
On Monday, 25 October 2021 at 00:39:07 UTC, Walter Bright wrote:
> The Emperor would shoot you for interrupting his wedding with this news! Fire when Gordon's in range!

Ohh sh*t, I've got to runnn!

Thanks for creating D, Walter. I liked the core D language the moment I first saw it and got immediately sucked in. Also wrote my boot compiler in it :)
October 25
On 10/25/2021 1:38 AM, Tero Hänninen wrote:
> On Monday, 25 October 2021 at 00:39:07 UTC, Walter Bright wrote:
>> The Emperor would shoot you for interrupting his wedding with this news! Fire when Gordon's in range!
> 
> Ohh sh*t, I've got to runnn!
> 
> Thanks for creating D, Walter. I liked the core D language the moment I first saw it and got immediately sucked in. Also wrote my boot compiler in it :)

Thanks for the kind words!

P.S. The quote is from Flash Gordon.
October 26
On Monday, 25 October 2021 at 18:38:15 UTC, Walter Bright wrote:
>
> Thanks for the kind words!
>
> P.S. The quote is from Flash Gordon.

Ah, didn't know about that although have heard the name somewhere.

I actually named my language after Gordon Freeman from the Half-Life games which I liked to play. He gets lots done with little resources and is silent. My favorite game character.
October 26
On Tuesday, 26 October 2021 at 04:38:40 UTC, Tero Hänninen wrote:
> On Monday, 25 October 2021 at 18:38:15 UTC, Walter Bright wrote:
>>
>> Thanks for the kind words!
>>
>> P.S. The quote is from Flash Gordon.
>
> Ah, didn't know about that although have heard the name somewhere.
>
> I actually named my language after Gordon Freeman from the Half-Life games which I liked to play. He gets lots done with little resources and is silent. My favorite game character.

I was hoping the language is inspired after Gordon Ramsay. With compile errors like:

"Look at these pointers, they're RAW",
"This syntax is disgusting"
"The code is not good enough!"
October 26
On Tuesday, 26 October 2021 at 10:11:34 UTC, JN wrote:
>> I actually named my language after Gordon Freeman from the Half-Life games which I liked to play. He gets lots done with little resources and is silent. My favorite game character.
>
> I was hoping the language is inspired after Gordon Ramsay. With compile errors like:
>
> "Look at these pointers, they're RAW",
> "This syntax is disgusting"
> "The code is not good enough!"

Haha! Maybe auto-enable such a mode on April 1st each year.
« First   ‹ Prev
1 2