рдЬреВрд▓рд┐рдпрд╛ред рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ ...


рдмрд╣реБрдд рдмрд╛рд░, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдмрд╛рд░ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рд╡рд┐рдХрд╛рд╕ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЫрд╛рддреНрд░ рд╕рдореБрджрд╛рдп рдореЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡реНрдпрдХреНрддрд┐ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдХреЛрдб рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдвреЗрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЖрдЬ рд╣рдо рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдореЗрдВ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ, рдЗрд╕реЗ рдХреИрд╕реЗ рднрд░реЗрдВ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рддрдХрдиреАрдХреА рдЙрдкрдХрд░рдг рдореМрдЬреВрдж рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╖рдп рдкрд░ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред


рдкрд░рд┐рдпреЛрдЬрдирд╛


рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рд╕рдордп рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЙрдиреНрдирдд рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд░реНрд╖реЛрдВ рддрдХ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЬреВрд▓рд┐рдпрд╛, рдПрдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ, рдРрд╕реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рдЕрд╡рд╕рд░ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред


рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдВрджреБред рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ Pkg рдореЙрдбреНрдпреВрд▓ рд╣реИред рдХреЛрдИ рднреА рдЬреВрд▓рд┐рдпрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдЬреВрд▓рд┐рдпрд╛ рдмреЗрд╕ рдХрд┐рдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ Project.toml , рдЬрд┐рд╕рдореЗрдВ Project.toml рд╡рд┐рд╡рд░рдг рдФрд░ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдкрд░ рдЙрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ рд╣реИ - Manifest.toml , рдЬреЛ, Project.toml рд╡рд┐рдкрд░реАрдд, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИред рдЯреЙрдорд▓ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдЯреЙрдо рдХреА рд╕реНрдкрд╖реНрдЯ, рдиреНрдпреВрдирддрдо рднрд╛рд╖рд╛ рд╣реИ ред


рдкреИрдХреЗрдЬ рдирд╛рдордХрд░рдг рдирд┐рдпрдо


рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдирд╛рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬреВрд▓рд┐рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХреАрд░реНрдг рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реИрдВред


  • рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЬрд░реНрдЧреЙрди рдФрд░ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╕рдВрдХреБрдЪрди рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдкреИрдХреЗрдЬ рдирд╛рдо рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
  • рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдмрд╣реБрд╡рдЪрди рдореЗрдВ рдирд╛рдорд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред
    тЧж DataFrames рдПрдХ DataFrame рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
    тЧж рдмреНрд▓реВрдордлрд┐рд▓реНрдЯрд░ рдмреНрд▓реВрдордлрд┐рд▓реНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
    Time рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдЬреВрд▓рд┐рдпрд╛рдкрд░рд░ рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреВрд▓рд┐рдпрд╛рдкрд╛рд░рд░рдкрд░реНрд╕ () рдлрд╝рдВрдХреНрд╢рди рд╣реИред
  • рдкреВрд░реНрдг рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдФрд░ рд╕рдордЭрджрд╛рд░реА рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред RandomMatrices RndMat рдпрд╛ RMT рд╕реЗ рдХрдо рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИред
  • рдирд╛рдо рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
    тЧж рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд╣рд╛рдБ Gadfly , PyPlot , Winston рдЖрджрд┐ рдкреИрдХреЗрдЬ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
    SortingAlgorithms рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, SortingAlgorithms рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЫрдБрдЯрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрдм рдкреИрдХреЗрдЬ рдХреБрдЫ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд╛рдо рд░рдЦрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг:
    CPLEX.jl , CPLEX рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдКрдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИред
    тЧж MATLAB.jl рдЬреВрд▓рд┐рдпрд╛ рд╕реЗ MATLAB рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реА рд╕рдордп, рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдирд╛рдо рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддреНрдпрдп ".jl" рд╣реЛрддрд╛ рд╣реИред


рдкреИрдХреЗрдЬ рдкреАрдврд╝реА


рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЬреЗрдирд░реЗрдЯрд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдЬреВрд▓рд┐рдпрд╛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди рдореЛрдб рдореЗрдВ рдбрд╛рд▓реЗрдВ:


 julia> ] 

