GithubHelp home page GithubHelp logo

tdlib / td Goto Github PK

View Code? Open in Web Editor NEW
6.5K 284.0 1.3K 51.81 MB

Cross-platform library for building Telegram clients

Home Page: https://core.telegram.org/tdlib

License: Boost Software License 1.0

Python 0.04% CMake 0.85% C++ 96.07% PowerShell 0.03% Shell 0.13% C 1.19% PHP 0.48% Java 0.33% C# 0.16% Swift 0.04% JavaScript 0.37% HTML 0.29% Objective-C++ 0.02% Dockerfile 0.01%
telegram cross-platform library

td's Issues

C# implementation

Do you have any schedule for C# interface?
If it does not publish in this month, could u please guide us through implementing our own C# interface?

Telegram Beta based on tdlib?

Guys! I'm traveling by train! Downloaded update 4.8.0 Telegram Beta. Who then unloaded debug mode on Google Play? I was scared and my dog ​​too.

Building Docker Alpine:3.7

Hi all,

I'm trying to build the project using Docker with an image based in Alpine3.7.
here is the Dockerfile

FROM alpine:3.7 as builder
LABEL Name=td-builer Version=0.0.1

RUN apk update
RUN apk add --update alpine-sdk 
RUN apk add --update openssl-dev
RUN apk add --update cmake
RUN apk add --update gperf
RUN apk add --update zlib-dev

WORKDIR /
COPY ./td /td

WORKDIR /td
RUN mkdir build
WORKDIR build
RUN cmake ..
RUN cmake --build .
RUN cmake --build . --target install

I get the following error

[  5%] Building CXX object tdutils/CMakeFiles/tdutils.dir/td/utils/port/Stat.cpp.o
/td/tdutils/td/utils/port/Stat.cpp: In function 'td::Stat td::detail::from_native_stat(const stat&)':
/td/tdutils/td/utils/port/Stat.cpp:54:55: error: 'const struct stat' has no member named 'st_mtimensec'; did you mean 'st_mtim'?
   res.mtime_nsec_ = buf.st_mtime * 1000000000ll + buf.st_mtimensec;
                                                       ^~~~~~~~~~~~
/td/tdutils/td/utils/port/Stat.cpp:55:55: error: 'const struct stat' has no member named 'st_atimensec'; did you mean 'st_atim'?
   res.atime_nsec_ = buf.st_atime * 1000000000ll + buf.st_atimensec;
                                                       ^~~~~~~~~~~~
