-
Notifications
You must be signed in to change notification settings - Fork 111
Open
Description
Hi, I have the following code in fibI.das
file
def fibI(n)
var last = 1
var cur = 0
for i in range(n)
let tmp = cur
cur += last
last = tmp
return cur
[export]
def main
print("{fibI(6511134)}")
I call das -aot fibI.das fibI.cpp
which creates fibI.cpp
file
#include "daScript/misc/platform.h"
#include "daScript/simulate/simulate.h"
#include "daScript/simulate/aot.h"
#include "daScript/simulate/aot_library.h"
// require builtin
#if defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable:4100) // unreferenced formal parameter
#pragma warning(disable:4189) // local variable is initialized but not referenced
#pragma warning(disable:4244) // conversion from 'int32_t' to 'float', possible loss of data
#pragma warning(disable:4114) // same qualifier more than once
#pragma warning(disable:4623) // default constructor was implicitly defined as deleted
#pragma warning(disable:4946) // reinterpret_cast used between related classes
#pragma warning(disable:4269) // 'const' automatic data initialized with compiler generated default constructor produces unreliable results
#pragma warning(disable:4555) // result of expression not used
#endif
#if defined(__EDG__)
#pragma diag_suppress 826
#elif defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic ignored "-Wwrite-strings"
#pragma GCC diagnostic ignored "-Wreturn-local-addr"
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
#pragma GCC diagnostic ignored "-Wsign-compare"
#pragma GCC diagnostic ignored "-Wsubobject-linkage"
#endif
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-parameter"
#pragma clang diagnostic ignored "-Wwritable-strings"
#pragma clang diagnostic ignored "-Wunused-variable"
#pragma clang diagnostic ignored "-Wunused-but-set-variable"
#pragma clang diagnostic ignored "-Wunsequenced"
#pragma clang diagnostic ignored "-Wunused-function"
#endif
namespace das {
namespace _anon_15797834376470220468 {
static void resolveTypeInfoAnnotations()
{
}
inline void main_2f7179f6f3814808 ( Context * __context__ );
void __init_script ( Context * __context__, bool __init_shared )
{
}
inline void main_2f7179f6f3814808 ( Context * __context__ )
{
builtin_print(((char *) "1781508648"),__context__,((LineInfoArg *)(&LineInfo::g_LineInfoNULL)));
}
static void registerAotFunctions ( AotLibrary & aotLib ) {
// main_2f7179f6f3814808
aotLib[0xb1c421b06a36eb6e] = [&](Context & ctx){
return ctx.code->makeNode<SimNode_Aot<void (*) ( Context * __context__ ),&main_2f7179f6f3814808>>();
};
resolveTypeInfoAnnotations();
};
AotListBase impl(registerAotFunctions);
}
}
#if defined(_MSC_VER)
#pragma warning(pop)
#endif
#if defined(__EDG__)
#pragma diag_default 826
#elif defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic pop
#endif
#if defined(__clang__)
#pragma clang diagnostic pop
#endif
when I'm trying to build executable with the command clang++ -O3 -I../include fibI.cpp -o fib_das
, I have an error
/usr/bin/ld: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../lib64/Scrt1.o: in function `_start':
(.text+0x1b): undefined reference to `main'
/usr/bin/ld: /tmp/fibI-3c0619.o: in function `std::_Function_handler<das::SimNode* (das::Context&), das::_anon_15797834376470220468::registerAotFunctions(std::unordered_map<unsigned long, std::function<das::SimNode* (das::Context&)>, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::function<das::SimNode* (das::Context&)> > > >&)::$_0>::_M_invoke(std::_Any_data const&,das::Context&)':
fibI.cpp:(.text+0xc6): undefined reference to `das::LinearChunkAllocator::allocate(unsigned int)'
/usr/bin/ld: /tmp/fibI-3c0619.o: in function `das::_anon_15797834376470220468::main_2f7179f6f3814808(das::Context*)':
fibI.cpp:(.text._ZN3das26_anon_1579783437647022046821main_2f7179f6f3814808EPNS_7ContextE[_ZN3das26_anon_1579783437647022046821main_2f7179f6f3814808EPNS_7ContextE]+0xd): undefined reference to `das::LineInfo::g_LineInfoNULL'
/usr/bin/ld: fibI.cpp:(.text._ZN3das26_anon_1579783437647022046821main_2f7179f6f3814808EPNS_7ContextE[_ZN3das26_anon_1579783437647022046821main_2f7179f6f3814808EPNS_7ContextE]+0x12): undefined reference to `das::builtin_print(char*, das::Context*, das::LineInfoArg*)'
/usr/bin/ld: /tmp/fibI-3c0619.o: in function `das::SimNode_Aot<void (*)(das::Context*), &das::_anon_15797834376470220468::main_2f7179f6f3814808>::eval(das::Context&)@@16':
fibI.cpp:(.text._ZN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEE4evalERS1_@@16[_ZN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEE4evalERS1_]+0x38): undefined reference to `das::LineInfo::g_LineInfoNULL'
/usr/bin/ld: fibI.cpp:(.text._ZN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEE4evalERS1_@@16[_ZN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEE4evalERS1_]+0x40): undefined reference to `das::builtin_print(char*, das::Context*, das::LineInfoArg*)'
/usr/bin/ld: /tmp/fibI-3c0619.o: in function `_GLOBAL__sub_I_fibI.cpp':
fibI.cpp:(.text.startup+0xf): undefined reference to `das::AotListBase::AotListBase(void (*)(std::unordered_map<unsigned long, std::function<das::SimNode* (das::Context&)>, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::function<das::SimNode* (das::Context&)> > > >&))'
/usr/bin/ld: /tmp/fibI-3c0619.o:(.data.rel.ro._ZTVN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEEE[_ZTVN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEEE]+0x10): undefined reference to `das::SimNode_CallBase::copyNode(das::Context&, das::NodeAllocator*)'
/usr/bin/ld: /tmp/fibI-3c0619.o:(.data.rel.ro._ZTVN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEEE[_ZTVN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEEE]+0x20): undefined reference to `das::SimNode::visit(das::SimVisitor&)'
/usr/bin/ld: /tmp/fibI-3c0619.o:(.data.rel.ro._ZTIN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEEE[_ZTIN3das11SimNode_AotIPFvPNS_7ContextEEXadL_ZNS_26_anon_1579783437647022046821main_2f7179f6f3814808ES2_EEEE]+0x10): undefined reference to `typeinfo for das::SimNode_CallBase'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
What I'm doing incorrectly? Unfortunately, I haven't found instruction in the documentation, and I don't understand tutorial02
thing and how I can apply it to my case?
I'm on Arch Linux, with lastest GCC and Clang and dev tools
Metadata
Metadata
Assignees
Labels
No labels