рдЕрдВрддрд┐рдо рдЪрд░рдг рдкреИрдХреЗрдЬ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдЙрд╕ рдирд╛рдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреИрдХреЗрдЬ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


 (v1.2) pkg> generate HelloWorld 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреИрдХреЗрдЬ рдХреЗ рдирд╛рдо рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рдХреА рд╕рдВрд░рдЪрдирд╛ tree рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдпрджрд┐ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ):


 shell> cd HelloWorld shell> tree . . тФЬтФАтФА Project.toml тФФтФАтФА src тФФтФАтФА HelloWorld.jl 1 directory, 2 files 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд▓реЗрдХрд┐рди рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕реЗрдЯ рджреЗрдЦрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП https://julialang.imtqy.com/Pkg.jl/v1/creating-packages/ рджреЗрдЦреЗрдВ ред


рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХрд╛ PkgTemplates.jl рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рдХреА рд╕рд░реНрд╡рд┐рд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рд╕реЗрд╡рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЗрд╕рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИред рд╣рдо рдПрдХ рдкреИрдХреЗрдЬ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ:


 julia> using PkgTemplates 

рд╣рдо рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдЦрдХреЛрдВ рдХреА рд╕реВрдЪреА, рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕, рдЬреВрд▓рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ, рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рд╕реВрдЪреА ( PkgTemplates рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


 julia> t = Template(; user="myusername", #   github license="ISC", #   authors=["Chris de Graaf", "Invenia Technical Computing Corporation"], dir="~/code", # ,    julia_version=v"1.0", #   Julia plugins=[ #     TravisCI(), Codecov(), Coveralls(), AppVeyor(), GitHubPages(), CirrusCI(), ], ) 

рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:


 Template: тЖТ User: myusername тЖТ Host: github.com тЖТ License: ISC (Chris de Graaf, Invenia Technical Computing Corporation 2018) тЖТ Package directory: ~/code тЖТ Minimum Julia version: v0.7 тЖТ SSH remote: No тЖТ Commit Manifest.toml: No тЖТ Plugins: тАв AppVeyor: тЖТ Config file: Default тЖТ 0 gitignore entries тАв Codecov: тЖТ Config file: None тЖТ 3 gitignore entries: "*.jl.cov", "*.jl.*.cov", "*.jl.mem" тАв Coveralls: тЖТ Config file: None тЖТ 3 gitignore entries: "*.jl.cov", "*.jl.*.cov", "*.jl.mem" тАв GitHubPages: тЖТ 0 asset files тЖТ 2 gitignore entries: "/docs/build/", "/docs/site/" тАв TravisCI: тЖТ Config file: Default тЖТ 0 gitignore entries 

рдЕрдм, рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдкреИрдХреЗрдЬ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:


 julia> generate(t, "MyPkg1") 

рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:


 julia> t = Template(; user="rssdev10", authors=["rssdev10"]) Template: тЖТ User: rssdev10 тЖТ Host: github.com тЖТ License: MIT (rssdev10 2019) тЖТ Package directory: ~/.julia/dev тЖТ Minimum Julia version: v1.0 тЖТ SSH remote: No тЖТ Add packages to main environment: Yes тЖТ Commit Manifest.toml: No тЖТ Plugins: None 

рдпрджрд┐ рд╣рдо рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ MyPkg2 рдирд╛рдордХ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ:


 julia> generate(t, "MyPkg2") 

рдлрд┐рд░ рд╣рдо рдЬреВрд▓рд┐рдпрд╛ рд╕реЗ рд╕реАрдзреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 julia> run(`git -C $(joinpath(t.dir, "MyPkg2")) ls-files`); .appveyor.yml .gitignore .travis.yml LICENSE Project.toml README.md REQUIRE docs/Manifest.toml docs/Project.toml docs/make.jl docs/src/index.md src/MyPkg2.jl test/runtests.jl 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:


  • user="myusername" , git рдкрдВрдЬреАрдХрд░рдг рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдирд╛рдо рд╣реИред
  • dir - рдкреИрдХреЗрдЬ рдХреЛрдб рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд┐рдХрд╛рд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ~/.julia/dev рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреВрдирд┐рдХреНрд╕ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, ~/.julia рдЫрд┐рдкреА рд╣реБрдИ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╛рдЗрд▓реЗрдВ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЕрдкрдиреЗ рдЖрдк рдЬреБрдбрд╝ рдЬрд╛рдПрдВрдЧреАред


рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рди


рд╣рдо https://en.wikibooks.org/wiki/Introducing_Julia/Modules_and_packages рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рдЙрдзрд╛рд░ рд▓реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ:


 Calculus.jl/ #    Calculus deps/ #       docs/ #       src/ #    Calculus.jl #    тАФ   . module Calculus #        ! import Base.ctranspose #     , export derivative, check_gradient, #      ... include("derivative.jl") #     include("check_derivative.jl") include("integrate.jl") import .Derivative end #   Calculus.jl derivative.jl #     - , module Derivative #    Calculus.jl export derivative function derivative() ... end тАж end check_derivative.jl #     , function check_derivative(f::...)#     ... # "include("check_derivative.jl")"  Calculus.jl end тАж integrate.jl #     , function adaptive_simpsons_inner(f::Funct#      Calculus.jl ... end ... symbolic.jl #     Calculus.jl export processExpr, BasicVariable, ...#       import Base.show, ... #     Base , type BasicVariable <: AbstractVariable# ...       ... end function process(x::Expr) ... end ... test/ #     Calculus runtests.jl #     using Calculus #    Calculus... using Test #   Base.Test... tests = ["finite_difference", ... #  -   ... for t in tests include("$(t).jl") # ...     end ... finite_difference.jl #    -   @test ... # ...      runtests.jl ... 

рд╣рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдХрд┐ deps рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдкреИрдХреЗрдЬ рдХреА рд╕рд╣реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, deps/build.jl рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рддреА рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдбреЗрдЯрд╛ рд╕реЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдпрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░рдирд╛) рдпрд╛ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдоред


рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИ - Calculus ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ Derivative рдиреЗрд╕реНрдЯреЗрдб рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдХрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рда рдХреЗ рд░реВрдк include рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬреЛ using рдпрд╛ import рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рди рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреВрд▓рд┐рдпрд╛ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХреБрд▓ рдореЗрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ Project.toml рдореЗрдВ рдЧрд╛рдпрдм рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рдлрд╝рдВрдХреНрд╢рдВрд╕ рддрдХ рд╣рд╛рдЗрд░рд╛рд░реНрдЪрд┐рдХрд▓ рдкрд╣реБрдВрдЪ рдмрдирд╛рдирд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдкрд░рд┐рд╕реАрдорди рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╣рдо рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ include , рдФрд░ рдбреЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЬреБрдбрд╝рд╛рд╡ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред рд╡рд╣ рд╣реИ:


 module Calculus include("derivative.jl") import .Derivative ... end 

derivative рдлрд╝рдВрдХреНрд╢рди рдЬреЛ Derivative рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред


Project.toml рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓ рд╣реИред рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдЦрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди https://julialang.imtqy.com/Pkg.jl/v1/toml-files/ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ


рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рд╡рд┐рд╡рд░рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрджрд▓рдиреЗ, рдкреИрдХреЗрдЬ рдХреА рд╕рдВрд░рдЪрдирд╛, рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред


рдореБрдЦреНрдп рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ:


 name = "Example" uuid = "7876af07-990d-54b4-ab0e-23690620f79a" version = "1.2.5" 

name - рдирд╛рдордХрд░рдг рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪреБрдиреЗ рдЧрдП рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдоред uuid рдПрдХ рдПрдХреАрдХреГрдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ рдЬреЛ рдкреИрдХреЗрдЬ рдЬрдирд░реЗрдЯрд░ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп uuid рдЬрдирд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред version - рддреАрди рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛, рдЬреЛ рдЕрд╡рдзрд┐ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд░реНрдЬрдирд┐рдВрдЧ 2.0.0 рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдШреЛрд╖рд┐рдд рд╕рдВрд╕реНрдХрд░рдг 1.0.0 рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреИрдХреЗрдЬ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рд╕рдВрдЧрддрддрд╛ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рднреА рд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдорд╛рдореВрд▓реА рд╕рдВрдЦреНрдпрд╛ (рджрд╛рдПрдВ) рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдЙрдЪреНрдЪ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╡рд░реНрдЬрдирд┐рдВрдЧ рдирд┐рдпрдо рдкрд░ рдХреЛрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рди рдХрд░рдиреЗ рд╕реЗ рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓реЗрдЧрд╛ рдХрд┐ рдкреИрдХреЗрдЬ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдЙрд╕ рдкреИрдХреЗрдЬ рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рд▓реЗрдЦрдХ рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред


рд╕рднреА рдкреИрдХреЗрдЬ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ [deps] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред


 [deps] Example = "7876af07-990d-54b4-ab0e-23690620f79a" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 

рдЗрд╕ рдЦрдВрдб рдореЗрдВ рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ Manifest.toml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ = рдЬреЛрдбрд╝реЗ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдИ рдЬрд╛рддреА рд╣реИрдВред рдФрд░, рдЖрдорддреМрд░ рдкрд░, рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╣рд╛рдереЛрдВ рд╕реЗ рдирд╣реАрдВ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, Pkg рдкреИрдХреЗрдЬ рдХреЗ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдпрд╣ REPL рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди рдореЛрдб рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - ] ред рдЕрдЧрд▓рд╛ - рдСрдкрд░реЗрд╢рди add , rm , st , рдЖрджрд┐, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рд╡рд░реНрддрдорд╛рди рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ activate . рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ activate . ред


