偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Julia發(fā)布全功能調(diào)試器:4大新功能問世

新聞 前端
福利來了~Julia團(tuán)隊(duì)又發(fā)布了新的全功能調(diào)試器,可以以多種姿勢調(diào)試代碼,節(jié)省你的工作量。
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。

Julia這門語言,因?yàn)榧狭薈語言的速度、Ruby的靈活、Python的通用于一身,獲得了萬千程序員的喜愛。

福利來了~Julia團(tuán)隊(duì)又發(fā)布了新的全功能調(diào)試器,可以以多種姿勢調(diào)試代碼,節(jié)省你的工作量。

有了這個(gè)新調(diào)試器的加持,你可以用Julia完成此前達(dá)不到的驚奇效果,包括:

  • 直接進(jìn)入函數(shù)并手動(dòng)運(yùn)行代碼,同時(shí)檢查它的狀態(tài)
  • 設(shè)置斷點(diǎn)(breakpoint)、捕捉error,檢測到底是哪里出現(xiàn)了錯(cuò)誤
  • 交互式地更新和替換現(xiàn)有代碼,并且還能無需重新啟動(dòng)快速修復(fù)bug
  • 用Juno中的全功能IDE,在易于使用的圖形界面中將這些功能捆在一起

是不是有點(diǎn)躍躍欲試了?

Julia發(fā)布全功能調(diào)試器:4大新功能問世

核心角色

這個(gè)全功能調(diào)試器為何如此秀,Julia官網(wǎng)解釋說,這是因?yàn)槔锩嬗幸粋€(gè)核心角色:

一個(gè)強(qiáng)大的編譯器。

官方解釋說,這個(gè)編譯器可以運(yùn)行Julia代碼,同時(shí)支持各種前端控件控制具體執(zhí)行。

每一個(gè)前端都是自己的包(package):Juno IDE中就結(jié)合了調(diào)試器,Rebugger提供了一種REPL文本的UI, Debugger負(fù)責(zé)提供一般的step/next/continue命令行接口。

所有這些調(diào)試功能都可以與Revise無縫集成,所以,你可以在單獨(dú)的session中連續(xù)分析和修改代碼。

調(diào)試器新功能×2

下面一起來看新功能具體介紹~

Juno

Juno為編譯器提供了豐富的接口,支持設(shè)置斷點(diǎn),還可以在源代碼中直接執(zhí)行。調(diào)試器REPL可以在本地環(huán)境中執(zhí)行任意代碼,Workspace可以幫助你檢查局部變量。

下面這張圖就展示的是gcd調(diào)試環(huán)節(jié):

Julia發(fā)布全功能調(diào)試器:4大新功能問世

Juno.@run宏指令負(fù)責(zé)解釋你的代碼,如果遇到斷點(diǎn),則Juno.@enter支持你從***行重新開始。

Debugger和Rebugger

這是兩個(gè)REPL接口,Debugger提供類似gdb的 “step, next, continue”接口,而Rebugger提供的是類似IDE一樣的控制接口。

Debugger能提供一些其他接口沒有的功能,比如對(duì)stepping的精細(xì)控制,比如執(zhí)行生成函數(shù)的生成器,所以很多情況下Debugger可以成為你的***。

Julia發(fā)布全功能調(diào)試器:4大新功能問世

神奇的包

全能新調(diào)試器不僅帶來了全新的功能,還為一些已經(jīng)發(fā)布的Julia包賦予了新功能。

它們可能已經(jīng)不是你熟悉的包了,Julia中已經(jīng)形成了新的包“生態(tài)系統(tǒng)”,由四組大將組成,分別是JuliaInterpreter、LoweredCodeUtils、CodeTracking、Revise和Rebugger。

JuliaInterpreter

JuliaInterpreter是整個(gè)堆棧的關(guān)鍵角色,包含各種評(píng)估和檢查Julia代碼運(yùn)行情況的各種邏輯。

現(xiàn)在,JuliaInterpreter已經(jīng)在Julia 1.0的基礎(chǔ)上擴(kuò)展了很多新功能,包括:

  • 默認(rèn)遞歸:通過編譯器運(yùn)行幾乎所有代碼,實(shí)現(xiàn)斷點(diǎn)和捕捉error更加直接。
  • 性能增強(qiáng):現(xiàn)在通過代碼運(yùn)行step-wise的速度是原始速度的50倍。
  • 新獲得了編譯“***代碼”的能力:現(xiàn)在,連定義包和創(chuàng)造測試套件的代碼,也可以用它來編譯了。
  • 支持?jǐn)帱c(diǎn):你可以把它當(dāng)作編譯器自身另一種形式的控制流?,F(xiàn)在可以支持在特定源代碼行或特定方法的入口處設(shè)置斷點(diǎn),還能自動(dòng)識(shí)別錯(cuò)誤。

LoweredCodeUtils

LoweredCodeUtils可以用于建立多種協(xié)作方法間的聯(lián)系,從而起到橋梁的作用。

不過,LoweredCodeUtils是***包中最深入最難懂的,讓不少人頭大。

舉個(gè)例子,下面這個(gè)看似簡單定義,實(shí)際上創(chuàng)建了五種方法,分別是一種body method,兩種定位參數(shù)方法和兩種關(guān)鍵字函數(shù)法。

Julia發(fā)布全功能調(diào)試器:4大新功能問世

CodeTracking

CodeTracking是一個(gè)簡單、輕量級(jí)的查詢API,可以用于從Revise中進(jìn)行檢索。

一般的工作場景是LoweredCodeUtils執(zhí)行分析,Revise掌管隨時(shí)間推移出現(xiàn)的各種變化,而CodeTracking負(fù)責(zé)將這些變化通知到其他組件。

三者分工明確,方便好用。

Revise和Rebugger

這個(gè)包***的變化莫過于一眼看過去,可以發(fā)現(xiàn)編譯的界面產(chǎn)生了變化。此外,Rebugger還獲得了一些新的能力,比如在REPL中定義處理方法。

從長遠(yuǎn)來看,它對(duì)JuliaInterpreter和LoweredCodeUtils的深入分析可能會(huì)實(shí)現(xiàn)更多以前無法實(shí)現(xiàn)的功能。

 

責(zé)任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2020-05-07 14:34:14

GitHub新功能開發(fā)者

2014-10-30 14:42:57

Android 5.0Google

2011-04-07 14:12:04

Firefox 5.0

2011-08-10 10:41:19

虛擬化VMware ESXi

2020-11-02 00:17:52

vSphere 7.0Kubernetes容器管理

2013-08-12 11:29:28

銳捷網(wǎng)絡(luò)RIIL網(wǎng)絡(luò)運(yùn)維

2013-02-28 20:24:57

微軟SharePoin

2013-02-28 20:27:46

Exchange微軟

2020-01-31 18:40:57

Python 3.8Python語言

2013-02-28 20:22:06

Lync微軟

2010-01-13 09:11:04

Visual Stud

2012-05-30 22:25:49

Siri

2019-01-14 11:49:30

騰訊樂享商業(yè)閉環(huán)

2010-09-01 13:23:52

CSS3

2020-07-03 16:02:30

12306 APP升級(jí)功能

2019-09-25 09:27:37

iPadOS 13.1蘋果iPad

2015-01-22 09:39:47

AzureAWS云安全

2009-11-26 10:52:01

Java 7

2015-06-02 15:24:45

Android M谷歌

2020-10-22 11:02:37

Windows 10 新功能Settings
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)