anchor.diff:      end.
       
   
  -    ts_extra_flatform_label() ->
  +ts_extra_platform_label() ->
       case os:getenv("TS_EXTRA_PLATFORM_LABEL") of
           false -> "-";
           Val   -> Val
  +    end.
  +
  +ts_scale_factor() ->
  +    case timetrap_scale_factor() of
  +        N when is_integer(N) andalso (N > 0) ->
  +            N - 1;
  +        _ ->
  +            0
       end.
   
   simplify_label("Systemtap" ++ _) ->
  
positive.code:     %% we need to find some other way to find some info...
      %% Also, I suppose its possible that we for some other
      %% reason *fail* to get the info...
      case analyze_darwin_software_info() of
          [] ->
              io:format("Darwin:"
                        "~n   Version:               ~s"
                        "~n   Num Online Schedulers: ~s"
                        "~n", [Version, str_num_schedulers()]),
              {num_schedulers_to_factor(), []};
          SwInfo when  is_list(SwInfo) ->
              SystemVersion = analyze_darwin_sw_system_version(SwInfo),
              KernelVersion = analyze_darwin_sw_kernel_version(SwInfo),
              HwInfo        = analyze_darwin_hardware_info(),
              ModelName     = analyze_darwin_hw_model_name(HwInfo),
              ModelId       = analyze_darwin_hw_model_identifier(HwInfo),
              ProcName      = analyze_darwin_hw_processor_name(HwInfo),
              ProcSpeed     = analyze_darwin_hw_processor_speed(HwInfo),
              NumProc       = analyze_darwin_hw_number_of_processors(HwInfo),
              NumCores      = analyze_darwin_hw_total_number_of_cores(HwInfo),
              Memory        = analyze_darwin_hw_memory(HwInfo),
              io:format("Darwin:"
                        "~n   System Version:        ~s"
                        "~n   Kernel Version:        ~s"
                        "~n   Model:                 ~s (~s)"
                        "~n   Processor:             ~s (~s, ~s, ~s)"
                        "~n   Memory:                ~s"
                        "~n   Num Online Schedulers: ~s"
                        "~n", [SystemVersion, KernelVersion,
                               ModelName, ModelId,
                               ProcName, ProcSpeed, NumProc, NumCores, 
                               Memory,
                               str_num_schedulers()]),
              CPUFactor = analyze_darwin_cpu_to_factor(ProcName,
                                                       ProcSpeed,
                                                       NumProc,
                                                       NumCores),
              MemFactor = analyze_darwin_memory_to_factor(Memory),
              if (MemFactor =:= 1) ->
                      {CPUFactor, []};
                 true ->
                      {CPUFactor + MemFactor, []}
              end
      end.
  
  analyze_darwin_sw_system_version(SwInfo) ->
      proplists:get_value("system version", SwInfo, "-").
  
  analyze_darwin_sw_kernel_version(SwInfo) ->
      proplists:get_value("kernel version", SwInfo, "-").
  
  analyze_darwin_software_info() ->
      analyze_darwin_system_profiler("SPSoftwareDataType").
  
  analyze_darwin_hw_model_name(HwInfo) ->
      proplists:get_value("model name", HwInfo, "-").
  
  analyze_darwin_hw_model_identifier(HwInfo) ->
      proplists:get_value("model identifier", HwInfo, "-").
  
  analyze_darwin_hw_processor_name(HwInfo) ->
      case proplists:get_value("processor name", HwInfo, "-") of
  
negative.code:         _ ->
              20
      end.
  
  
  analyze_darwin_cpu_to_factor("Apple" ++ _ = _Chip, _NumCores) ->
      1;
  analyze_darwin_cpu_to_factor(_Chip, _NumCores) ->
      8.
  
  
  %% The speed is a string: "<speed> <unit>"
  