Manifest.toml рдХреЛ git рд╡рд░реНрдЬрди рдХрдВрдЯреНрд░реЛрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реЗрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдХреЛ рдирдП рд╕реНрдерд╛рди рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╛, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, Manifest.toml рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ Manifest.toml рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдореВрд▓ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред


[compat] рдЦрдВрдб рдЖрдкрдХреЛ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред


 [deps] Example = "7876af07-990d-54b4-ab0e-23690620f79a" [compat] Example = "1.2" julia = "1.1" 

рд╕рдВрдХреБрд▓ рдХреА рдкрд╣рдЪрд╛рди рдЙрд╕ рдирд╛рдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ [compat] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред julia рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред


рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп, https://julialang.imtqy.com/Pkg.jl/dev/compatibility/ рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдирд┐рдпрдо рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд░реНрдЬрдирд┐рдВрдЧ рдореЗрдВ рд╕рдорд╛рди рдирд┐рдпрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВред


рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдо рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 [compat] Example = "1.2, 2" 

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд░реЗрдВрдЬ рдореЗрдВ рдХреЛрдИ рднреА рд╕рдВрд╕реНрдХрд░рдг [1.2.0, 3.0.0) рдЙрдкрдпреБрдХреНрдд рд╣реИ, рди рдХрд┐ 3.0.0 ред рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╕рд░рд▓ рдирд┐рдпрдо рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ:


 [compat] Example = "1.2" 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ "^1.2" рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╣реИред рдЖрд╡реЗрджрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:


 [compat] PkgA = "^1.2.3" # [1.2.3, 2.0.0) PkgB = "^1.2" # [1.2.0, 2.0.0) PkgC = "^1" # [1.0.0, 2.0.0) PkgD = "^0.2.3" # [0.2.3, 0.3.0) PkgE = "^0.0.3" # [0.0.3, 0.0.4) PkgF = "^0.0" # [0.0.0, 0.1.0) PkgG = "^0" # [0.0.0, 1.0.0) 

