Adorad - Fast, Expressive, & High-Performance Programming Language for those who dare

Overview

Twitter

Key Features of Adorad

  • Simplicity: the language can be learned in less than an hour
  • Fast compilation
  • Powerful Build System
  • Easy to develop: Adorad compiles itself in less than a second
  • Performance: >98% as fast as C (Adorad's main backend compiles to human-readable C)
  • Safety: no undefined behavior, immutability by default
  • Easy cross compilation

Installing Adorad from Source

git clone https://github.com/adorad/adorad
cd adorad
cmake -S . -B build

That's it! Now you have an Adorad executable at [path/to/adorad]/build/bin/.

Troubleshooting

Please file an issue in GitHub here

Supporting This Project

If you are able to and would like to sponsor this project, I'm available here:

It is never required, but always appreciated :)

Buy Jason a Coffee Buy Jason a Coffee Buy Jason a Coffee

Issues
  • Fix for few compiler warnings

    Fix for few compiler warnings

    Just tried build this project and found a few easy compiler warnings (about const viloation) and fixed then see bellow:

    diff --git a/.gitignore b/.gitignore
    index 52a96f7..e3d7726 100644
    --- a/.gitignore
    +++ b/.gitignore
    @@ -265,3 +265,4 @@ coverage.xml
     # Translations
     *.mo
     *.pot
    +/adorad-nb/dist/
    \ No newline at end of file
    diff --git a/adorad/compiler/lexer.c b/adorad/compiler/lexer.c
    index a9b32f1..2cb73c5 100644
    --- a/adorad/compiler/lexer.c
    +++ b/adorad/compiler/lexer.c
    @@ -347,7 +347,7 @@ static inline void lex_string(Lexer* lexer) {
     }
     
     // Returns whether `value` is a keyword or an identifier
    -static inline TokenKind is_keyword_or_identifier(char* value) {
    +static inline TokenKind is_keyword_or_identifier(const char* value) {
         // Search `tokenHash` for a match for `value`. 
         // If we can't find one, we assume an identifier
         for(TokenKind tokenkind = TOK___KEYWORDS_BEGIN + 1; tokenkind < TOK___KEYWORDS_END; tokenkind++)
    diff --git a/adorad/core/buffer.h b/adorad/core/buffer.h
    index fe82151..14f6582 100644
    --- a/adorad/core/buffer.h
    +++ b/adorad/core/buffer.h
    @@ -33,7 +33,7 @@ typedef cstlBuffer cstlBuffView;
     typedef cstlBuffer BuffView;
     
     struct cstlBuffer {
    -    char* data;    // buffer data
    +    const char* data;    // buffer data
         UInt64 len;    // buffer size
         // bool is_utf8;  // UTF-8 Strings
     };
    @@ -42,14 +42,14 @@ struct cstlBuffer {
     #define BV_FMT        "%.*s"
     #define BV_ARG(bv)    (int)(bv).len, (bv).data
     
    -cstlBuffer* buff_new(char* buff_data);
    +cstlBuffer* buff_new(const char* buff_data);
     char buff_at(cstlBuffer* buffer, UInt64 n);
     char* buff_begin(cstlBuffer* buffer);
     char* buff_end(cstlBuffer* buffer);
     bool buff_is_empty(cstlBuffer* buffer);
     void buff_append(cstlBuffer* buffer, cstlBuffer* buff2);
     void buff_append_char(cstlBuffer* buffer, char ch);
    -void buff_set(cstlBuffer* buffer, char* new_buff);
    +void buff_set(cstlBuffer* buffer, const char* new_buff);
     cstlBuffer* buff_clone(cstlBuffer* buffer);
     UInt64 buff_len(cstlBuffer* buffer);
     void buff_reset(cstlBuffer* buffer);
    @@ -76,7 +76,7 @@ bool buffview_cmp_nocase(cstlBuffView* view1, cstlBuffView* view2);
         #include <string.h>
         
         // Create a new `cstlBuffer`
    -    cstlBuffer* buff_new(char* buff_data) {
    +    cstlBuffer* buff_new(const char* buff_data) {
             cstlBuffer* buffer = cast(cstlBuffer*)calloc(1, sizeof(cstlBuffer));
             CORETEN_ENFORCE_NN(buffer, "Could not allocate memory. Memory full.");
     
    @@ -239,7 +239,7 @@ bool buffview_cmp_nocase(cstlBuffView* view1, cstlBuffView* view2);
         }
     
         // Assign `new_buff` to the buffer data
    -    void buff_set(cstlBuffer* buffer, char* new_buff) {
    +    void buff_set(cstlBuffer* buffer, const char* new_buff) {
             CORETEN_ENFORCE_NN(buffer, "Expected not null");
     
             UInt64 len;
    @@ -344,7 +344,7 @@ bool buffview_cmp_nocase(cstlBuffView* view1, cstlBuffView* view2);
             CORETEN_ENFORCE_NN(buffer, "Cannot clone a null buffer :(");
             cstlBuffer* clone = buff_new(null);
             char* dest = cast(char*)calloc(1, buff_len(buffer));
    -        char* source = buffer->data;
    +        const char* source = buffer->data;
     
             if(source) {
                 char* str = dest;
    @@ -362,7 +362,7 @@ bool buffview_cmp_nocase(cstlBuffView* view1, cstlBuffView* view2);
             CORETEN_ENFORCE(n > buffer->len);
             cstlBuffer* clone = buff_new(null);
             char* dest = cast(char*)calloc(1, buff_len(buffer));
    -        char* source = buffer->data;
    +        const char* source = buffer->data;
     
             if(source) {
                 char* str = dest;
    
    opened by mingodad 25
  • Adorad doesn't compile on MacOS (M1)

    Adorad doesn't compile on MacOS (M1)

    `adorad % cmake -S . -B build -- The C compiler identification is AppleClang 13.0.0.13000029 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - failed -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - broken CMake Error at /opt/pkg/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message): The C compiler

    "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc"
    

    is not able to compile a simple test program.

    It fails with the following output:

    Change Dir: /Users/matyasjanos/usr/src/adorad/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):/opt/pkg/bin/gmake -f Makefile cmTC_ff0e5/fast && /opt/pkg/bin/gmake  -f CMakeFiles/cmTC_ff0e5.dir/build.make CMakeFiles/cmTC_ff0e5.dir/build
    gmake[1]: Entering directory '/Users/matyasjanos/usr/src/adorad/build/CMakeFiles/CMakeTmp'
    Building C object CMakeFiles/cmTC_ff0e5.dir/testCCompiler.c.o
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc    -MD -MT CMakeFiles/cmTC_ff0e5.dir/testCCompiler.c.o -MF CMakeFiles/cmTC_ff0e5.dir/testCCompiler.c.o.d -o CMakeFiles/cmTC_ff0e5.dir/testCCompiler.c.o -c /Users/matyasjanos/usr/src/adorad/build/CMakeFiles/CMakeTmp/testCCompiler.c
    Linking C executable cmTC_ff0e5
    /opt/pkg/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff0e5.dir/link.txt --verbose=1
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_ff0e5.dir/testCCompiler.c.o -o cmTC_ff0e5 
    ld: library not found for -lSystem
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    gmake[1]: *** [CMakeFiles/cmTC_ff0e5.dir/build.make:100: cmTC_ff0e5] Error 1
    gmake[1]: Leaving directory '/Users/matyasjanos/usr/src/adorad/build/CMakeFiles/CMakeTmp'
    gmake: *** [Makefile:127: cmTC_ff0e5/fast] Error 2
    

    CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:2 (project)

    -- Configuring incomplete, errors occurred! See also "/Users/matyasjanos/usr/src/adorad/build/CMakeFiles/CMakeOutput.log". See also "/Users/matyasjanos/usr/src/adorad/build/CMakeFiles/CMakeError.log". `

    opened by mjanos5 4
  • Problem with build from source

    Problem with build from source

    Hi, I'm trying to compile this on windows and the read me seems like old (there isn't any make.bat file) and ran cmake (I'm not familiar with cmake) and I got the following error message:

    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19041.
    -- The C compiler identification is MSVC 19.26.28806.0
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx64/x64/cl.exe
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx64/x64/cl.exe -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Build type not set - defaulting to Release
    --------- [INFO] CMAKE_C_COMPILER_ID               == MSVC
    --------- [INFO] CMAKE_C_COMPILER_FRONTEND_VARIANT ==
    --------- [INFO] Building libHazelStatic
    --------- [INFO] Fetching Muon from GitHub
    -- The CXX compiler identification is MSVC 19.26.28806.0
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx64/x64/cl.exe
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx64/x64/cl.exe -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    CMake Error at build/_deps/muon-src/CMakeLists.txt:206 (set_target_properties):
      INTERFACE_LIBRARY targets may only have whitelisted properties.  The
      property "VERSION" is not allowed.
    
    
    --------- [INFO] Building the Static Library for HazelInternalTests
    -- Configuring incomplete, errors occurred!
    See also "C:/lang/Hazel/build/CMakeFiles/CMakeOutput.log".
    

    And here is the log file CMakeOutput.log

    The system is: Windows - 10.0.19041 - AMD64
    Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
    Compiler:  
    Build flags: 
    Id flags:  
    
    The output was:
    0
    Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Build started 5/22/2021 3:30:30 AM.
    Project "C:\lang\Hazel\build\CMakeFiles\3.15.0-rc4\CompilerIdC\CompilerIdC.vcxproj" on node 1 (default targets).
    PrepareForBuild:
      Creating directory "Debug\".
      Creating directory "Debug\CompilerIdC.tlog\".
    InitializeBuildStatus:
      Creating "Debug\CompilerIdC.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
    ClCompile:
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64\CL.exe /c /nologo /W0 /WX- /diagnostics:column /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\" /Fd"Debug\vc142.pdb" /Gd /TC /FC /errorReport:queue CMakeCCompilerId.c
      CMakeCCompilerId.c
    Link:
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdC.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdC.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdC.lib" /MACHINE:X64 Debug\CMakeCCompilerId.obj
      CompilerIdC.vcxproj -> C:\lang\Hazel\build\CMakeFiles\3.15.0-rc4\CompilerIdC\.\CompilerIdC.exe
    PostBuildEvent:
      for %%i in (cl.exe) do @echo CMAKE_C_COMPILER=%%~$PATH:i
      :VCEnd
      CMAKE_C_COMPILER=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\Hostx64\x64\cl.exe
    FinalizeBuildStatus:
      Deleting file "Debug\CompilerIdC.tlog\unsuccessfulbuild".
      Touching "Debug\CompilerIdC.tlog\CompilerIdC.lastbuildstate".
    Done Building Project "C:\lang\Hazel\build\CMakeFiles\3.15.0-rc4\CompilerIdC\CompilerIdC.vcxproj" (default targets).
    
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    
    Time Elapsed 00:00:01.00
    
    
    Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CompilerIdC.exe"
    
    Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CompilerIdC.vcxproj"
    
    The C compiler identification is MSVC, found in "C:/lang/Hazel/build/CMakeFiles/3.15.0-rc4/CompilerIdC/CompilerIdC.exe"
    
    Determining if the C compiler works passed with the following output:
    Change Dir: C:/lang/Hazel/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_7b9b4.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
    
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    
    
      Microsoft (R) C/C++ Optimizing Compiler Version 19.26.28806 for x64
    
      testCCompiler.c
    
      Copyright (C) Microsoft Corporation.  All rights reserved.
    
      cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_7b9b4.dir\Debug\\" /Fd"cmTC_7b9b4.dir\Debug\vc142.pdb" /Gd /TC /errorReport:queue C:\lang\Hazel\build\CMakeFiles\CMakeTmp\testCCompiler.c
    
      cmTC_7b9b4.vcxproj -> C:\lang\Hazel\build\CMakeFiles\CMakeTmp\Debug\cmTC_7b9b4.exe
    
    
    
    
    Detecting C compiler ABI info compiled with the following output:
    Change Dir: C:/lang/Hazel/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_0695d.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
    
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    
    
      Microsoft (R) C/C++ Optimizing Compiler Version 19.26.28806 for x64
    
      CMakeCCompilerABI.c
    
      Copyright (C) Microsoft Corporation.  All rights reserved.
    
      cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_0695d.dir\Debug\\" /Fd"cmTC_0695d.dir\Debug\vc142.pdb" /Gd /TC /errorReport:queue "C:\dev\__enviorment\cmake\share\cmake-3.15\Modules\CMakeCCompilerABI.c"
    
      cmTC_0695d.vcxproj -> C:\lang\Hazel\build\CMakeFiles\CMakeTmp\Debug\cmTC_0695d.exe
    
    
    
    
    Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
    Compiler:  
    Build flags: 
    Id flags:  
    
    The output was:
    0
    Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Build started 5/22/2021 3:30:37 AM.
    Project "C:\lang\Hazel\build\CMakeFiles\3.15.0-rc4\CompilerIdCXX\CompilerIdCXX.vcxproj" on node 1 (default targets).
    PrepareForBuild:
      Creating directory "Debug\".
      Creating directory "Debug\CompilerIdCXX.tlog\".
    InitializeBuildStatus:
      Creating "Debug\CompilerIdCXX.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
    ClCompile:
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64\CL.exe /c /nologo /W0 /WX- /diagnostics:column /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\" /Fd"Debug\vc142.pdb" /Gd /TP /FC /errorReport:queue CMakeCXXCompilerId.cpp
      CMakeCXXCompilerId.cpp
    Link:
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdCXX.lib" /MACHINE:X64 Debug\CMakeCXXCompilerId.obj
      CompilerIdCXX.vcxproj -> C:\lang\Hazel\build\CMakeFiles\3.15.0-rc4\CompilerIdCXX\.\CompilerIdCXX.exe
    PostBuildEvent:
      for %%i in (cl.exe) do @echo CMAKE_CXX_COMPILER=%%~$PATH:i
      :VCEnd
      CMAKE_CXX_COMPILER=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\Hostx64\x64\cl.exe
    FinalizeBuildStatus:
      Deleting file "Debug\CompilerIdCXX.tlog\unsuccessfulbuild".
      Touching "Debug\CompilerIdCXX.tlog\CompilerIdCXX.lastbuildstate".
    Done Building Project "C:\lang\Hazel\build\CMakeFiles\3.15.0-rc4\CompilerIdCXX\CompilerIdCXX.vcxproj" (default targets).
    
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    
    Time Elapsed 00:00:00.71
    
    
    Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.exe"
    
    Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.vcxproj"
    
    The CXX compiler identification is MSVC, found in "C:/lang/Hazel/build/CMakeFiles/3.15.0-rc4/CompilerIdCXX/CompilerIdCXX.exe"
    
    Determining if the CXX compiler works passed with the following output:
    Change Dir: C:/lang/Hazel/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_98977.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
    
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    
    
      Microsoft (R) C/C++ Optimizing Compiler Version 19.26.28806 for x64
    
      testCXXCompiler.cxx
    
      Copyright (C) Microsoft Corporation.  All rights reserved.
    
      cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"cmTC_98977.dir\Debug\\" /Fd"cmTC_98977.dir\Debug\vc142.pdb" /Gd /TP /errorReport:queue C:\lang\Hazel\build\CMakeFiles\CMakeTmp\testCXXCompiler.cxx
    
      cmTC_98977.vcxproj -> C:\lang\Hazel\build\CMakeFiles\CMakeTmp\Debug\cmTC_98977.exe
    
    
    
    
    Detecting CXX compiler ABI info compiled with the following output:
    Change Dir: C:/lang/Hazel/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe cmTC_75af1.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=16.0 /v:m && Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
    
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    
    
      Microsoft (R) C/C++ Optimizing Compiler Version 19.26.28806 for x64
    
      CMakeCXXCompilerABI.cpp
    
      Copyright (C) Microsoft Corporation.  All rights reserved.
    
      cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"cmTC_75af1.dir\Debug\\" /Fd"cmTC_75af1.dir\Debug\vc142.pdb" /Gd /TP /errorReport:queue "C:\dev\__enviorment\cmake\share\cmake-3.15\Modules\CMakeCXXCompilerABI.cpp"
    
      cmTC_75af1.vcxproj -> C:\lang\Hazel\build\CMakeFiles\CMakeTmp\Debug\cmTC_75af1.exe
    
    
    opened by imsomedev 2
  • [Build] Cannot find source file: ../HazelInternalTests/main.c

    [Build] Cannot find source file: ../HazelInternalTests/main.c

    [[email protected] Hazel]$ ls
    build  CMake  CMakeLists.txt  docs  Hazel  LICENSE  Makefile  README.md  test  tools
    
    [[email protected] Hazel]$ make
    gcc: fatal error: no input files
    compilation terminated.
    make: *** [Makefile:51: all] Error 1
    
    [[email protected] Hazel]$ cd build/
    [[email protected] build]$ cmake ..
    --------- [INFO] CMAKE_C_COMPILER_ID               == GNU
    --------- [INFO] CMAKE_C_COMPILER_FRONTEND_VARIANT == 
    --------- [INFO] Building libHazelStatic
    --------- [INFO] Fetching Muon from GitHub
    --------- [INFO] Building the Static Library for HazelInternalTests 
    -- Configuring done
    CMake Error at test/CMakeLists.txt:63 (add_executable):
      Cannot find source file:
    
        ../HazelInternalTests/main.c
    
      Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .h .hh .h++
      .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .ispc
    
    
    CMake Error at test/CMakeLists.txt:63 (add_executable):
      No SOURCES given to target: HazelInternalStatic
    
    
    CMake Error at test/CMakeLists.txt:46 (add_library):
      No SOURCES given to target: libHazelInternalTests
    
    
    CMake Generate step failed.  Build files cannot be regenerated correctly.
    
    opened by BaseMax 2
  • Building on Mac failed

    Building on Mac failed

    I am trying to build hazel on mac but failed.

    this is the output:

    https://gist.github.com/Willyboar/58bb40da7093d60e0d10d66729dc70d0

    Also the doc has a lot of Vs. Prolly because you take the doc draft from V.

    opened by Willyboar 1
  • Difficult for me to read all the code

    Difficult for me to read all the code

    I wish to take out a edition code clean enough for one platform: X86_64, so the code will get clean without to much processtion about muliti-platform.

    I want to focus on a platform:x86_64, then get into the code

    opened by Lisprez 1
  • Build process doesn't output a bin/ directory on Linux

    Build process doesn't output a bin/ directory on Linux

    I followed the instructions and got this:

    [email protected]:~/code/repos/adorad$ cmake -S . -B build
    -- The C compiler identification is GNU 9.3.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Build type not set - defaulting to Release
    --------- [INFO] CMAKE_C_COMPILER_ID               == GNU
    --------- [INFO] CMAKE_C_COMPILER_FRONTEND_VARIANT == 
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/ubuntu/code/repos/adorad/build
    

    Which sounds good... but there are no executables in the build directory, nor adorad, nor build/adorad:

    [email protected]:~/code/repos/adorad$ ls build/
    CMakeCache.txt  CMakeFiles  Makefile  adorad  cmake_install.cmake  compile_commands.json  lib
    
    [email protected]:~/code/repos/adorad$ ls adorad/
    CMakeLists.txt  adorad.h  compiler  core  main.c  maininternaltests.c
    
    [email protected]:~/code/repos/adorad$ ls build/adorad/
    CMakeFiles  Makefile  cmake_install.cmake  core
    

    How can I build the adorad executable?

    [email protected]:~/code/repos/adorad/build/adorad$ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 20.04.2 LTS
    Release:	20.04
    Codename:	focal
    
    [email protected]:~/code/repos/adorad/build/adorad$ uname -a
    Linux myhostname 5.4.0-45-generic #49-Ubuntu SMP Wed Aug 26 13:38:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    

    Thanks!

    opened by elimisteve 1
  • Leading vs Trailing Types

    Leading vs Trailing Types

    This has been on my mind for quite some time now. A few months ago in #2, I remarked that I prefer leading types similar to how C/C++/D and a few other languages do it:

    UInt32 x;
    

    was much better than

    x : UInt32;
    

    And for the most part, this argument holds. Because assume an assignment expression such as

    UInt32 x = 3; // here, it's clear that 3 is assigned to x
    

    But with trailing types, this becomes:

    x : UInt32 = 3; // 3 gets assigned to UInt32??
    

    It requires a bit more work on the part of the reader to realize the 3 is in fact getting assigned to x and not UInt32.

    I want to go out on a limb here and say that just because new languages today like Rust, Go, Zig, V (which is like a >90% clone of Go) utilize trailing type syntax, it doesn't mean that it's the right syntax. Don't get me wrong -- many people love these languages, but I doubt it's because of the trailing type syntax.

    So here are my two cents for this language:

    1. Enforce strongly-typed syntax like C/C++: UInt32 x = 3.... Utilize the keyword any whenever you want the compiler to automatically enforce a type for you.
    2. Make typed syntax completely optional, making the compiler enforce types wherever types are not mentioned.

    I'm quite liking the second option, but this inevitably leads to trailing type syntax. By making the specifying of types optional, however, we're making the compiler infer types from assignments which shouldn't be a problem really at this time.

    Needless, let me illustrate both cases with arbitrary examples:

    Option 1

    UInt32 x;
    mutable UInt64 y = 3;
    y = 75;
    any z = "some string";  // binds to a `String`
    
    // Inside a struct:
    struct Items {
        Float32 x;
        Float64 y;
    }
    

    Option 2

    x = 3;
    mutable y = 3;
    y = 75;
    
    // Inside a container member, you'll need to provide types
    struct Items { 
        x : Float32;
        y : Float64; 
    }
    

    There is no need for keywords like var or const (JavaScript/Zig) because, in this language, data is immutable by default ("const") with the mutable keyword to make it, well, mutable ("var").

    Let me know what you think of the two options above. If you have your own suggestions, feel free to leave them below. We're at a stage in the language where breaking changes are entirely possible.

    enhancement thoughts 
    opened by jasmcaus 1
  • Switch from C --> C++

    Switch from C --> C++

    This has been on my mind for quite some time now. C's a great (and extremely fast) language, but I absolutely miss OOP. When implementing the Lexer, my mind was screaming for OOP.

    Right now, I might try an interop b/w the 2 languages. I don't think it matters which implementation language is used currently because ultimately we hope to bootstrap this language.

    enhancement 
    opened by jasmcaus 5
Owner
Adorad
The Adorad Programming Language
Adorad
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

CatBoost 6.7k Aug 2, 2022
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed a

Microsoft 14.1k Aug 10, 2022
New ultra super robust and fast programming language, fully supportable by G++ and Clang

Cplusplusplus New ultra super robust and fast programming language, fully supportable by G++ and Clang How to use: Just write #include <C+++.h> in you

Vladimir Melnikov 1 Nov 29, 2021
Pipy is a tiny, high performance, highly stable, programmable proxy.

Pipy Pipy is a tiny, high performance, highly stable, programmable proxy. Written in C++, built on top of Asio asynchronous I/O library, Pipy is extre

null 460 Aug 3, 2022
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Aug 1, 2022
Forward - A library for high performance deep learning inference on NVIDIA GPUs

a library for high performance deep learning inference on NVIDIA GPUs.

Tencent 123 Mar 17, 2021
A library for high performance deep learning inference on NVIDIA GPUs.

Forward - A library for high performance deep learning inference on NVIDIA GPUs Forward - A library for high performance deep learning inference on NV

Tencent 502 Jul 31, 2022
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator

ONNX Runtime is a cross-platform inference and training machine-learning accelerator compatible with deep learning frameworks, PyTorch and TensorFlow/Keras, as well as classical machine learning libraries such as scikit-learn, and more.

Microsoft 7.3k Aug 6, 2022
Edge ML Library - High-performance Compute Library for On-device Machine Learning Inference

Edge ML Library (EMLL) offers optimized basic routines like general matrix multiplications (GEMM) and quantizations, to speed up machine learning (ML) inference on ARM-based devices. EMLL supports fp32, fp16 and int8 data types. EMLL accelerates on-device NMT, ASR and OCR engines of Youdao, Inc.

NetEase Youdao 176 Jul 21, 2022
LightSeq: A High Performance Library for Sequence Processing and Generation

LightSeq is a high performance training and inference library for sequence processing and generation implemented in CUDA. It enables highly efficient computation of modern NLP models such as BERT, GPT, Transformer, etc. It is therefore best useful for Machine Translation, Text Generation, Dialog, Language Modelling, Sentiment Analysis, and other related tasks with sequence data.

Bytedance Inc. 2.2k Aug 3, 2022
A flexible, high-performance serving system for machine learning models

XGBoost Serving This is a fork of TensorFlow Serving, extended with the support for XGBoost, alphaFM and alphaFM_softmax frameworks. For more informat

iQIYI 120 Aug 1, 2022
PPLNN is a high-performance deep-learning inference engine for efficient AI inferencing.

PPLNN, which is short for "PPLNN is a Primitive Library for Neural Network", is a high-performance deep-learning inference engine for efficient AI inferencing.

null 847 Aug 6, 2022
DeepRTS is a high-performance Real-TIme strategy game for Reinforcement Learning research written in C++

DeepRTS is a high-performance Real-TIme strategy game for Reinforcement Learning research. It is written in C++ for performance, but provides an python interface to better interface with machine-learning toolkits. Deep RTS can process the game with over 6 000 000 steps per second and 2 000 000 steps when rendering graphics. In comparison to other solutions, such as StarCraft, this is over 15 000% faster simulation time running on Intel i7-8700k with Nvidia RTX 2080 TI.

Centre for Artificial Intelligence Research (CAIR) 146 Jul 29, 2022
An Out-of-the-Box TensorRT-based Framework for High Performance Inference with C++/Python Support

An Out-of-the-Box TensorRT-based Framework for High Performance Inference with C++/Python Support

手写AI 1.1k Aug 8, 2022
ncnn is a high-performance neural network inference framework optimized for the mobile platform

ncnn ncnn is a high-performance neural network inference computing framework optimized for mobile platforms. ncnn is deeply considerate about deployme

Tencent 15.1k Aug 2, 2022
C++ high-performance gym environment framework

gym_cpp author: yeting email : [email protected] C++ high-performance gym environment framework Dependence apt install python3 python3-dev cmake pip3

Ye Ting 1 Dec 26, 2021
Beringei is a high performance, in-memory storage engine for time series data.

** THIS REPO HAS BEEN ARCHIVED AND IS NO LONGER BEING ACTIVELY MAINTAINED ** Beringei A high performance, in memory time series storage engine In the

Meta Archive 3.1k Aug 4, 2022
TensorRT is a C++ library for high performance inference on NVIDIA GPUs and deep learning accelerators.

TensorRT Open Source Software This repository contains the Open Source Software (OSS) components of NVIDIA TensorRT. Included are the sources for Tens

NVIDIA Corporation 5.7k Aug 8, 2022
High performance physically based renderer in C++11

The Tungsten Renderer About Tungsten is a physically based renderer originally written for the yearly renderer competition at ETH. It simulates full l

Benedikt Bitterli 1.6k Aug 9, 2022