make[2]: *** [tdutils/CMakeFiles/tdutils.dir/build.make:255: tdutils/CMakeFiles/tdutils.dir/td/utils/port/Stat.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:556: tdutils/CMakeFiles/tdutils.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

I've found related issues in other projects
httpuv/issues/63
but I can't figure out how to apply it to this one.

Thank you!

tdlib is very easy to use

My child figured out how to write an interface to the library on Rust. He is six years old.
I thank the authors! It's very cool!

Total count of unread messages from all unmuted chats

For now, the only option to get such value is to download all chats on application start and recalculate the value on updateChatReadInbox, updateNotificationSettings, updateMessagesDeleted, etc.

Would be much better if there would be an integer option unread_count that would be automatically managed by TDLib and updated, when there's any change.

Such value, for example, can be used for drawing a badge near application icon in the system launcher on Android.

Flying with emscripten

This is a test drive tdsource->tdbin->tdjs
Will be supplemented as it proceeds.

debian 9.3 (amd64)

download sdk package
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX - fantastic (GLIBCXX_3.4.21)
./emsdk update
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
git clone https://github.com/tdlib/td.git
cd td
mkdir build
cd build
emcmake cmake -DCMAKE_BUILD_TYPE=Release ..
emmake make -j 4
...
52% - in process
...
100% - success
emmake make -j 4 (test - ok)

If openssl is not found. Try this flags with emcmake cmake.
(https://packages.debian.org/en/sid/amd64/libssl-dev/filelist)
-DOPENSSL_INCLUDE_DIR=/usr/include
-DOPENSSL_SSL_LIBRARY=/usr/lib/x86_64-linux-gnu/libssl.so
-DOPENSSL_CRYPTO_LIBRARY=/usr/lib/x86_64-linux-gnu/libcrypto.so

emmake make -j 2
[  1%] Building C object sqlite/CMakeFiles/tdsqlite.dir/sqlite/sqlite3.c.o
[  2%] Building CXX object tdutils/CMakeFiles/tdutils.dir/td/utils/port/Fd.cpp.o
In file included from ...td/sqlite/sqlite/sqlite3.c:11465:
In file included from /usr/include/stdio.h:27:
/usr/include/features.h:364:12: fatal error: 'sys/cdefs.h' file not found
#  include <sys/cdefs.h>
Perhaps it "This is probably caused by trying to build a 32 bit binary on a 64 bit system.
(https://www.quora.com/How-do-I-fix-fatal-error-sys-cdefs-h-file-not-found-include-sys-cdefs-h)"
try: apt install gcc-multilib g++-multilib
just in case. it looks like it needs something else.
try:
dpkg --add-architecture i386
apt update
apt openssl:i386 libssl-dev:i386

emcmake cmake .....
emmake make -j 2
In file included from ...td/sqlite/sqlite/sqlite3.c:11465:
/usr/include/stdio.h:79:9: error: unknown type name '__gnuc_va_list'
typedef _G_va_list va_list;
...
In file included from ...td/sqlite/sqlite/sqlite3.c:20258:
In file included from /usr/include/openssl/rand.h:14:
In file included from /usr/include/openssl/ossl_typ.h:19:
/usr/include/openssl/e_os2.h:13:11: fatal error: 'openssl/opensslconf.h' file not found
# include <openssl/opensslconf.h>
13 errors generated.

debian 9.3 (i386)

gcc version 6.3.0 (https://gcc.gnu.org/projects/cxx-status.html#cxx14)
cmake .. - ok
...
-- Performing Test HAVE_STD14
-- Performing Test HAVE_STD14 - Success
...
emcmake cmake .. - err
-- Found ccache
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing:  OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR) 
-- Performing Test HAVE_STD14
-- Performing Test HAVE_STD14 - Failed
-- Performing Test HAVE_STD1Y
-- Performing Test HAVE_STD1Y - Failed
CMake Error at CMakeLists.txt:104 (message):
  No C++14 support in the compiler.  Please upgrade the compiler.
...
CMakeLists.txt (comment on these lines to see what awaits us further)
#if (NOT HAVE_STD14)
#  message(FATAL_ERROR "No C++14 support in the compiler. Please upgrade the compiler.")
#endif()
Oops. emcmake cmake ..
Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - no
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
...
Generally what is that crap...

I found these lines
td/telegram/td_emscripten.cpp
// Just for testing.
// Will be completly rewritten

[@levlam, @arseny30] Tried to compile via Emscripten? What can you recommend?

React native

Hi,
It is great to see that your come with this solution for several languages.
Do you have any plans to provide a react native library that takes care of all the bindings?
Thanks in advance

Decreased application quality

This is not even a question, but a reminder.
I noticed a sharp deterioration in the work of the messenger as a whole.

For example, if you open 6 sessions and then try to close everything to Android(on the desktop, too, some inadequate behavior), an inscription with an unknown error appears.
image
image
In general, with the closing of sessions from remote devices, something is messed up.

https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1terminate_session.html#a0f4847eb7189f125c0f4708cca7d8457
How are things at closing several sessions in tdlib? Has anyone checked?

Build problem

Hi
how i can solve this problem ?

[ 48%] Building CXX object td/CMakeFiles/tdcore.dir/td/telegram/MessagesManager.cpp.o
/root/tdbot/td/td/telegram/MessagesManager.cpp: In member function ‘td::Resulttd::FormattedText td::MessagesManager::process_input_caption(td::DialogId, td::tl_object_ptrtd::td_api::formattedText&&, bool) const’:
/root/tdbot/td/td/telegram/MessagesManager.cpp:13775:26: warning: missing initializer for member ‘td::FormattedText::text’ [-Wmissing-field-initializers]
return FormattedText{};
^
/root/tdbot/td/td/telegram/MessagesManager.cpp:13775:26: warning: missing initializer for member ‘td::FormattedText::entities’ [-Wmissing-field-initializers]
/root/tdbot/td/td/telegram/MessagesManager.cpp: In member function ‘td::Resulttd::InputMessageText td::MessagesManager::process_input_message_text(td::DialogId, td::tl_object_ptrtd::td_api::InputMessageContent&&, bool, bool) const’:
/root/tdbot/td/td/telegram/MessagesManager.cpp:13790:45: warning: missing initializer for member ‘td::FormattedText::text’ [-Wmissing-field-initializers]
return InputMessageText{FormattedText{}, input_message_text->disable_web_page_preview_,
^
/root/tdbot/td/td/telegram/MessagesManager.cpp:13790:45: warning: missing initializer for member ‘td::FormattedText::entities’ [-Wmissing-field-initializers]
/root/tdbot/td/td/telegram/MessagesManager.cpp: In member function ‘td::unique_ptrtd::MessageContent td::MessagesManager::get_message_action_content(td::tl_object_ptrtd::telegram_api::MessageAction&&, td::DialogId, td::MessageId) const’:
/root/tdbot/td/td/telegram/MessagesManager.cpp:20721:49: warning: missing initializer for member ‘td::FormattedText::text’ [-Wmissing-field-initializers]
return make_unique(FormattedText{}, WebPageId());
^
/root/tdbot/td/td/telegram/MessagesManager.cpp:20721:49: warning: missing initializer for member ‘td::FormattedText::entities’ [-Wmissing-field-initializers]

td_api::searchChatMessages returns incomplete vector of messages.

I tried to retrieve all messages with documents by using filter searchMessagesFilterDocument.

std::int32_t offset = 0, limit = 50;
td_api::make_object<td_api::searchChatMessages>(id_, "", 0, 0, offset, limit, std::move(filter))

I have response of type object_ptr< messages > in callback
response->total_count_ equals to 5 (it's correct, I checked with Telegram Desktop), but response->messages.size() equals to 1 and contains only newest message with document from chat.
I tried to change limit/offset, but no luck.
How can I retrieve all messages with documents?

Implementing payments via tdlib

This is a question for developers and managers.

I found several classes associated with payments.

getPaymentForm
getPaymentReceipt
messagePaymentSuccessful
messagePaymentSuccessfulBot
paymentForm
paymentReceipt
paymentResult
paymentsProviderStripe
sendPaymentForm

For example.
As processing your tdlib and server side.
There is provider0, provider1, provider2, provider3, etc.

  • Is the bot an provider?
  • Can you transfer payments to providers?
  • Can this replace the gateway for payments?

Builds for android, ios, windows, linux, etc

Very cool work!

But...I do not have time to build a library through cmake and view the required dependencies(i'am sorry).
The documentation is good, but there are few practical examples of applying methods and necessary chains of methods. There are a lot of methods.

I have a few questions

  • Where there are ready assemblies for android, ios, windows, linux, etc?
    Will there be documentation in each pre-assembly? What for? (long unpacking)
    I managed to find a pre-build only for android. It is not known how relevant this is. You can render the documentation in a separate section for each pre-assembly (if there is an additional interface used, such as Java).
  • Python, C++ and C# the last languages where I would like to use tdlib(i'am sorry).
    How does this thing behave with javascript and is it possible? (I want an interface;))
    https://nodejs.org/api/addons.html may be for json interface, but need example.
  • Is there a test environment where can test the build?

TDlib data path

Is there any way to set up path for tdlib to store data (db, photos, etc.)?

macOS build error (readline)

MacOS 10.13.2

[ 63%] Building CXX object CMakeFiles/tg_cli.dir/td/telegram/cli.cpp.o
/.../td/td/telegram/cli.cpp:99:3: error: use of undeclared identifier 'rl_replace_line'
  rl_replace_line("", 0);
  ^
/.../td/td/telegram/cli.cpp:105:3: error: use of undeclared identifier 'rl_replace_line'
  rl_replace_line(saved_line.c_str(), 0);
  ^
/.../td/td/telegram/cli.cpp:586:5: error: use of undeclared identifier 'rl_free'
    rl_free(line);
    ^
$ brew info readline

readline: stable 7.0.3 (bottled) [keg-only]
Library for command-line editing
https://tiswww.case.edu/php/chet/readline/rltop.html
/usr/local/Cellar/readline/7.0.3_1 (46 files, 1.5MB)
  Poured from bottle on 2017-03-14 at 11:47:40
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/readline.rb
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local,
because macOS provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only..

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/readline/lib
    CPPFLAGS: -I/usr/local/opt/readline/include

Static version of tdjson?

I am using Golang with C-bindings to use this lib, but I also want to compile static binary. There is shared version /usr/local/lib/libtdjson.so, but there is no static one. I tried to use libtdjson_static.a, but seems like this is works for C++ only.

getMessage of channel

hi
i want call getmessage method on public channel like this https://t.me/myid/12345 but when send 12345 get invalid message how convert 12345 to correct message_id ? like this 4365221888 when gethistory say invalid_bot_method

really i need opposite this function

//@description Returns public HTTPS link to a message. Available only for messages in public channels @chat_id Identifier of the chat, message belongs to @message_id Identifier of the message
getPublicMessageLink chat_id:int53 message_id:int53 = PublicMessageLink;

SearchChats doesn't search by non-alphabetical symbols

Example.

There's a group with chat.title = "# My Group" or chat.title = "// Some Channel".
SearchChats will not return such results when query = "#" or query = "//".

SearchChatsOnServer will return these chats later, however, this enhancement would allow displaying such results faster.

Linking Issues

I'm experiencing some linking issues on macOS:

[ 63%] Linking CXX executable tg_cli
undef: _SSL_get0_param
undef: _X509_VERIFY_PARAM_set_hostflags
undef: _X509_VERIFY_PARAM_set1_host
Undefined symbols for architecture x86_64:
  "_SSL_get0_param", referenced from:
      td::SslFd::init(td::SocketFd, td::CSlice, td::CSlice, td::SslFd::VerifyPeer) in lto.o
  "_X509_VERIFY_PARAM_set_hostflags", referenced from:
      td::SslFd::init(td::SocketFd, td::CSlice, td::CSlice, td::SslFd::VerifyPeer) in lto.o
  "_X509_VERIFY_PARAM_set1_host", referenced from:
      td::SslFd::init(td::SocketFd, td::CSlice, td::CSlice, td::SslFd::VerifyPeer) in lto.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [tg_cli] Error 1
make[1]: *** [CMakeFiles/tg_cli.dir/all] Error 2
make: *** [all] Error 2

After running the cmake commands exactly as described. Any advice on how to resolve?

Latest 1.1 update broke C-bindings

My bindings worked fine, but after latest update in td_log.h file appered C++ code (using keyword).

C:/src/td/td/telegram/td_log.h:61:1: error: unknown type name 'using'
 using td_log_fatal_error_callback_ptr = void (*)(const char *error_message);
 ^~~~~
C:/src/td/td/telegram/td_log.h:61:41: error: expected expression before 'void'
 using td_log_fatal_error_callback_ptr = void (*)(const char *error_message);
                                         ^~~~
C:/src/td/td/telegram/td_log.h:72:52: error: expected declaration specifiers or '...' before 'td_log_fatal_error_callback_ptr'
 TDJSON_EXPORT void td_set_log_fatal_error_callback(td_log_fatal_error_callback_ptr callback);
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```

getChats Function do not return value via tdJson.so

Hello!
I have a problem. I built a library and linked to libtdjson.so. (QtCreator, gcc 4.9).
I successfully called setTdlibParameters, setDatabaseEncryptionKey, setAuthenticationPhoneNumber, checkAuthenticationCode functions and connected to Telegram network.

I'm trying to get a list of chats via getChats to get list of ids and expect to get results via td_json_client_receive(). But I see output only via inner log and resulted request do not returned through td_json_client_receive(). I see desired output generated by this line.

What am I doing wrong? Or td_json_client_receive method is designed to work only with UpdateObjects?

Get bot_user_id

I need to create new BasicGroupChat with bot. But createNewBasicGroupChat() assumes that user_ids is array of integers (I can't pass bot name here). So, is there any way to get bot id from it's name?
Upd.
Even though I found bot id in logs, trying to create chat with it results in {"@type"=>"error", "code"=>3, "message"=>"User not found"}

Multi-core assembly in debian stretch

You should not experiment with fewer cores.

Debian stretch. I have 8 cores in my car.

I did the following:
zlib from the source code https://packages.debian.org/source/stretch/zlib
apt install libssl-dev libreadline-dev ccache
other packages according to the instructions

first step:
mkdir build
cd build
cmake ..
cmake --build . (at this step I was dejected)
ctrl+c

second step
make -j 6
the virtual machine hangs. restarting the virtual machine.

third step
make -j 4
cautiously somewhere in the middle the system ceases to hang and everything is going to.
just in case cmake --build .

Do not forget about the ccache package for subsequent assemblies useful.
Then you can cmake --build .

Are we going to collect in several cores or will we wait a long time in one core according to the instructions?

Cannot build with VS15

Hi,

For some reason I cannot build tdjson shared lib in release/relwithdebinfo configurations, debug conf is fine. See errors below. I'm using my own build (w/ package manager) and not tdlib's cmake build.
I've fixed the problem by adding this include #include "td/actor/actor.h" to https://github.com/tdlib/td/blob/master/tdactor/td/actor/impl/ConcurrentScheduler.cpp#L9.

Is this VS or tdlib issue?

15>   Creating library D:/dev/cppan_storage/obj/61/11/8e54/build/e91a4169/RelWithDebInfo/loc.2e9ec52c.td.json-local.lib and object D:/dev/cppan_storage/obj/61/11/8e54/build/e91a4169/RelWithDebInfo/loc.2e9ec52c.td.json-local.exp
15>loc.2e9ec52c.td.actor-local.lib(ConcurrentScheduler.obj) : error LNK2019: unresolved external symbol "public: void __thiscall td::Actor::yield(void)" (?yield@Actor@td@@QAEXXZ) referenced in function "public: virtual void __thiscall td::Actor::start_up(void)" (?start_up@Actor@td@@UAEXXZ)
15>loc.2e9ec52c.td.actor-local.lib(ConcurrentScheduler.obj) : error LNK2019: unresolved external symbol "public: void __thiscall td::Actor::stop(void)" (?stop@Actor@td@@QAEXXZ) referenced in function "public: virtual void __thiscall td::Actor::hangup(void)" (?hangup@Actor@td@@UAEXXZ)
15>loc.2e9ec52c.td.actor-local.lib(ConcurrentScheduler.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall td::Actor::empty(void)const " (?empty@Actor@td@@QBE_NXZ) referenced in function "public: virtual __thiscall td::Actor::~Actor(void)" (??1Actor@td@@UAE@XZ)
15>D:\dev\cppan_storage\tmp\build\30fc9e33\e91a4169\build\bin\RelWithDebInfo\loc.2e9ec52c.td.json-local.dll : fatal error LNK1120: 3 unresolved externals

"Undefined reference" errors during build

I have been following the build instructions in the README, but am getting this error. I am not very familiar with compiling so I'm not sure how to debug. I installed cmake, etc via linuxbrew, so I don't know if that's causing the issue:

[ 27%] Linking CXX executable generate_common
/tmp/cczBjDuU.ltrans0.ltrans.o: In function `td::TD_TL_writer_hpp::~TD_TL_writer_hpp()':
<artificial>:(.text._ZN2td16TD_TL_writer_hppD0Ev+0x3d): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans0.ltrans.o: In function `td::TD_TL_writer_h::~TD_TL_writer_h()':
<artificial>:(.text._ZN2td14TD_TL_writer_hD0Ev+0x8d): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans0.ltrans.o: In function `td::TD_TL_writer_cpp::~TD_TL_writer_cpp()':
<artificial>:(.text._ZN2td16TD_TL_writer_cppD0Ev+0x8d): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans0.ltrans.o: In function `td::TD_TL_writer::~TD_TL_writer() [clone .lto_priv.22]':
<artificial>:(.text._ZN2td12TD_TL_writerD2Ev.lto_priv.22+0x41): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans0.ltrans.o: In function `td::TD_TL_writer_hpp::~TD_TL_writer_hpp() [clone .lto_priv.25]':
<artificial>:(.text._ZN2td16TD_TL_writer_hppD2Ev.lto_priv.25+0x41): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans0.ltrans.o:<artificial>:(.text._ZN2td14TD_TL_writer_hD2Ev.lto_priv.24+0x97): more undefined references to `vtable for td::tl::TL_writer' follow
/tmp/cczBjDuU.ltrans3.ltrans.o: In function `td::TD_TL_writer_jni_cpp::gen_basic_java_class_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const':
<artificial>:(.text._ZNK2td20TD_TL_writer_jni_cpp25gen_basic_java_class_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x52): undefined reference to `td::tl::TL_writer::to_upper(char)'
<artificial>:(.text._ZNK2td20TD_TL_writer_jni_cpp25gen_basic_java_class_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xc7): undefined reference to `td::tl::TL_writer::is_alnum(char)'
/tmp/cczBjDuU.ltrans3.ltrans.o: In function `td::TD_TL_writer_jni_cpp::gen_java_field_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const':
<artificial>:(.text._ZNK2td20TD_TL_writer_jni_cpp19gen_java_field_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x52): undefined reference to `td::tl::TL_writer::to_upper(char)'
<artificial>:(.text._ZNK2td20TD_TL_writer_jni_cpp19gen_java_field_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xc7): undefined reference to `td::tl::TL_writer::is_alnum(char)'
/tmp/cczBjDuU.ltrans4.ltrans.o: In function `td::TD_TL_writer::gen_var_name[abi:cxx11](td::tl::var_description const&) const':
<artificial>:(.text._ZNK2td12TD_TL_writer12gen_var_nameB5cxx11ERKNS_2tl15var_descriptionE+0x18): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
/tmp/cczBjDuU.ltrans4.ltrans.o: In function `td::TD_TL_writer::is_combinator_supported(td::tl::tl_combinator const*) const':
<artificial>:(.text._ZNK2td12TD_TL_writer23is_combinator_supportedEPKNS_2tl13tl_combinatorE+0x15): undefined reference to `td::tl::TL_writer::is_combinator_supported(td::tl::tl_combinator const*) const'
/tmp/cczBjDuU.ltrans4.ltrans.o: In function `td::TD_TL_writer::gen_class_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const':
<artificial>:(.text._ZNK2td12TD_TL_writer14gen_class_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x59): undefined reference to `td::tl::TL_writer::is_alnum(char)'
/tmp/cczBjDuU.ltrans4.ltrans.o: In function `td::TD_TL_writer::gen_field_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const':
<artificial>:(.text._ZNK2td12TD_TL_writer14gen_field_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x29): undefined reference to `td::tl::TL_writer::is_alnum(char)'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td20TD_TL_writer_jni_cppE+0x38): undefined reference to `td::tl::TL_writer::is_type_supported(td::tl::tl_tree_type const*) const'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td20TD_TL_writer_jni_cppE+0x50): undefined reference to `td::tl::TL_writer::is_documentation_generated() const'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td20TD_TL_writer_jni_cppE+0xd0): undefined reference to `td::tl::TL_writer::gen_main_class_name[abi:cxx11](td::tl::tl_type const*) const'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td20TD_TL_writer_jni_cppE+0xd8): undefined reference to `td::tl::TL_writer::gen_field_type[abi:cxx11](td::tl::arg const&) const'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td18TD_TL_writer_jni_hE+0x38): undefined reference to `td::tl::TL_writer::is_type_supported(td::tl::tl_tree_type const*) const'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td18TD_TL_writer_jni_hE+0x50): undefined reference to `td::tl::TL_writer::is_documentation_generated() const'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td18TD_TL_writer_jni_hE+0xd0): undefined reference to `td::tl::TL_writer::gen_main_class_name[abi:cxx11](td::tl::tl_type const*) const'
/tmp/cczBjDuU.ltrans4.ltrans.o:(.data.rel.ro._ZTVN2td18TD_TL_writer_jni_hE+0xd8): undefined reference to `td::tl::TL_writer::gen_field_type[abi:cxx11](td::tl::arg const&) const'
/tmp/cczBjDuU.ltrans5.ltrans.o: In function `td::TD_TL_writer_h::gen_flags_definitions[abi:cxx11](td::tl::tl_combinator const*) const':
<artificial>:(.text._ZNK2td14TD_TL_writer_h21gen_flags_definitionsB5cxx11EPKNS_2tl13tl_combinatorE+0x109): undefined reference to `td::tl::TL_writer::to_upper(char)'
<artificial>:(.text._ZNK2td14TD_TL_writer_h21gen_flags_definitionsB5cxx11EPKNS_2tl13tl_combinatorE+0x384): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
/tmp/cczBjDuU.ltrans6.ltrans.o: In function `td::TD_TL_writer_cpp::gen_full_fetch_class_name[abi:cxx11](td::tl::tl_tree_type const*) const':
<artificial>:(.text._ZNK2td16TD_TL_writer_cpp25gen_full_fetch_class_nameB5cxx11EPKNS_2tl12tl_tree_typeE+0x173): undefined reference to `td::tl::TL_writer::is_combinator_supported(td::tl::tl_combinator const*) const'
<artificial>:(.text._ZNK2td16TD_TL_writer_cpp25gen_full_fetch_class_nameB5cxx11EPKNS_2tl12tl_tree_typeE+0x22b): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
/tmp/cczBjDuU.ltrans6.ltrans.o: In function `td::TD_TL_writer_cpp::gen_constructor_id_store[abi:cxx11](int, int) const':
<artificial>:(.text._ZNK2td16TD_TL_writer_cpp24gen_constructor_id_storeB5cxx11Eii+0x29): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
/tmp/cczBjDuU.ltrans6.ltrans.o: In function `td::TD_TL_writer_cpp::gen_field_fetch[abi:cxx11](int, td::tl::arg const&, std::vector<td::tl::var_description, std::allocator<td::tl::var_description> >&, bool, int) const':
<artificial>:(.text._ZNK2td16TD_TL_writer_cpp15gen_field_fetchB5cxx11EiRKNS_2tl3argERSt6vectorINS1_15var_descriptionESaIS6_EEbi+0x134): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::~TD_TL_writer_jni_h()':
<artificial>:(.text._ZN2td18TD_TL_writer_jni_hD0Ev+0x8d): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::gen_additional_proxy_function_end(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, bool) const':
<artificial>:(.text._ZNK2td18TD_TL_writer_jni_h33gen_additional_proxy_function_endERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_2tl7tl_typeEb+0x44): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_end(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, bool) const'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, td::tl::tl_combinator const*, int, bool) const':
<artificial>:(.text._ZNK2td18TD_TL_writer_jni_h34gen_additional_proxy_function_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_2tl7tl_typeEPKNS9_13tl_combinatorEib+0x5b): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, td::tl::tl_combinator const*, int, bool) const'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const':
<artificial>:(.text._ZNK2td18TD_TL_writer_jni_h34gen_additional_proxy_function_caseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_2tl7tl_typeES8_i+0x4b): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::gen_additional_proxy_function_begin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) const':
<artificial>:(.text._ZNK2td18TD_TL_writer_jni_h35gen_additional_proxy_function_beginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_2tl7tl_typeES8_ib+0xa7): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_begin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) const'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::gen_additional_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_combinator const*, bool) const':
<artificial>:(.text._ZNK2td18TD_TL_writer_jni_h23gen_additional_functionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_2tl13tl_combinatorEb+0x91): undefined reference to `td::tl::TL_writer::gen_additional_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_combinator const*, bool) const'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::get_additional_functions[abi:cxx11]() const':
<artificial>:(.text._ZNK2td18TD_TL_writer_jni_h24get_additional_functionsB5cxx11Ev+0x1a): undefined reference to `td::tl::TL_writer::get_additional_functions[abi:cxx11]() const'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::get_additional_function_type(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
<artificial>:(.text._ZNK2td18TD_TL_writer_jni_h28get_additional_function_typeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x3b): undefined reference to `td::tl::TL_writer::get_additional_function_type(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans7.ltrans.o: In function `td::TD_TL_writer_jni_h::~TD_TL_writer_jni_h() [clone .lto_priv.34]':
<artificial>:(.text._ZN2td18TD_TL_writer_jni_hD2Ev.lto_priv.34+0x97): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans9.ltrans.o: In function `td::TD_TL_writer_cpp::gen_full_store_class_name[abi:cxx11](td::tl::tl_tree_type const*) const':
<artificial>:(.text._ZNK2td16TD_TL_writer_cpp25gen_full_store_class_nameB5cxx11EPKNS_2tl12tl_tree_typeE+0xd7): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
<artificial>:(.text._ZNK2td16TD_TL_writer_cpp25gen_full_store_class_nameB5cxx11EPKNS_2tl12tl_tree_typeE+0x25d): undefined reference to `td::tl::TL_writer::is_combinator_supported(td::tl::tl_combinator const*) const'
/tmp/cczBjDuU.ltrans11.ltrans.o: In function `td::TD_TL_writer_cpp::gen_field_store[abi:cxx11](td::tl::arg const&, std::vector<td::tl::var_description, std::allocator<td::tl::var_description> >&, bool, int) const':
<artificial>:(.text._ZNK2td16TD_TL_writer_cpp15gen_field_storeB5cxx11ERKNS_2tl3argERSt6vectorINS1_15var_descriptionESaIS6_EEbi+0xfb): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
/tmp/cczBjDuU.ltrans12.ltrans.o: In function `td::TD_TL_writer_h::gen_get_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) const':
<artificial>:(.text._ZNK2td14TD_TL_writer_h10gen_get_idERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEib+0x8e): undefined reference to `td::tl::TL_writer::int_to_string[abi:cxx11](int)'
/tmp/cczBjDuU.ltrans14.ltrans.o: In function `td::TD_TL_writer_jni_cpp::~TD_TL_writer_jni_cpp()':
<artificial>:(.text._ZN2td20TD_TL_writer_jni_cppD0Ev+0xb2): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans14.ltrans.o: In function `td::TD_TL_writer_jni_cpp::~TD_TL_writer_jni_cpp() [clone .lto_priv.35]':
<artificial>:(.text._ZN2td20TD_TL_writer_jni_cppD2Ev.lto_priv.35+0xb7): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans15.ltrans.o: In function `td::TD_TL_writer::TD_TL_writer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [clone .constprop.14]':
<artificial>:(.text._ZN2td12TD_TL_writerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_.constprop.14+0x4): undefined reference to `vtable for td::tl::TL_writer'
/tmp/cczBjDuU.ltrans15.ltrans.o: In function `void generate_cpp<td::TD_TL_writer_cpp, td::TD_TL_writer_h, td::TD_TL_writer_hpp>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) [clone .constprop.13]':
<artificial>:(.text._Z12generate_cppIN2td16TD_TL_writer_cppENS0_14TD_TL_writer_hENS0_16TD_TL_writer_hppEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_SB_SB_RKSt6vectorIS9_SaIS9_EESG_.constprop.13+0xc8): undefined reference to `td::tl::read_tl_config_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
<artificial>:(.text._Z12generate_cppIN2td16TD_TL_writer_cppENS0_14TD_TL_writer_hENS0_16TD_TL_writer_hppEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_SB_SB_RKSt6vectorIS9_SaIS9_EESG_.constprop.13+0x16f): undefined reference to `td::tl::write_tl_to_file(td::tl::tl_config const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::TL_writer const&)'
<artificial>:(.text._Z12generate_cppIN2td16TD_TL_writer_cppENS0_14TD_TL_writer_hENS0_16TD_TL_writer_hppEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_SB_SB_RKSt6vectorIS9_SaIS9_EESG_.constprop.13+0x232): undefined reference to `td::tl::write_tl_to_file(td::tl::tl_config const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::TL_writer const&)'
<artificial>:(.text._Z12generate_cppIN2td16TD_TL_writer_cppENS0_14TD_TL_writer_hENS0_16TD_TL_writer_hppEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_SB_SB_RKSt6vectorIS9_SaIS9_EESG_.constprop.13+0x2ce): undefined reference to `td::tl::write_tl_to_file(td::tl::tl_config const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::TL_writer const&)'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_hppE+0x38): undefined reference to `td::tl::TL_writer::is_type_supported(td::tl::tl_tree_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_hppE+0x58): undefined reference to `td::tl::TL_writer::get_parser_type(td::tl::tl_combinator const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_hppE+0xd0): undefined reference to `td::tl::TL_writer::gen_main_class_name[abi:cxx11](td::tl::tl_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_hppE+0xd8): undefined reference to `td::tl::TL_writer::gen_field_type[abi:cxx11](td::tl::arg const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x38): undefined reference to `td::tl::TL_writer::is_type_supported(td::tl::tl_tree_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x50): undefined reference to `td::tl::TL_writer::is_documentation_generated() const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x58): undefined reference to `td::tl::TL_writer::get_parser_type(td::tl::tl_combinator const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x68): undefined reference to `td::tl::TL_writer::get_additional_function_type(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x90): undefined reference to `td::tl::TL_writer::get_additional_functions[abi:cxx11]() const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0xd0): undefined reference to `td::tl::TL_writer::gen_main_class_name[abi:cxx11](td::tl::tl_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0xd8): undefined reference to `td::tl::TL_writer::gen_field_type[abi:cxx11](td::tl::arg const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x210): undefined reference to `td::tl::TL_writer::gen_additional_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_combinator const*, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x218): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_begin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x220): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x228): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, td::tl::tl_combinator const*, int, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td14TD_TL_writer_hE+0x230): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_end(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x38): undefined reference to `td::tl::TL_writer::is_type_supported(td::tl::tl_tree_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x50): undefined reference to `td::tl::TL_writer::is_documentation_generated() const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x58): undefined reference to `td::tl::TL_writer::get_parser_type(td::tl::tl_combinator const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x68): undefined reference to `td::tl::TL_writer::get_additional_function_type(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x90): undefined reference to `td::tl::TL_writer::get_additional_functions[abi:cxx11]() const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0xd0): undefined reference to `td::tl::TL_writer::gen_main_class_name[abi:cxx11](td::tl::tl_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0xd8): undefined reference to `td::tl::TL_writer::gen_field_type[abi:cxx11](td::tl::arg const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x210): undefined reference to `td::tl::TL_writer::gen_additional_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_combinator const*, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x218): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_begin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x220): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x228): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, td::tl::tl_combinator const*, int, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td16TD_TL_writer_cppE+0x230): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_end(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x38): undefined reference to `td::tl::TL_writer::is_type_supported(td::tl::tl_tree_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x50): undefined reference to `td::tl::TL_writer::is_documentation_generated() const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x58): undefined reference to `td::tl::TL_writer::get_parser_type(td::tl::tl_combinator const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x68): undefined reference to `td::tl::TL_writer::get_additional_function_type(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x90): undefined reference to `td::tl::TL_writer::get_additional_functions[abi:cxx11]() const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0xd0): undefined reference to `td::tl::TL_writer::gen_main_class_name[abi:cxx11](td::tl::tl_type const*) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0xd8): undefined reference to `td::tl::TL_writer::gen_field_type[abi:cxx11](td::tl::arg const&) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x210): undefined reference to `td::tl::TL_writer::gen_additional_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_combinator const*, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x218): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_begin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x220): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x228): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_case(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, td::tl::tl_combinator const*, int, bool) const'
/tmp/cczBjDuU.ltrans15.ltrans.o:(.data.rel.ro._ZTVN2td12TD_TL_writerE+0x230): undefined reference to `td::tl::TL_writer::gen_additional_proxy_function_end(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, td::tl::tl_type const*, bool) const'
collect2: error: ld returned 1 exit status
td/generate/CMakeFiles/generate_common.dir/build.make:251: recipe for target 'td/generate/generate_common' failed
make[2]: *** [td/generate/generate_common] Error 1
CMakeFiles/Makefile2:878: recipe for target 'td/generate/CMakeFiles/generate_common.dir/all' failed
make[1]: *** [td/generate/CMakeFiles/generate_common.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

internal compiler error

Whenever I try to compile this lib it always fails at CallActor.cpp.o

[ 34%] Building CXX object CMakeFiles/tdcore.dir/td/telegram/CallActor.cpp.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-5/README.Bugs for instructions.
CMakeFiles/tdcore.dir/build.make:374: recipe for target 'CMakeFiles/tdcore.dir/td/telegram/CallActor.cpp.o' failed
make[2]: *** [CMakeFiles/tdcore.dir/td/telegram/CallActor.cpp.o] Error 4
CMakeFiles/Makefile2:155: recipe for target 'CMakeFiles/tdcore.dir/all' failed
make[1]: *** [CMakeFiles/tdcore.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

Banned Bot!

Hello Dear,
I used tdlib for cli bots but telegram banned them,
every hash_id is for only account or I can use them for unlimited bots?
and what I do to telegram don't ban it?
I use https://github.com/vysheng/tdbot
Thanx

Licensing when porting to a different language

Hi, I want to port this library to Rust. As far as I can tell, the Boost license you are using requires any derivative works (my port) to also be under the Boost license. I thought I might come and ask if you would allow me to re-license the port under MPL v2.0

Zlib errors when compiling.

I downloaded zlib-1.2.11 from its official website and compiled it. I referenced zlib with:

-DZLIB_LIBRARY=/usr/local/zlib/lib/ -DZLIB_INCLUDE_DIR=/usr/local/zlib/include/

but I'm getting this error:

[ 64%] Built target tdclient
[ 64%] Linking CXX executable generate_json
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
td/generate/CMakeFiles/generate_json.dir/build.make:123: recipe for target 'td/generate/generate_json' failed
make[2]: *** [td/generate/generate_json] Error 1
CMakeFiles/Makefile2:916: recipe for target 'td/generate/CMakeFiles/generate_json.dir/all' failed
make[1]: *** [td/generate/CMakeFiles/generate_json.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

If I reference source with -DZLIB_LIBRARY=/home/aex12/srcs/zlib-1.2.11/ I get a different error on same step

[ 64%] Linking CXX static library libtdclient.a
[ 64%] Built target tdclient
make[2]: *** No rule to make target '/home/aex12/srcs/zlib-1.2.11/', needed by 'td/generate/generate_json'.  Stop.
CMakeFiles/Makefile2:916: recipe for target 'td/generate/CMakeFiles/generate_json.dir/all' failed
make[1]: *** [td/generate/CMakeFiles/generate_json.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

Build Failed

And here is the message:
Build FAILED.

"C:\Users\Daniel\Documents\GitHub\td\build\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\Users\Daniel\Documents\GitHub\td\build\test\all_tests.vcxproj" (default target) (3) ->
"C:\Users\Daniel\Documents\GitHub\td\build\tdactor\tdactor.vcxproj" (default target) (4) ->
"C:\Users\Daniel\Documents\GitHub\td\build\tdutils\tdutils.vcxproj" (default target) (5) ->
"C:\Users\Daniel\Documents\GitHub\td\build\tdutils\generate\tdmime_auto.vcxproj" (default target) (6) ->
(CustomBuild target) ->
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(1
71,5): error MSB6006: "cmd.exe" exited with code 1. [C:\Users\Daniel\Documents\GitHub\td\build\tdutils\generate\tdmime_
auto.vcxproj]

0 Warning(s)
1 Error(s)

Go Example

Feature request for Go (golang) example using static or dynamic linking.

build for ARM

Hi!

Lib built successfully for x86 on my Linux machine. But also I would to build this for ARMv7 and stuck.
I have gcc-7 and g++-7 cross compiler arm-linux-gnueabi. OpenSSL and Zlib successfully compiled by this compiler and installed.

Below the output of first cmake instruction:

cmake -DCMAKE_INSTALL_PREFIX=/home/doctorrokter/dev/td/dist/arm -DCMAKE_BUILD_TYPE=Release ..
-- The C compiler identification is GNU 7.2.1
-- Check for working CXX compiler: /home/doctorrokter/dev/gcc-linaro-7.2.1/bin/arm-linux-gnueabihf-g++
-- Check for working CXX compiler: /home/doctorrokter/dev/gcc-linaro-7.2.1/bin/arm-linux-gnueabihf-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /home/doctorrokter/dev/gcc-linaro-7.2.1/bin/arm-linux-gnueabihf-gcc
-- Check for working C compiler: /home/doctorrokter/dev/gcc-linaro-7.2.1/bin/arm-linux-gnueabihf-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found ccache
-- Found OpenSSL: /usr/arm/openssl/lib/libssl.a;/usr/arm/openssl/lib/libcrypto.a (found version "1.0.2o")
-- Found OpenSSL: /usr/arm/openssl/include /usr/arm/openssl/lib/libssl.a;/usr/arm/openssl/lib/libcrypto.a
-- Performing Test HAVE_STD14
-- Performing Test HAVE_STD14 - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Performing Test HAVE_CXX_FLAG_WALL
-- Performing Test HAVE_CXX_FLAG_WALL - Success
-- Performing Test HAVE_CXX_FLAG_WEXTRA
-- Performing Test HAVE_CXX_FLAG_WEXTRA - Success
-- Performing Test HAVE_CXX_FLAG_WIMPLICIT_FALLTHROUGH_2
-- Performing Test HAVE_CXX_FLAG_WIMPLICIT_FALLTHROUGH_2 - Success
-- Performing Test HAVE_CXX_FLAG_WPOINTER_ARITH
-- Performing Test HAVE_CXX_FLAG_WPOINTER_ARITH - Success
-- Performing Test HAVE_CXX_FLAG_WCAST_QUAL
-- Performing Test HAVE_CXX_FLAG_WCAST_QUAL - Success
-- Performing Test HAVE_CXX_FLAG_WSIGN_COMPARE
-- Performing Test HAVE_CXX_FLAG_WSIGN_COMPARE - Success
-- Performing Test HAVE_CXX_FLAG_WDUPLICATED_BRANCHES
-- Performing Test HAVE_CXX_FLAG_WDUPLICATED_BRANCHES - Success
-- Performing Test HAVE_CXX_FLAG_WDUPLICATED_COND
-- Performing Test HAVE_CXX_FLAG_WDUPLICATED_COND - Success
-- Performing Test HAVE_CXX_FLAG_WALLOC_ZERO
-- Performing Test HAVE_CXX_FLAG_WALLOC_ZERO - Success
-- Performing Test HAVE_CXX_FLAG_WLOGICAL_OP
-- Performing Test HAVE_CXX_FLAG_WLOGICAL_OP - Success
-- Performing Test HAVE_CXX_FLAG_WTAUTOLOGICAL_COMPARE
-- Performing Test HAVE_CXX_FLAG_WTAUTOLOGICAL_COMPARE - Success
-- Performing Test HAVE_CXX_FLAG_WVLA
-- Performing Test HAVE_CXX_FLAG_WVLA - Success
-- Performing Test HAVE_CXX_FLAG_WNON_VIRTUAL_DTOR
-- Performing Test HAVE_CXX_FLAG_WNON_VIRTUAL_DTOR - Success
-- Performing Test HAVE_CXX_FLAG_WUNUSED_PARAMETER
-- Performing Test HAVE_CXX_FLAG_WUNUSED_PARAMETER - Success
-- Performing Test HAVE_CXX_FLAG_WCONVERSION
-- Performing Test HAVE_CXX_FLAG_WCONVERSION - Success
-- Performing Test HAVE_CXX_FLAG_WSIGN_CONVERSION
-- Performing Test HAVE_CXX_FLAG_WSIGN_CONVERSION - Success
-- Performing Test HAVE_CXX_FLAG_WCXX14_COMPAT_PEDANTIC
-- Performing Test HAVE_CXX_FLAG_WCXX14_COMPAT_PEDANTIC - Failed
-- Performing Test HAVE_CXX_FLAG_QUNUSED_ARGUMENTS
-- Performing Test HAVE_CXX_FLAG_QUNUSED_ARGUMENTS - Failed
-- Performing Test HAVE_CXX_FLAG_WODR
-- Performing Test HAVE_CXX_FLAG_WODR - Success
-- Performing Test HAVE_CXX_FLAG_FLTO_ODR_TYPE_MERGING
-- Performing Test HAVE_CXX_FLAG_FLTO_ODR_TYPE_MERGING - Success
-- Found ZLIB: /usr/local/lib/libz.so (found version "1.2.11")
-- Found ZLIB: /usr/local/include /usr/local/lib/libz.so
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Performing Test GNU_READLINE_FOUND
-- Performing Test GNU_READLINE_FOUND - Failed
-- Could NOT find Readline (missing:  READLINE_INCLUDE_DIR READLINE_LIBRARY)
-- Could NOT find Readline
-- Configuring done
-- Generating done
-- Build files have been written to: /home/doctorrokter/dev/td/build

After that I type:

cmake --build .

And then got:

Scanning dependencies of target tdsqlite
[  1%] Building C object sqlite/CMakeFiles/tdsqlite.dir/sqlite/sqlite3.c.o
[  1%] Linking C static library libtdsqlite.a
[  1%] Built target tdsqlite
Scanning dependencies of target generate_mime_types_gperf
[  2%] Building CXX object tdutils/generate/CMakeFiles/generate_mime_types_gperf.dir/generate_mime_types_gperf.cpp.o
[  2%] Linking CXX executable generate_mime_types_gperf
[  2%] Built target generate_mime_types_gperf
Scanning dependencies of target tdmime_auto
[  2%] Generating ../../../tdutils/generate/auto/mime_type_to_extension.gperf, ../../../tdutils/generate/auto/extension_to_mime_type.gperf
/home/doctorrokter/dev/td/build/tdutils/generate/generate_mime_types_gperf: 1: /home/doctorrokter/dev/td/build/tdutils/generate/generate_mime_types_gperf: Syntax error: word unexpected (expecting ")")
tdutils/generate/CMakeFiles/tdmime_auto.dir/build.make:70: recipe for target '../tdutils/generate/auto/mime_type_to_extension.gperf' failed
make[2]: *** [../tdutils/generate/auto/mime_type_to_extension.gperf] Error 2
CMakeFiles/Makefile2:649: recipe for target 'tdutils/generate/CMakeFiles/tdmime_auto.dir/all' failed
make[1]: *** [tdutils/generate/CMakeFiles/tdmime_auto.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

Have no ideas what's wrong, because for x86 build all worked fine.

error in cmake -DCMAKE_TOOLCHAIN_FILE=C:\src\vcpkg\scripts\buildsystems\vcpkg.cmake ..

hi . i have error in this line

cmake -DCMAKE_TOOLCHAIN_FILE=C:\src\vcpkg\scripts\buildsystems\vcpkg.cmake ..

and my error detail is

Done Building Project "C:\Users\Aliakbar\Desktop\td-master\td-master\build\ALL_BUILD.vcxproj" (default targets) -- FAILED.


Build FAILED.

"C:\Users\Aliakbar\Desktop\td-master\td-master\build\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\Users\Aliakbar\Desktop\td-master\td-master\build\td\generate\generate_json.vcxproj" (default target) (6) ->
"C:\Users\Aliakbar\Desktop\td-master\td-master\build\tdutils\tdutils.vcxproj" (default target) (7) ->
"C:\Users\Aliakbar\Desktop\td-master\td-master\build\tdutils\generate\tdmime_auto.vcxproj" (default target) (8) ->
(CustomBuild target) ->
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with co
de 9009. [C:\Users\Aliakbar\Desktop\td-master\td-master\build\tdutils\generate\tdmime_auto.vcxproj]

    0 Warning(s)
    1 Error(s)

how can i fix it?

Extension to "TON"

In connection with the latest developments in the field of economic technology, the question arose in a single copy.

Do you plan to include "TON" functions in tdlib?

Crash td_json_client_destroy

I do not understand what's the matter. Other methods work.
I'm submitting a pointer to the input.
Example https://github.com/isopen/tdlib/blob/master/index.rb
Such an implementation(ffi):
attach_function :td_json_client_destroy, [:pointer], :void
https://github.com/ffi/ffi/wiki/types

ruby index.rb
{"@type"=>"textEntities", "entities"=>[{"@type"=>"textEntity", "offset"=>0, "length"=>9, "type"=>{"@type"=>"textEntityTypeMention"}}, {"@type"=>"textEntity", "offset"=>10, "length"=>13, "type"=>{"@type"=>"textEntityTypeBotCommand"}}, {"@type"=>"textEntity", "offset"=>24, "length"=>20, "type"=>{"@type"=>"textEntityTypeUrl"}}, {"@type"=>"textEntity", "offset"=>45, "length"=>11, "type"=>{"@type"=>"textEntityTypeUrl"}}], "@extra"=>["5", 7.0]}
[ 2][t 4][1518105093.368179083][Td.cpp:4038][!Td] Close [destroy:false]
index.rb:47: [BUG] Segmentation fault at 0x00000000000089
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0003 p:---- s:0008 e:000007 CFUNC :td_json_client_destroy
c:0002 p:0133 s:0004 E:002320 EVAL index.rb:47 [FINISH]
c:0001 p:0000 s:0002 E:001520 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
index.rb:47:in <main>' index.rb:47:in td_json_client_destroy'

-- Machine register context ------------------------------------------------
RIP: 0x00007f7cba29557c RBP: 0x00007f7cb37fd710 RSP: 0x00007f7cb37fd700
RAX: 0x0000000000000021 RBX: 0x0000000000000021 RCX: 0x00007f7cb37fd570
RDX: 0x0000000000000002 RDI: 0x0000000000000021 RSI: 0x000055c859fe2ce0
R8: 0x0000000000000009 R9: 0x0000000000000021 R10: 0x00007f7cb2efd058
R11: 0x0000000000000000 R12: 0x0000000000000000 R13: 0x00007f7cb37fd7b0
R14: 0x0000000000000000 R15: 0x0000000000000000 EFL: 0x0000000000010206

-- C level backtrace information -------------------------------------------
/usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3(rb_vm_bugreport+0x4e8) [0x7f7cbd9cdd68] vm_dump.c:692
/usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3(rb_bug_context+0xd4) [0x7f7cbd85f534] error.c:435
/usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3(sigsegv+0x3e) [0x7f7cbd93bdce] signal.c:890
/lib/x86_64-linux-gnu/libpthread.so.0 [0x7f7cbd5d50c0]
/home/user/prog/build/libtdjson.so(_ZN2td4TdDb9flush_allEv+0xc) [0x7f7cba29557c]
/home/user/prog/build/libtdjson.so [0x7f7cba1f41f6]
/home/user/prog/build/libtdjson.so [0x7f7cba1f4341]
/home/user/prog/build/libtdjson.so [0x7f7cba7e8a24]
/home/user/prog/build/libtdjson.so [0x7f7cba1a4c58]
/home/user/prog/build/libtdjson.so [0x7f7cba1a54a9]
/home/user/prog/build/libtdjson.so [0x7f7cba1a5787]
/home/user/prog/build/libtdjson.so [0x7f7cba7e870d]
/home/user/prog/build/libtdjson.so [0x7f7cba7edc93]
/home/user/prog/build/libtdjson.so [0x7f7cba7ee01a]
/home/user/prog/build/libtdjson.so [0x7f7cba7ee528]
/home/user/prog/build/libtdjson.so [0x7f7cba7e5ac8]
/home/user/prog/build/libtdjson.so [0x7f7cba19fd01]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6 [0x7f7cb946ee6f]
/lib/x86_64-linux-gnu/libpthread.so.0 [0x7f7cbd5cb494]
/lib/x86_64-linux-gnu/libc.so.6(__clone+0x3f) [0x7f7cbc94aaff]

-- Other runtime information -----------------------------------------------

  • Loaded script: index.rb

  • Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/encdb.so
    5 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/trans/transdb.so
    6 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/unicode_normalize.rb
    7 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/rbconfig.rb
    8 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/compatibility.rb
    9 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/defaults.rb
    10 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/deprecate.rb
    11 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/errors.rb
    12 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/version.rb
    13 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/requirement.rb
    14 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/platform.rb
    15 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/basic_specification.rb
    16 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/stub_specification.rb
    17 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/util/list.rb
    18 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/stringio.so
    19 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/specification.rb
    20 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/exceptions.rb
    21 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/dependency.rb
    22 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_gem.rb
    23 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/monitor.rb
    24 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb
    25 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems.rb
    26 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/path_support.rb
    27 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/version.rb
    28 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb
    29 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/levenshtein.rb
    30 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/jaro_winkler.rb
    31 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkable.rb
    32 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/delegate.rb
    33 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
    34 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
    35 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
    36 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
    37 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/null_checker.rb
    38 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean/formatter.rb
    39 /usr/local/rvm/gems/ruby-2.3.3@global/gems/did_you_mean-1.0.0/lib/did_you_mean.rb
    40 /usr/local/rvm/gems/ruby-2.3.3/gems/tdlib-1.0.4/lib/tdlib/version.rb
    41 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi_c.so
    42 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/platform.rb
    43 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/types.rb
    44 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/library.rb
    45 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/errno.rb
    46 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/pointer.rb
    47 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/memorypointer.rb
    48 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/struct_layout_builder.rb
    49 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/struct.rb
    50 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/union.rb
    51 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/managedstruct.rb
    52 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/callback.rb
    53 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/io.rb
    54 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/autopointer.rb
    55 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/variadic.rb
    56 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/enum.rb
    57 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi/ffi.rb
    58 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi.rb
    59 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/json/version.rb
    60 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/ostruct.rb
    61 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/json/generic_object.rb
    62 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/json/common.rb
    63 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16be.so
    64 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16le.so
    65 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32be.so
    66 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32le.so
    67 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/parser.so
    68 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/generator.so
    69 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/json/ext.rb
    70 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/json.rb
    71 /usr/local/rvm/gems/ruby-2.3.3/gems/tdlib-1.0.4/lib/tdlib.rb

  • Process memory map:

55c85799f000-55c8579a0000 r-xp 00000000 08:01 934726 /usr/local/rvm/rubies/ruby-2.3.3/bin/ruby
55c857b9f000-55c857ba0000 r--p 00000000 08:01 934726 /usr/local/rvm/rubies/ruby-2.3.3/bin/ruby
55c857ba0000-55c857ba1000 rw-p 00001000 08:01 934726 /usr/local/rvm/rubies/ruby-2.3.3/bin/ruby
55c859b83000-55c85a085000 rw-p 00000000 00:00 0 [heap]
7f7c9c000000-7f7c9c021000 rw-p 00000000 00:00 0
7f7c9c021000-7f7ca0000000 ---p 00000000 00:00 0
7f7ca4000000-7f7ca4021000 rw-p 00000000 00:00 0
7f7ca4021000-7f7ca8000000 ---p 00000000 00:00 0
7f7cac000000-7f7cac021000 rw-p 00000000 00:00 0
7f7cac021000-7f7cb0000000 ---p 00000000 00:00 0
7f7cb0f68000-7f7cb1105000 r--s 00000000 08:01 1572872 /lib/x86_64-linux-gnu/libc-2.24.so
7f7cb1105000-7f7cb1284000 r--s 00000000 08:01 5641598 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7cb1284000-7f7cb2128000 r--s 00000000 08:01 3024634 /home/user/prog/build/libtdjson.so
7f7cb2128000-7f7cb2efd000 r--s 00000000 08:01 934728 /usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3.0
7f7cb2efd000-7f7cb2ffe000 rw-p 00000000 00:00 0
7f7cb2ffe000-7f7cb2fff000 ---p 00000000 00:00 0
7f7cb2fff000-7f7cb37ff000 rw-p 00000000 00:00 0
7f7cb37ff000-7f7cb3800000 ---p 00000000 00:00 0
7f7cb3800000-7f7cb4000000 rw-p 00000000 00:00 0
7f7cb4000000-7f7cb4021000 rw-p 00000000 00:00 0
7f7cb4021000-7f7cb8000000 ---p 00000000 00:00 0
7f7cb809b000-7f7cb819c000 rw-p 00000000 00:00 0
7f7cb819c000-7f7cb819d000 ---p 00000000 00:00 0
7f7cb819d000-7f7cb899d000 rw-p 00000000 00:00 0
7f7cb899d000-7f7cb899e000 ---p 00000000 00:00 0
7f7cb899e000-7f7cb919e000 rw-p 00000000 00:00 0
7f7cb919e000-7f7cb91b4000 r-xp 00000000 08:01 1572868 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7cb91b4000-7f7cb93b3000 ---p 00016000 08:01 1572868 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7cb93b3000-7f7cb93b4000 r--p 00015000 08:01 1572868 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7cb93b4000-7f7cb93b5000 rw-p 00016000 08:01 1572868 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7cb93b5000-7f7cb9527000 r-xp 00000000 08:01 5641598 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7cb9527000-7f7cb9727000 ---p 00172000 08:01 5641598 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7cb9727000-7f7cb9731000 r--p 00172000 08:01 5641598 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7cb9731000-7f7cb9733000 rw-p 0017c000 08:01 5641598 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7cb9733000-7f7cb9737000 rw-p 00000000 00:00 0
7f7cb9737000-7f7cb9750000 r-xp 00000000 08:01 4083 /usr/local/lib/libz.so.1.2.7
7f7cb9750000-7f7cb994f000 ---p 00019000 08:01 4083 /usr/local/lib/libz.so.1.2.7
7f7cb994f000-7f7cb9950000 r--p 00018000 08:01 4083 /usr/local/lib/libz.so.1.2.7
7f7cb9950000-7f7cb9951000 rw-p 00019000 08:01 4083 /usr/local/lib/libz.so.1.2.7
7f7cb9951000-7f7cb9bb6000 r-xp 00000000 08:01 5641720 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
7f7cb9bb6000-7f7cb9db5000 ---p 00265000 08:01 5641720 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
7f7cb9db5000-7f7cb9dd3000 r--p 00264000 08:01 5641720 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
7f7cb9dd3000-7f7cb9de1000 rw-p 00282000 08:01 5641720 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
7f7cb9de1000-7f7cb9de4000 rw-p 00000000 00:00 0
7f7cb9de4000-7f7cb9e46000 r-xp 00000000 08:01 5641722 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
7f7cb9e46000-7f7cba046000 ---p 00062000 08:01 5641722 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
7f7cba046000-7f7cba04a000 r--p 00062000 08:01 5641722 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
7f7cba04a000-7f7cba050000 rw-p 00066000 08:01 5641722 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
7f7cba050000-7f7cbaaa4000 r-xp 00000000 08:01 3024634 /home/user/prog/build/libtdjson.so
7f7cbaaa4000-7f7cbaca3000 ---p 00a54000 08:01 3024634 /home/user/prog/build/libtdjson.so
7f7cbaca3000-7f7cbad02000 r--p 00a53000 08:01 3024634 /home/user/prog/build/libtdjson.so
7f7cbad02000-7f7cbad05000 rw-p 00ab2000 08:01 3024634 /home/user/prog/build/libtdjson.so
7f7cbad05000-7f7cbb106000 rw-p 00000000 00:00 0
7f7cbb106000-7f7cbb110000 r-xp 00000000 08:01 1071930 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/generator.so
7f7cbb110000-7f7cbb30f000 ---p 0000a000 08:01 1071930 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/generator.so
7f7cbb30f000-7f7cbb310000 r--p 00009000 08:01 1071930 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/generator.so
7f7cbb310000-7f7cbb311000 rw-p 0000a000 08:01 1071930 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/generator.so
7f7cbb311000-7f7cbb312000 r-xp 00000000 08:01 1071980 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32le.so
7f7cbb312000-7f7cbb512000 ---p 00001000 08:01 1071980 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32le.so
7f7cbb512000-7f7cbb513000 r--p 00001000 08:01 1071980 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32le.so
7f7cbb513000-7f7cbb514000 rw-p 00002000 08:01 1071980 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32le.so
7f7cbb514000-7f7cbb515000 r-xp 00000000 08:01 1071981 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32be.so
7f7cbb515000-7f7cbb715000 ---p 00001000 08:01 1071981 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32be.so
7f7cbb715000-7f7cbb716000 r--p 00001000 08:01 1071981 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32be.so
7f7cbb716000-7f7cbb717000 rw-p 00002000 08:01 1071981 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_32be.so
7f7cbb717000-7f7cbb718000 r-xp 00000000 08:01 1071948 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16le.so
7f7cbb718000-7f7cbb918000 ---p 00001000 08:01 1071948 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16le.so
7f7cbb918000-7f7cbb919000 r--p 00001000 08:01 1071948 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16le.so
7f7cbb919000-7f7cbb91a000 rw-p 00002000 08:01 1071948 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16le.so
7f7cbb91a000-7f7cbb91b000 r-xp 00000000 08:01 1071954 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16be.so
7f7cbb91b000-7f7cbbb1b000 ---p 00001000 08:01 1071954 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16be.so
7f7cbbb1b000-7f7cbbb1c000 r--p 00001000 08:01 1071954 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16be.so
7f7cbbb1c000-7f7cbbb1d000 rw-p 00002000 08:01 1071954 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/utf_16be.so
7f7cbbb1d000-7f7cbbb23000 r-xp 00000000 08:01 1071931 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/parser.so
7f7cbbb23000-7f7cbbd22000 ---p 00006000 08:01 1071931 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/parser.so
7f7cbbd22000-7f7cbbd23000 r--p 00005000 08:01 1071931 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/parser.so
7f7cbbd23000-7f7cbbd24000 rw-p 00006000 08:01 1071931 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/json/ext/parser.so
7f7cbbd24000-7f7cbbd2b000 r-xp 00000000 08:01 5640465 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7f7cbbd2b000-7f7cbbf2b000 ---p 00007000 08:01 5640465 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7f7cbbf2b000-7f7cbbf2c000 r--p 00007000 08:01 5640465 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7f7cbbf2c000-7f7cbbf2d000 rw-p 00008000 08:01 5640465 /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
7f7cbbf2d000-7f7cbbf4f000 r-xp 00000000 08:01 1073734 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi_c.so
7f7cbbf4f000-7f7cbc14f000 ---p 00022000 08:01 1073734 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi_c.so
7f7cbc14f000-7f7cbc150000 r--p 00022000 08:01 1073734 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi_c.so
7f7cbc150000-7f7cbc151000 rw-p 00023000 08:01 1073734 /usr/local/rvm/gems/ruby-2.3.3/gems/ffi-1.9.21/lib/ffi_c.so
7f7cbc151000-7f7cbc159000 r-xp 00000000 08:01 934965 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/stringio.so
7f7cbc159000-7f7cbc358000 ---p 00008000 08:01 934965 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/stringio.so
7f7cbc358000-7f7cbc359000 r--p 00007000 08:01 934965 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/stringio.so
7f7cbc359000-7f7cbc35a000 rw-p 00008000 08:01 934965 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/stringio.so
7f7cbc35a000-7f7cbc35d000 r-xp 00000000 08:01 1071963 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/trans/transdb.so
7f7cbc35d000-7f7cbc55c000 ---p 00003000 08:01 1071963 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/trans/transdb.so
7f7cbc55c000-7f7cbc55d000 r--p 00002000 08:01 1071963 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/trans/transdb.so
7f7cbc55d000-7f7cbc55e000 rw-p 00003000 08:01 1071963 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/trans/transdb.so
7f7cbc55e000-7f7cbc560000 r-xp 00000000 08:01 1071938 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/encdb.so
7f7cbc560000-7f7cbc75f000 ---p 00002000 08:01 1071938 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/encdb.so
7f7cbc75f000-7f7cbc760000 r--p 00001000 08:01 1071938 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/encdb.so
7f7cbc760000-7f7cbc761000 rw-p 00002000 08:01 1071938 /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/x86_64-linux/enc/encdb.so
7f7cbc761000-7f7cbc862000 rw-p 00000000 00:00 0
7f7cbc862000-7f7cbc9f7000 r-xp 00000000 08:01 1572872 /lib/x86_64-linux-gnu/libc-2.24.so
7f7cbc9f7000-7f7cbcbf7000 ---p 00195000 08:01 1572872 /lib/x86_64-linux-gnu/libc-2.24.so
7f7cbcbf7000-7f7cbcbfb000 r--p 00195000 08:01 1572872 /lib/x86_64-linux-gnu/libc-2.24.so
7f7cbcbfb000-7f7cbcbfd000 rw-p 00199000 08:01 1572872 /lib/x86_64-linux-gnu/libc-2.24.so
7f7cbcbfd000-7f7cbcc01000 rw-p 00000000 00:00 0
7f7cbcc01000-7f7cbcd04000 r-xp 00000000 08:01 1572876 /lib/x86_64-linux-gnu/libm-2.24.so
7f7cbcd04000-7f7cbcf03000 ---p 00103000 08:01 1572876 /lib/x86_64-linux-gnu/libm-2.24.so
7f7cbcf03000-7f7cbcf04000 r--p 00102000 08:01 1572876 /lib/x86_64-linux-gnu/libm-2.24.so
7f7cbcf04000-7f7cbcf05000 rw-p 00103000 08:01 1572876 /lib/x86_64-linux-gnu/libm-2.24.so
7f7cbcf05000-7f7cbcf0d000 r-xp 00000000 08:01 1572874 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7f7cbcf0d000-7f7cbd10d000 ---p 00008000 08:01 1572874 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7f7cbd10d000-7f7cbd10e000 r--p 00008000 08:01 1572874 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7f7cbd10e000-7f7cbd10f000 rw-p 00009000 08:01 1572874 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7f7cbd10f000-7f7cbd13d000 rw-p 00000000 00:00 0
7f7cbd13d000-7f7cbd140000 r-xp 00000000 08:01 1572875 /lib/x86_64-linux-gnu/libdl-2.24.so
7f7cbd140000-7f7cbd33f000 ---p 00003000 08:01 1572875 /lib/x86_64-linux-gnu/libdl-2.24.so
7f7cbd33f000-7f7cbd340000 r--p 00002000 08:01 1572875 /lib/x86_64-linux-gnu/libdl-2.24.so
7f7cbd340000-7f7cbd341000 rw-p 00003000 08:01 1572875 /lib/x86_64-linux-gnu/libdl-2.24.so
7f7cbd341000-7f7cbd3c2000 r-xp 00000000 08:01 5640458 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f7cbd3c2000-7f7cbd5c2000 ---p 00081000 08:01 5640458 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f7cbd5c2000-7f7cbd5c3000 r--p 00081000 08:01 5640458 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f7cbd5c3000-7f7cbd5c4000 rw-p 00082000 08:01 5640458 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7f7cbd5c4000-7f7cbd5dc000 r-xp 00000000 08:01 1572887 /lib/x86_64-linux-gnu/libpthread-2.24.so
7f7cbd5dc000-7f7cbd7db000 ---p 00018000 08:01 1572887 /lib/x86_64-linux-gnu/libpthread-2.24.so
7f7cbd7db000-7f7cbd7dc000 r--p 00017000 08:01 1572887 /lib/x86_64-linux-gnu/libpthread-2.24.so
7f7cbd7dc000-7f7cbd7dd000 rw-p 00018000 08:01 1572887 /lib/x86_64-linux-gnu/libpthread-2.24.so
7f7cbd7dd000-7f7cbd7e1000 rw-p 00000000 00:00 0
7f7cbd7e1000-7f7cbdab4000 r-xp 00000000 08:01 934728 /usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3.0
7f7cbdab4000-7f7cbdcb3000 ---p 002d3000 08:01 934728 /usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3.0
7f7cbdcb3000-7f7cbdcb9000 r--p 002d2000 08:01 934728 /usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3.0
7f7cbdcb9000-7f7cbdcbc000 rw-p 002d8000 08:01 934728 /usr/local/rvm/rubies/ruby-2.3.3/lib/libruby.so.2.3.0
7f7cbdcbc000-7f7cbdccd000 rw-p 00000000 00:00 0
7f7cbdccd000-7f7cbdcf0000 r-xp 00000000 08:01 1572867 /lib/x86_64-linux-gnu/ld-2.24.so
7f7cbdcf3000-7f7cbdd15000 r--s 00000000 08:01 1572887 /lib/x86_64-linux-gnu/libpthread-2.24.so
7f7cbdd15000-7f7cbdd38000 r--s 00000000 08:01 934726 /usr/local/rvm/rubies/ruby-2.3.3/bin/ruby
7f7cbdd38000-7f7cbded3000 r--p 00000000 08:01 5636390 /usr/lib/locale/locale-archive
7f7cbded3000-7f7cbded7000 rw-p 00000000 00:00 0
7f7cbdee8000-7f7cbdee9000 r-xp 00000000 00:00 0
7f7cbdee9000-7f7cbdeea000 ---p 00000000 00:00 0
7f7cbdeea000-7f7cbdef0000 rw-p 00000000 00:00 0
7f7cbdef0000-7f7cbdef1000 r--p 00023000 08:01 1572867 /lib/x86_64-linux-gnu/ld-2.24.so
7f7cbdef1000-7f7cbdef2000 rw-p 00024000 08:01 1572867 /lib/x86_64-linux-gnu/ld-2.24.so
7f7cbdef2000-7f7cbdef3000 rw-p 00000000 00:00 0
7ffd77e2d000-7ffd7862c000 rw-p 00000000 00:00 0 [stack]
7ffd786f2000-7ffd786f4000 r--p 00000000 00:00 0 [vvar]
7ffd786f4000-7ffd786f6000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.

can't build

Fedora Rawhide

#...

[ 33%] Generate JSON tl source files
[ 33%] Building CXX object tddb/CMakeFiles/tddb.dir/td/db/SqliteKeyValueAsync.cpp.o
[ 34%] Building CXX object tdnet/CMakeFiles/tdnet.dir/td/net/HttpOutboundConnection.cpp.o
[ 34%] Building CXX object tdnet/CMakeFiles/tdnet.dir/td/net/HttpQuery.cpp.o
[ 34%] Building CXX object tddb/CMakeFiles/tddb.dir/td/db/detail/RawSqliteDb.cpp.o
[ 34%] Built target tl_generate_json
Scanning dependencies of target example
Scanning dependencies of target bench_actor
[ 35%] Linking CXX static library libtddb.a
[ 35%] Building CXX object tdnet/CMakeFiles/tdnet.dir/td/net/HttpReader.cpp.o
[ 35%] Building CXX object benchmark/CMakeFiles/bench_actor.dir/bench_actor.cpp.o
[ 36%] Building CXX object tdnet/CMakeFiles/tdnet.dir/td/net/Socks5.cpp.o
[ 36%] Building CXX object tdactor/CMakeFiles/example.dir/example/example.cpp.o
[ 36%] Linking CXX executable bench_actor
[ 37%] Linking CXX executable example
[ 37%] Building CXX object tdnet/CMakeFiles/tdnet.dir/td/net/SslFd.cpp.o
[ 37%] Building CXX object tdnet/CMakeFiles/tdnet.dir/td/net/TcpListener.cpp.o
[ 37%] Built target tddb
/usr/lib/gcc/x86_64-unknown-linux/6.2.0/../../../../x86_64-unknown-linux/bin/ld: cannot open output file example: Is a directory
collect2: error: ld returned 1 exit status
make[2]: *** [tdactor/CMakeFiles/example.dir/build.make:99: tdactor/example] Error 1
make[1]: *** [CMakeFiles/Makefile2:1012: tdactor/CMakeFiles/example.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 38%] Building CXX object tdnet/CMakeFiles/tdnet.dir/td/net/Wget.cpp.o
Scanning dependencies of target binlog_dump
[ 38%] Linking CXX static library libtdnet.a
[ 39%] Building CXX object tddb/CMakeFiles/binlog_dump.dir/td/db/binlog/binlog_dump.cpp.o
[ 39%] Built target tdnet
[ 39%] Built target bench_actor
[ 39%] Linking CXX executable binlog_dump
[ 39%] Built target binlog_dump

Json encoder is generates not valid json, Locale problem

Hello! Tricky bug.
libtdjson generates not valid jsons. For example if Russian locale is set, float numbers generates with comma not with point. Float numbers with comma is not valid for json parsers. It can be seen in ttl_expires_in field of updateNewMessage object.
Lib must be locale invariant.
Checked on Sailfish OS.

Building shared object for JNI

Hi!

I'm trying to build tdjni for Linux, but it seems like only tdjson is getting built.
Sadly, android's shared object is not suitable for desktop processors.

Connection through IPv6

Hi, I was wondering how to implement a connection through ipv6.
connection server is IPv4 but the server proxies the connection through IPv6.

the setProxy with @type: "proxySocks5" not connecting.

How to build without CMake ?

I need to integrate a small part of the lib into a C++/Qt app and I don't want to handle CMake in additional to my usual build system (Qbs) so I was wondering a few questions :

  1. How is the source organized (understand : "which folder defines which part, which part depends on which other ?")

  2. What is the minimum set to compile to have a fully fonctional C++ lib, without external bindings, or tests, or examples, or docs ?

  3. All I need is a in-app build, kinda like static build, so what is the smallest entity to build ?

  4. What folders contains the include headers for my app ? I just need to add a path to them, not to install anywhere...

  5. Are they any code generation steps mandatory before being able to build ?

  6. I need only Linux support (GCC and Clang) so which parts of the code are other OSes specific (Android, Windows, OSX ?)

Thanks in advance

PHP Example

Please write little simple PHP example for easy starting up. Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.