Size: a a a

2019 December 17

ŹR

Źmićer Rubinštejn in pro.elixir
Я думаю, что test, move, allocate считается за редукцию
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А еще эта хитрая сука с удовольствием сожрала неиспользуемую A
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Хотя я ща смотрю, она походу B и C тоже куда-то сожрала
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Только не понятно куда
источник

Е

Евгений in pro.elixir
Все таки провел исследование :)))))
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Źmićer Rubinštejn
Только не понятно куда
Хотя понятно. Она сразу 4 записала, типа «меня не наебешь»
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ебал я такие оптимизации...
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Ебал я такие оптимизации...
Нормальная оптимизация. В стане компилируемых языков так вообще удивятся отсутствию такой оптимизации.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Всетки тупой компилятор у эрланга
источник

ŹR

Źmićer Rubinštejn in pro.elixir
-module(bind).
-export([bind/1]).

bind(A) ->
 B=A+1,
 C=B+1,
 D=C+1,
 io:format("~p~n", [D]),
 ok.


в

{module, bind}.  %% version = 0

{exports, [{bind,1},{module_info,0},{module_info,1}]}.

{attributes, []}.

{labels, 7}.


{function, bind, 1, 2}.
 {label,1}.
   {line,[{location,"test.erl",4}]}.
   {func_info,{atom,bind},{atom,bind},1}.
 {label,2}.
   {line,[{location,"test.erl",5}]}.
   {gc_bif,'+',{f,0},1,[{x,0},{integer,1}],{x,0}}.
   {line,[{location,"test.erl",6}]}.
   {gc_bif,'+',{f,0},1,[{x,0},{integer,1}],{x,0}}.
   {line,[{location,"test.erl",7}]}.
   {gc_bif,'+',{f,0},1,[{x,0},{integer,1}],{x,0}}.
   {allocate_heap,0,2,1}.
   {put_list,{x,0},nil,{x,1}}.
   {move,{literal,"~p~n"},{x,0}}.
   {line,[{location,"test.erl",8}]}.
   {call_ext,2,{extfunc,io,format,2}}.
   {move,{atom,ok},{x,0}}.
   {deallocate,0}.
   return.


{function, module_info, 0, 4}.
 {label,3}.
   {line,[]}.
   {func_info,{atom,bind},{atom,module_info},0}.
 {label,4}.
   {move,{atom,bind},{x,0}}.
   {line,[]}.
   {call_ext_only,1,{extfunc,erlang,get_module_info,1}}.


{function, module_info, 1, 6}.
 {label,5}.
   {line,[]}.
   {func_info,{atom,bind},{atom,module_info},1}.
 {label,6}.
   {move,{x,0},{x,1}}.
   {move,{atom,bind},{x,0}}.
   {line,[]}.
   {call_ext_only,2,{extfunc,erlang,get_module_info,2}}.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
3 раза прибавляет
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Слава богу, я уже испугался что он умнее меня
источник

SM

Sergei Maximov in pro.elixir
Źmićer Rubinštejn
Ни разу не было, чтобы были все нужные логи
И чтобы не было ненужных
источник

SM

Sergei Maximov in pro.elixir
Логичный Лесник
Го принуждает не в плане компилятора, авплане того, что если не обрабатаешь, то потом потратишь дохера времени на поиск этой ошибки. Поэтому лучше обработать по-хорошему. Один раз потратил пару часов на косяк, в следующий раз уже не захочешь этим заниматься.
Это значит "не принуждает"
источник

ЛЛ

Логичный Лесник in pro.elixir
Sergei Maximov
Это значит "не принуждает"
Там особо выбора нет. Ты конечно можешь не обрабатывать ошибки, но тогда готовься потратить часы на её отлавливание. Пару раз так посидишь и потом поймёшь, что обработать всё же проще.
источник

ЛЛ

Логичный Лесник in pro.elixir
Sergei Maximov
И чтобы не было ненужных
Пишу небольшие сервисы и не вижу проблем в том, чтобы нормально залогировать всё. Опять же, делаю это для собственной экономии времени. Туда же можно записать и тесты
источник

AM

Aliaksandr Martsinovich in pro.elixir
Логичный Лесник
Пишу небольшие сервисы и не вижу проблем в том, чтобы нормально залогировать всё. Опять же, делаю это для собственной экономии времени. Туда же можно записать и тесты
зачем тогда тебе вообще знать о минусах и плюсах инструмента, если ты любой минус компенсируешь скилом?)
источник

SM

Sergei Maximov in pro.elixir
Логичный Лесник
Там особо выбора нет. Ты конечно можешь не обрабатывать ошибки, но тогда готовься потратить часы на её отлавливание. Пару раз так посидишь и потом поймёшь, что обработать всё же проще.
Это применимо к большинству языков, Go тут особо ничем не отличается
источник

V

V in pro.elixir
Sergei Maximov
Это применимо к большинству языков, Go тут особо ничем не отличается
Разница в том , что в других языках разгребать ошибку может другой программист )
источник

SM

Sergei Maximov in pro.elixir
V
Разница в том , что в других языках разгребать ошибку может другой программист )
А в Go не может?
источник