Goose  Diff

Differences From Artifact [9d077b6940]:

  • File bs/builtins/types/runtime/runtime.h — part of check-in [0c646816e4] at 2023-02-20 17:54:25 on branch trunk — Migrated to clang16/llvm16. Created a shitty layer on top of llvm to cope with losing the pointee types from llvm pointer types (which are now opaques). It was a huge pain in the ass. (user: zlodo size: 668)

To Artifact [dfcbb01508]:

  • File bs/builtins/types/runtime/runtime.h — part of check-in [1793989d05] at 2024-02-09 18:05:28 on branch trunk — Lowering: completely reworked all lowering to happen in the same two unified extension points upstream of all three CIR consumers (user: zlodo size: 611)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1
2
3
4
5
6

7
8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24






-











-







#ifndef GOOSE_BUILTINS_TYPES_RUNTIME_H
#define GOOSE_BUILTINS_TYPES_RUNTIME_H

#include "basic.h"
#include "pointer.h"
#include "array.h"
#include "record.h"

namespace goose::builtins
{
    extern void SetupRuntimeBasicTypes( Env& e );
    extern void SetupRuntimeTypesChecking( Env& e );

    static inline void SetupRuntimeTypes( Env& e )
    {
        SetupRuntimeBasicTypes( e );
        SetupRuntimePointerType( e );
        SetupRuntimeArrayType( e );
        SetupRuntimeRecordType( e );
        SetupRuntimeTypesChecking( e );
    }

    extern bool IsRuntimeType( const Value& t );
    extern const codegen::Type* GetCodegenType( const Value& t );
}