рдпрджрд┐ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдХрдбрд╝реЗ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЯрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


 [compat] PkgA = "~1.2.3" # [1.2.3, 1.3.0) PkgB = "~1.2" # [1.2.0, 1.3.0) PkgC = "~1" # [1.0.0, 2.0.0) PkgD = "~0.2.3" # [0.2.3, 0.3.0) PkgE = "~0.0.3" # [0.0.3, 0.0.4) PkgF = "~0.0" # [0.0.0, 0.1.0) PkgG = "~0" # [0.0.0, 1.0.0) 

рдареАрдХ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдорд╛рди рд╕рдВрдХреЗрддреЛрдВ / рдЕрд╕рдорд╛рдирддрд╛рдУрдВ рдХрд╛ рд╕рдВрдХреЗрдд рдЙрдкрд▓рдмреНрдз рд╣реИ:


 [compat] PkgA = ">= 1.2.3" # [1.2.3, тИЮ) PkgB = "тЙе 1.2.3" # [1.2.3, тИЮ) PkgC = "= 1.2.3" # [1.2.3, 1.2.3] PkgD = "< 1.2.3" # [0.0.0, 1.2.2] 

[targets] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рд╕рдВрд╕реНрдХрд░рдг 1.2 рд╕реЗ рдкрд╣рд▓реЗ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ, рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдХреБрд▓ рдХреЛ [extras] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕рдВрдХреБрд▓ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд▓рдХреНрд╖реНрдп рд╡рд┐рдиреНрдпрд╛рд╕ [targets] рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдереЗред


 [extras] Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] test = ["Markdown", "Test"] 

