anchor.diff:  recv_data(Port) ->
       recv_data_loop(Port, <<"">>).
   
  -recv_data_loop(Port, <<0:32/native, StructSize:32/native, _/binary>> = Acc) ->
  -    Data = recv_data_with_length(Port, Acc, StructSize - erlang:size(Acc)),
  -    {Data, fun unpack_data_v0/2};
  -recv_data_loop(Port, <<1:32/native, StructSize:32/native, _/binary>> = Acc) ->
  -    Data = recv_data_with_length(Port, Acc, StructSize - erlang:size(Acc)),
  -    {Data, fun unpack_data_v1/2};
   recv_data_loop(Port, <<2:32/native, StructSize:32/native, _/binary>> = Acc) ->
  -    Data = recv_data_with_length(Port, Acc, StructSize - erlang:size(Acc)),
  -    {Data, fun unpack_data_v2/2};
  +    recv_data_with_length(Port, Acc, StructSize - erlang:size(Acc));
  +recv_data_loop(_, <<V:32/native, _/binary>>) ->
  +    error({unsupported_portsigar_version, V});
   recv_data_loop(Port, Acc) ->
       receive
           {Port, {data, Data}} ->
  
positive.code: 
      {{NowSamplesGlobal, NowSamplesProcs}, {RawStatsGlobal, PrevSampleProcs1}}.
  
  unpack_processes_v2(Bin, PrevSamples) ->
      do_unpack_processes_v2(Bin, {[], PrevSamples}).
  
  do_unpack_processes_v2(Bin, Acc) when size(Bin) =:= 0 ->
      Acc;
  do_unpack_processes_v2(Bin, {NewSampleAcc, PrevSampleAcc} = Acc) ->
      <<Name0:12/binary,
        CpuUtilization:32/native,
        Pid:64/native,
  
negative.code:             end
      end.
  
  unpack_data(Bin, PrevSample) ->
      <<Version:32/native,
        StructSize:32/native,
        CPULocalMS:64/native,
  