
Александр
24.04.2018
19:44:40
хотя стоп
это же бинарник получается
но вообще - https://golang.org/pkg/crypto/tls/#example_Dial
@onokonem супермен, ты нам нужен :)

Google

Alexey
24.04.2018
19:54:39

Таир
24.04.2018
19:55:05
go run /opt/local/lib/go/src/crypto/tls/generate_cert.go --host localhost

Alexey
24.04.2018
19:56:13
Ну так вы тут не функцию main() запускаете, а бинарник компилируете и запускаете
Впрочем, это понятно и так :)

Таир
24.04.2018
19:57:02
ну я так выразился неудачно
сорри

Alexey
24.04.2018
19:57:11
Но с точки зрения языка сделать этого нельзя, ага

Александр
24.04.2018
19:57:26
я вообще с трудом понимаю, как там бинарник оказался?
в СТАНДАРТНОЙ библиотеке карл

Alexey
24.04.2018
19:58:05
go run компилирует исходные колы, создаёт бинарник и запускает его

Александр
24.04.2018
19:58:14
спасибо капитан

Alexey
24.04.2018
19:58:23
Он под build tag’ом ignore

Google

Alexey
24.04.2018
19:58:32
Это тоже очевидно? :)

Александр
24.04.2018
19:58:34
вопрос то "каким хреном там вообще main делает в стандартной библиотеке?"

Таир
24.04.2018
19:59:01
(хотя нет, вру)

Alexey
24.04.2018
19:59:32
Это тулза для тестов. В обычную сборку этот код не попадает – из-за build tag’а

Таир
24.04.2018
20:00:02
и это удобно

Daniel
24.04.2018
20:00:45

Александр
24.04.2018
20:00:55
да тут странное O_o
нашли бинарник в стандартной либе

Daniel
24.04.2018
20:01:12
ну и?
почему нет-то?

Александр
24.04.2018
20:01:20
так это же странно
там же должны быть только либы

Alexey
24.04.2018
20:01:27
Не верят мне ?

Daniel
24.04.2018
20:01:49
напрасно, кстати, вы Алексею не верите

Александр
24.04.2018
20:02:02
да я сам вижу что он есть
но его не должно же там быть O_o

Daniel
24.04.2018
20:02:13
почему?

Александр
24.04.2018
20:02:24
это противоречит концепции "ядро и приложение"

Google

Таир
24.04.2018
20:02:32
я не понял, до меня этот вопрос никто не задавал тут что ле? ))

Александр
24.04.2018
20:02:34
как во всех языках

Daniel
24.04.2018
20:02:44

Alexey
24.04.2018
20:02:50
https://github.com/golang/go/blob/master/src/crypto/tls/generate_cert.go#L5 – вот эта строчка заставляет go tool пропускать этот файл

Александр
24.04.2018
20:02:59
как это ядро может что-то делать самостоятельно
только не понятна цель вообще

Alexey
24.04.2018
20:03:36
https://github.com/golang/go/search?utf8=✓&q=generate_cert.go

Таир
24.04.2018
20:03:40

Александр
24.04.2018
20:03:44
если они хотели написать тест, почему не через _test.go

Alexey
24.04.2018
20:03:46
Запускать этот файлов в тестах для тестов

Daniel
24.04.2018
20:03:50
это не тест

Daniel
24.04.2018
20:04:04
это тулза вместо openssl

Таир
24.04.2018
20:04:08
это не тест, а утилитка в составе стдлибы
просто я второй день в го и не успеваю вкурить

Александр
24.04.2018
20:05:08
так ее запихнули в ядро, вместо того что бы вынести отдельно
могли бы создать репу "под тулзу"

Таир
24.04.2018
20:05:39
ну тогда бы я ее не нашел например

Александр
24.04.2018
20:06:02
ну так в документации обычно пишут
хотя если она для генерации сертификатов, я просто их получил по другому

Google

Александр
24.04.2018
20:07:07
openssl genrsa -out server.key 2048
openssl ecparam -genkey -name secp384r1 -out server.key
openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
ну что-то в этом духе

Admin
ERROR: S client not available

Таир
24.04.2018
20:08:00
да это же пример просто
там куча мэйнов в стдлибе

Daniel
24.04.2018
20:12:46

Александр
24.04.2018
20:15:07
странно это просто :)

Таир
24.04.2018
20:16:05
почему вы их называете "бинарниками"?

Александр
24.04.2018
20:18:16
потому что при go run фактически компилирует все в бинарник
и он запускается

Fedor
24.04.2018
20:57:17
так-так..
а как работает построение результирующего бинаря?
разве не через компиляцию как, например, цпп?

Dmitry
24.04.2018
21:03:28
*.go -> go build -> МАГИЯ -> выполняемый файл

Sergey
24.04.2018
21:03:44
?

Fedor
24.04.2018
21:03:52
не, я не об этом
ладно, это слишком лоулевел, видимо

Dmitrii
24.04.2018
21:07:49

Dmitry
24.04.2018
21:08:42
не разрушай мою веру в магию!

Google

Dmitrii
24.04.2018
21:09:03
в асме

Fedor
24.04.2018
21:11:11
ща гляну, момент
гуд
вопрос был скорее следующий. помимо обычной статик линковки, есть ли там какой-то ад(может контейнерный, может, ещё какой-то) в который они либо подобие инструкций(которые исполняются в машине го) засовывают, или ещё какой-нибудь такой ад
сейчас такое время, встречается всякое

Dmitrii
24.04.2018
21:16:12

Fedor
24.04.2018
21:16:34
фак, а можно такого размера бинарники в го делать? :D

Dmitry
24.04.2018
21:16:34
Does Go have a runtime?
Go does have an extensive library, called the runtime, that is part of every Go program. The runtime library implements garbage collection, concurrency, stack management, and other critical features of the Go language. Although it is more central to the language, Go's runtime is analogous to libc, the C library.
It is important to understand, however, that Go's runtime does not include a virtual machine, such as is provided by the Java runtime. Go programs are compiled ahead of time to native machine code. Thus, although the term is often used to describe the virtual environment in which a program runs, in Go the word “runtime” is just the name given to the library providing critical language services.


Fedor
24.04.2018
21:17:25
Does Go have a runtime?
Go does have an extensive library, called the runtime, that is part of every Go program. The runtime library implements garbage collection, concurrency, stack management, and other critical features of the Go language. Although it is more central to the language, Go's runtime is analogous to libc, the C library.
It is important to understand, however, that Go's runtime does not include a virtual machine, such as is provided by the Java runtime. Go programs are compiled ahead of time to native machine code. Thus, although the term is often used to describe the virtual environment in which a program runs, in Go the word “runtime” is just the name given to the library providing critical language services.
отлично, понял)