рдЬреВрд▓рд┐рдпрд╛ 1.2 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк test/Project.toml рд▓рд┐рдП рдмрд╕ рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВред


рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ


рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛ deps/build.jl рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, Artifacts.toml рдлрд╝рд╛рдЗрд▓ рдЬреВрд▓рд┐рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред Pkg.Artifacts рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрди Pkg.Artifacts рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓реЛрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:


 # Example Artifacts.toml file [socrates] git-tree-sha1 = "43563e7631a7eafae1f9f8d9d332e3de44ad7239" lazy = true [[socrates.download]] url = "https://github.com/staticfloat/small_bin/raw/master/socrates.tar.gz" sha256 = "e65d2f13f2085f2c279830e863292312a72930fee5ba3c792b14c33ce5c5cc58" [[socrates.download]] url = "https://github.com/staticfloat/small_bin/raw/master/socrates.tar.bz2" sha256 = "13fc17b97be41763b02cbb80e9d048302cec3bd3d446c2ed6e8210bddcd3ac76" [[c_simple]] arch = "x86_64" git-tree-sha1 = "4bdf4556050cb55b67b211d4e78009aaec378cbc" libc = "musl" os = "linux" [[c_simple.download]] sha256 = "411d6befd49942826ea1e59041bddf7dbb72fb871bb03165bf4e164b13ab5130" url = "https://github.com/JuliaBinaryWrappers/c_simple_jll.jl/releases/download/c_simple+v1.2.3+0/c_simple.v1.2.3.x86_64-linux-musl.tar.gz" [[c_simple]] arch = "x86_64" git-tree-sha1 = "51264dbc770cd38aeb15f93536c29dc38c727e4c" os = "macos" [[c_simple.download]] sha256 = "6c17d9e1dc95ba86ec7462637824afe7a25b8509cc51453f0eb86eda03ed4dc3" url = "https://github.com/JuliaBinaryWrappers/c_simple_jll.jl/releases/download/c_simple+v1.2.3+0/c_simple.v1.2.3.x86_64-apple-darwin14.tar.gz" [processed_output] git-tree-sha1 = "1c223e66f1a8e0fae1f9fcb9d3f2e3ce48a82200" 

рд╣рдо рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рд░рд╣реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдЧреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ artifact_hash , download , create_artifact , bind_artifact ред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди https://julialang.imtqy.com/Pkg.jl/dev/artifacts/ рджреЗрдЦреЗрдВред


рдореБрдЦреНрдп рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ


рдмреЗрд╢рдХ, рд╣рдо рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╕рдордп рд╡рд┐рдХрд╛рд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╣рдо рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдкреИрдХреЗрдЬ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде PkgTemplates рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕реЗ ~/.julia/dev ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдлрд╝рд╛рдЗрд▓ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдореЗрдВ рдПрдХ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрднрд╡ рд╣реИред рдлрд╛рдЗрдВрдбрд░ рдореЗрдВ MacOS рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрдорд╛рдВрдб + рд╢рд┐рдлреНрдЯ + рдЬреА рджрдмрд╛рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреИрдХреЗрдЬ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдЦреЛрд▓реЗрдВред рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрдкрд╛рджрдХ рдПрдЯрдо рд╣реИ рдФрд░ рдпрд╣ рд╕рдм uber-juno рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рдСрдЯреЛ-рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ REPL рдХрдВрд╕реЛрд▓, рдХреЗрд╡рд▓ рдЪрдпрдирд┐рдд рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕рд╣рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдФрд░ рднреА, рдПрдХ рдХрджрдо рджрд░ рдХрджрдо рдбрд┐рдмрдЧрд░ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рдХрд╛рдлреА рдзреАрдорд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб - рдкрд╣рд▓реЗ рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдбрд┐рдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЬрд╛рдВрдЪрдирд╛ рдФрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВред


рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк рдЧрддрд┐рд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рджреЗрдЦреЗрдВ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреБрд╕реНрддрдХ "рд╣реИрдВрдбреНрд╕-рдСрди рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдЬреВрд▓рд┐рдпрд╛ 1.0ред рдЯреЙрдо рдХреНрд╡реЙрдиреНрдЧ" рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ рдХреЛрдб ред рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЬреВрд▓рд┐рдпрд╛ рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реИрд▓реА рдкрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ, Revise.jl рдкреИрдХреЗрдЬ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреА рд╕рдХреНрд░рд┐рдпрдг рдлрд╝рд╛рдЗрд▓ .julia/config/startup.jl рдХреЗрд╡рд▓ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ REPL рдХреЛ рдПрдЯрдо рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рд┐рд╡рд╛рдЗрдЬрд╝ рдЖрдкрдХреЛ REPL рд╕рддреНрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ / рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд░рди рдЗрди рдЕрдкрдбреЗрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВрдЧреЗред


рдкреНрд░рднрд╛рд╡реА рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдореБрдЦреНрдп рдХреЛрдб рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд╣реА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЬреВрд▓рд┐рдпрд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдЬреЛрд░ рдпрд╣рд╛рдБ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдмрд╣реБрдд рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕, рдЙрдирдХреЗ рд╕рдВрдЧрдарди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдХреЛ рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдбрд┐рдмрдЧ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рдкрд░реАрдХреНрд╖рдг


рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рди рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ test/runtests.jl рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реИред


рдЙрдкрд░реНрдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╣реИ:


 using Calculus #    Calculus  ... using Test #   Test... tests = ["finite_difference", "..."]#      -... for t in tests include("$(t).jl") #        end 

рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдлрд╛рдЗрд▓реЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрд▓реНрд▓рд┐рдЦрд┐рдд Calculus рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡, рдЗрдВрдЯреАрдЧреНрд░рд▓ рдЖрджрд┐ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рднрд┐рдиреНрди рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╡рд┐рднрд┐рдиреНрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред


рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдЬреВрд▓рд┐рдпрд╛ рдмреЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗрдЯ рд╕реЗ Test рдореЙрдбреНрдпреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ @test рдореИрдХреНрд░реЛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдерди рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:


 julia> @test true Test Passed julia> @test [1, 2] + [2, 1] == [3, 3] Test Passed julia> @test ╧А тЙИ 3.14 atol=0.01 Test Passed 

рд▓рдЧрднрдЧ рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдкреВрд░реНрдг рд░реВрдк рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ formред


рдЕрдкрд╡рд╛рдж рдХреА рдкрд╕рдВрдж рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмрдпрд╛рди @test_throws ред рдЙрджрд╛рд╣рд░рдг - рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рдкрд░реЗ рд╕реВрдЪрдХрд╛рдВрдХ рддрдХ рдкрд╣реБрдВрдЪреЗрдВ:


 julia> @test_throws BoundsError [1, 2, 3][4] Test Passed Thrown: BoundsError 

рдПрдХ рдЙрдкрдпреЛрдЧреА рдирд┐рд░реНрдорд╛рдг @testset ред рдпрд╣ рдЖрдкрдХреЛ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрдпрд╛рдиреЛрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 julia> @testset "trigonometric identities" begin ╬╕ = 2/3*╧А @test sin(-╬╕) тЙИ -sin(╬╕) @test cos(-╬╕) тЙИ cos(╬╕) @test sin(2╬╕) тЙИ 2*sin(╬╕)*cos(╬╕) @test cos(2╬╕) тЙИ cos(╬╕)^2 - sin(╬╕)^2 end; Test Summary: | Pass Total trigonometric identities | 4 4 

@testset рдорд╛рдзреНрдпрдо рд╕реЗ рдШреЛрд╖рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреЛ рдирд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдирдХреЗ рд╕рдлрд▓ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛ рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИ, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред


 julia> @testset "Foo Tests" begin @testset "Animals" begin @testset "Felines" begin @test foo("cat") == 9 end @testset "Canines" begin @test foo("dog") == 9 end end @testset "Arrays" begin @test foo(zeros(2)) == 4 @test foo(fill(1.0, 4)) == 15 end end Arrays: Test Failed Expression: foo(fill(1.0, 4)) == 15 Evaluated: 16 == 15 [...] Test Summary: | Pass Fail Total Foo Tests | 3 1 4 Animals | 2 2 Arrays | 1 1 2 ERROR: Some tests did not pass: 3 passed, 1 failed, 0 errored, 0 broken. 

@test_broken , @test_skip .



. julia :


  --code-coverage={none|user|all}, --code-coverage Count executions of source lines (omitting setting is equivalent to "user") --code-coverage=tracefile.info Append coverage information to the LCOV tracefile (filename supports format tokens). --track-allocation={none|user|all}, --track-allocation Count bytes allocated by each source line (omitting setting is equivalent to "user") 

code-coverage тАФ . ( ), . , . .cov . .
:


  - function vectorize(str::String) 96 tokens = str |> tokenizer |> wordpiece 48 text = ["[CLS]"; tokens; "[SEP]"] 48 token_indices = vocab(text) 48 segment_indices = [fill(1, length(tokens) + 2);] 48 sample = (tok = token_indices, segment = segment_indices) 48 bert_embedding = sample |> bert_model.embed 48 collect(sum(bert_embedding, dims=2)[:]) - end 

track-allocation тАФ . , , , , .mem .


:


  - function vectorize(str::String) 0 tokens = str |> tokenizer |> wordpiece 6766790 text = ["[CLS]"; tokens; "[SEP]"] 0 token_indices = vocab(text) 11392 segment_indices = [fill(1, length(tokens) + 2);] 1536 sample = (tok = token_indices, segment = segment_indices) 0 bert_embedding = sample |> bert_model.embed 170496 collect(sum(bert_embedding, dims=2)[:]) - end 

, . , , , , . , . .


тАФ :


 julia --project=@. --code-coverage --track-allocation test/runtests.jl 

тАФ Profile.jl @profile . https://julialang.org/blog/2019/09/profilers . @noinline , . , fib fib_r .


 julia> @noinline function fib(n) return n > 1 ? fib_r(n - 1) + fib_r(n - 2) : 1 end julia> @noinline fib_r(n) = fib(n) julia> @time fib(40) 0.738735 seconds (3.16 k allocations: 176.626 KiB) 165580141 julia> using Profile julia> @profile fib(40) 165580141 julia> Profile.print(format=:flat, sortedby=:count) Count File Line Function 12 int.jl 52 - 14 int.jl 53 + 212 boot.jl 330 eval 5717 REPL[2] 1 fib_r 6028 REPL[1] 2 fib julia> count(==(0), Profile.fetch()) 585 

@profile fib(40) . Profile.print(format=:flat, sortedby=:count) . , , , fib_r fib , . , :


 julia> Profile.print(format=:tree) 260 REPL[1]:2; fib(::Int64) 112 REPL[1]:1; fib_r(::Int64) 212 task.jl:333; REPL.var"##26#27" 212 REPL.jl:118; macro expansion 212 REPL.jl:86; eval_user_input 212 boot.jl:330; eval тХО 210 REPL[1]:2; fib тХО 210 REPL[1]:1; fib_r тХО 210 REPL[1]:2; fib тХО 210 REPL[1]:1; fib_r тХО 210 REPL[1]:2; fib тХО тХО 210 REPL[1]:1; fib_r тХО тХО 210 REPL[1]:2; fib тХО тХО 210 REPL[1]:1; fib_r тХО тХО 210 REPL[1]:2; fib тХО тХО 210 REPL[1]:1; fib_r тХО тХО тХО 210 REPL[1]:2; fib тХО тХО тХО 210 REPL[1]:1; fib_r тХО тХО тХО 210 REPL[1]:2; fib тХО тХО тХО 210 REPL[1]:1; fib_r тХО тХО тХО 210 REPL[1]:2; fib ... 

. PProf.jl, .



. https://github.com/vchuravy/PProf.jl .



doc . https://habr.com/ru/post/439442/
, , Julia .


Project.toml , . , , - , , .



, , . , тАФ . :



, , . , , git clone, . PackageCompiler.jl . , , - .


C


- , , ( - , ), deps, deps/build.jl . . , , , . , , , , . , , build.jl , :


 #!/usr/bin/env julia --project=@. using Pkg Pkg.activate(".") Pkg.build() # Pkg.build(; verbose = true) for Julia 1.1 and up Pkg.test() # (coverage=true) 

. julia --project=@. Julia Project.toml . , тАФ build.jl , executable . , julia --project=@. build.jl .


Pkg.activate(".") ( Project.toml ).


Pkg.build() , C-, . deps/build.jl , .


Pkg.test() . , -, , . -, , . coverage=true . , . build.jl .


, . , PkgTempletes . тАФ Gitlab CI, Travis CI, GitHub , .


рдирд┐рд╖реНрдХрд░реНрд╖


, , Julia. , , . , тАФ , -, , . , .


рд╕рдВрджрд░реНрдн


Source: https://habr.com/ru/post/hi473290/


All Articles