CINXE.COM
syntax across languages
<html> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("http://merd.sourceforge.net/pixel/language-study/syntax-across-languages/","20080510185903","https://web.archive.org/","web","/_static/", "1210445943"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <title>syntax across languages</title> </head> <body> <h2>Introduction</h2> What's this about? <p> <ul> <li>Language Designers: <p>Looking for operator or function names? Well have a look at the following and remember using existing one may ease the transition :) <p> <li>Language Users: <p>You know one language and want to find the corresponding operator or function in another language <p> <li>Language lovers: <p>Want to know the various ways people invented for commenting/assigning/...? </ul> <p>This is of course <a href="/web/20080510185903/http://merd.sourceforge.net/pixel/language-study/syntax-across-languages-per-language/what-is-missing.html">incomplete</a>. I welcome <a href="https://web.archive.org/web/20080510185903/mailto:pixel@rigaux.org">contributions</a>! <p> You may also have a look at this information <a href="/web/20080510185903/http://merd.sourceforge.net/pixel/language-study/syntax-across-languages-per-language/">sorted by languages</a>. <h2>One Big Page</h2> Same content in <a href="/web/20080510185903/http://merd.sourceforge.net/pixel/language-study/syntax-across-languages.html">one big page</a> <h2>Categories</h2> <ul> <li><a href="Vrs.html">Various</a> <ul> <li><a href="Vrs.html#VrsCmmnt">commenting</a> <li><a href="Vrs.html#VrsDcmnCmmn">documentation comment</a> <li><a href="Vrs.html#VrsnbCLAF">information about the current line and file</a> <li><a href="Vrs.html#VrsTkns">tokens</a> <li><a href="Vrs.html#VrsBLsWEOLAOnHSM">breaking lines (useful when end-of-line and/or indentation has a special meaning)</a> <li><a href="Vrs.html#VrsVrbssgOrDcl">variable assignment or declaration</a> <li><a href="Vrs.html#VrsGrpnxprs">grouping expressions</a> <li><a href="Vrs.html#VrsBGSsWSANx">block (grouping statements, especially when statements are not expressions)</a> <li><a href="Vrs.html#VrsUBARVWSANx">use a block as a return value (when statements are not expressions)</a> <li><a href="Vrs.html#Vrsqltnqlt">equality / inequality</a> <li><a href="Vrs.html#VrsCmprs">comparison</a> <li><a href="Vrs.html#VrsRntmvltn">runtime evaluation</a> <li><a href="Vrs.html#VrsFrcGrbCll">force garbage collection</a> </ul> <li><a href="Fnctn.html">Functions</a> <ul> <li><a href="Fnctn.html#FnctnFnctCall">function call</a> <li><a href="Fnctn.html#FnctnPpIxBNCIFB">partial application (in the examples below, a normal call is "f(a,b)")</a> <li><a href="Fnctn.html#FnctnFnctDfnt">function definition</a> <li><a href="Fnctn.html#FnctnnnmsFnct">anonymous function</a> <li><a href="Fnctn.html#FnctnFncRtrVl">function return value</a> <li><a href="Fnctn.html#FnctnFCWFINDIDL">function called when a function is not defined (in dynamic languages)</a> <li><a href="Fnctn.html#FnctnRntnspCllnfr">runtime inspecting the caller information</a> <li><a href="Fnctn.html#FnctnFnctCmps">function composition</a> <li><a href="Fnctn.html#FnctndnttFnct">identity function</a> </ul> <li><a href="CntrFlow.html">Control Flow</a> <ul> <li><a href="CntrFlow.html#CntrFlowSqnc">sequence</a> <li><a href="CntrFlow.html#CntrFlowIfThen">if_then</a> <li><a href="CntrFlow.html#CntrFlowIfTheEls">if_then_else</a> <li><a href="CntrFlow.html#CntrFlowfntThenls">ifnot_then (unless)</a> <li><a href="CntrFlow.html#CntrFlowMltSlcSwt">multiple selection (switch)</a> <li><a href="CntrFlow.html#CntrFlowLoop">loop</a> <li><a href="CntrFlow.html#CntrFlowBrkCntFlo">breaking control flow</a> <li><a href="CntrFlow.html#CntrFlowxcptn">exception</a> <li><a href="CntrFlow.html#CntrFlowCalWitCrrCnt">call-with-current-continuation</a> </ul> <li><a href="Tps.html">Types</a> <ul> <li><a href="Tps.html#TpsDclrt">declaration</a> <li><a href="Tps.html#TpsnntOrVrbDcl">annotation (or variable declaration)</a> <li><a href="Tps.html#TpsCast">cast</a> <li><a href="Tps.html#TpsMtblCnst">mutability, constness</a> </ul> <li><a href="bjcrntRfl.html">Object Oriented & Reflexivity</a> <ul> <li><a href="bjcrntRfl.html#bjcrntRflMthdnvct">method invocation</a> <li><a href="bjcrntRfl.html#bjcrntRflbjctCrtn">object creation</a> <li><a href="bjcrntRfl.html#bjcrntRflbjctClnn">object cloning</a> <li><a href="bjcrntRfl.html#bjcrntRflMCAbSD">manually call an object's destructor</a> <li><a href="bjcrntRfl.html#bjcrntRflClssDclr">class declaration</a> <li><a href="bjcrntRfl.html#bjcrntRflTstClsMmb">testing class membership</a> <li><a href="bjcrntRfl.html#bjcrntRflGTCCTAbnV">get the type/class corresponding to an object/instance/value</a> <li><a href="bjcrntRfl.html#bjcrntRflMthdvlbl">methods available</a> <li><a href="bjcrntRfl.html#bjcrntRflnhrtn">inheritance</a> <li><a href="bjcrntRfl.html#bjcrntRflHasMthd">has the method</a> <li><a href="bjcrntRfl.html#bjcrntRflCrrnnstn">current instance</a> <li><a href="bjcrntRfl.html#bjcrntRflccsPrnMth">accessing parent method</a> <li><a href="bjcrntRfl.html#bjcrntRflccsChlMth">accessing child method</a> </ul> <li><a href="PckgMdl.html">Package, Module</a> <ul> <li><a href="PckgMdl.html#PckgMdlPckgScp">package scope</a> <li><a href="PckgMdl.html#PckgMdlDclr">declare</a> <li><a href="PckgMdl.html#PckgMdlmprt">import</a> </ul> <li><a href="Strng.html">Strings</a> <ul> <li><a href="Strng.html#StrngTypeName">type name</a> <li><a href="Strng.html#StrngChrTypNam">character type name</a> <li><a href="Strng.html#StrngChrcZ">character "z"</a> <li><a href="Strng.html#StrngStrng">strings</a> <li><a href="Strng.html#StrngMltLine">multi-line</a> <li><a href="Strng.html#StrngCSTSSASn">convert something to a string (see also string interpolation)</a> <li><a href="Strng.html#StrngSrlzMrsh">serialize (marshalling)</a> <li><a href="Strng.html#StrngnsrUnMrs">unserialize (un-marshalling)</a> <li><a href="Strng.html#StrngSprnLike">sprintf-like</a> <li><a href="Strng.html#StrngSmplPrnt">simple print</a> <li><a href="Strng.html#StrngStrqltnql">string equality & inequality</a> <li><a href="Strng.html#StrngStrnSize">string size</a> <li><a href="Strng.html#StrngStrnCnct">string concatenation</a> <li><a href="Strng.html#StrngDplNTms">duplicate n times</a> <li><a href="Strng.html#StrngpprLwrCasChr">upper / lower case character</a> <li><a href="Strng.html#StrngpprLwrCptStr">uppercase / lowercase / capitalized string</a> <li><a href="Strng.html#StrngscToChr">ascii to character</a> <li><a href="Strng.html#StrngChrTosc">character to ascii</a> <li><a href="Strng.html#StrngccsNThChr">accessing n-th character</a> <li><a href="Strng.html#StrngxtrcSbst">extract a substring</a> <li><a href="Strng.html#StrngLctSbst">locate a substring</a> <li><a href="Strng.html#StrngLctSbsStrAtEnd">locate a substring (starting at the end)</a> </ul> <li><a href="Blns.html">Booleans</a> <ul> <li><a href="Blns.html#BlnsTypeName">type name</a> <li><a href="Blns.html#BlnsFlsVl">false value</a> <li><a href="Blns.html#BlnsTrueVl">true value</a> <li><a href="Blns.html#BlnsLgclNot">logical not</a> <li><a href="Blns.html#BlnsLgcOrAnd">logical or / and</a> </ul> <li><a href="BagAndLst.html">Bags and Lists</a> <ul> <li><a href="BagAndLst.html#BagAndLstTypeName">type name</a> <li><a href="BagAndLst.html#BagAndLstListCnct">list concatenation</a> <li><a href="BagAndLst.html#BagAndLstListFltt">list flattening</a> <li><a href="BagAndLst.html#BagAndLstListCnst">list constructor</a> <li><a href="BagAndLst.html#BagAndLstLisrrndx">list/array indexing</a> <li><a href="BagAndLst.html#BagAndLstdAlABLC">adding an element at the beginning (list cons)</a> <li><a href="BagAndLst.html#BagAndLstddnAnlmnAtndx">adding an element at index</a> <li><a href="BagAndLst.html#BagAndLstddnAnlmnAtEnd">adding an element at the end</a> <li><a href="BagAndLst.html#BagAndLstFrstlmnt">first element</a> <li><a href="BagAndLst.html#BagAndLstAllButFrslmn">all but the first element</a> <li><a href="BagAndLst.html#BagAndLstLastlmnt">last element</a> <li><a href="BagAndLst.html#BagAndLstAllButLaslmn">all but the last element</a> <li><a href="BagAndLst.html#BagAndLstGFlARI">get the first element and remove it</a> <li><a href="BagAndLst.html#BagAndLstGLlARI">get the last element and remove it</a> <li><a href="BagAndLst.html#BagAndLstForEaclmnDoSmt">for each element do something</a> <li><a href="BagAndLst.html#BagAndLstTLOBInO">transform a list (or bag) in another one</a> <li><a href="BagAndLst.html#BagAndLstTrnTwoLstInPrl">transform two lists in parallel</a> <li><a href="BagAndLst.html#BagAndLstFinAnlmn">find an element</a> <li><a href="BagAndLst.html#BagAndLstKeeplmnt">keep elements</a> <li><a href="BagAndLst.html#BagAndLstPLlMlNM">partition a list: elements matching, elements non matching</a> <li><a href="BagAndLst.html#BagAndLstSpltList">split a list</a> <li><a href="BagAndLst.html#BagAndLstIsAnlmnInLis">is an element in the list</a> <li><a href="BagAndLst.html#BagAndLstIPTFAl">is the predicate true for an element</a> <li><a href="BagAndLst.html#BagAndLstIPTFvl">is the predicate true for every element</a> <li><a href="BagAndLst.html#BagAndLstSmlBgglmn">smallest / biggest element</a> <li><a href="BagAndLst.html#BagAndLstJLOSISsGS">join a list of strings in a string using a glue string</a> <li><a href="BagAndLst.html#BagAndLstListSize">list size</a> <li><a href="BagAndLst.html#BagAndLsttrtWitndx">iterate with index</a> <li><a href="BagAndLst.html#BagAndLstRmvDplc">remove duplicates</a> <li><a href="BagAndLst.html#BagAndLstSort">sort</a> <li><a href="BagAndLst.html#BagAndLstRvrs">reverse</a> <li><a href="BagAndLst.html#BagAndLstLOCF2L">list of couples from 2 lists</a> <li><a href="BagAndLst.html#BagAndLst2LFLOC">2 lists from a list of couples</a> <li><a href="BagAndLst.html#BagAndLstLAlIsL">lookup an element in a association list</a> <li><a href="BagAndLst.html#BagAndLstLisOutOfBag">list out of a bag</a> <li><a href="BagAndLst.html#BagAndLstFFFIEEE">f(... f(f(init, e1), e2) ..., en)</a> <li><a href="BagAndLst.html#BagAndLstFEFEFEI">f(e1, f(e2, ... f(en, init) ...))</a> </ul> <li><a href="VrsDatTps.html">Various Data Types</a> <ul> <li><a href="VrsDatTps.html#VrsDatTpsTplType">tuple type</a> <li><a href="VrsDatTps.html#VrsDatTpsTplCnst">tuple constructor</a> <li><a href="VrsDatTps.html#VrsDatTpsCTTAKOmLPSRIPP">computable tuple (these are a kind of immutable lists playing a special role in parameter passing)</a> <li><a href="VrsDatTps.html#VrsDatTpsRfrnPntr">reference (pointer)</a> <li><a href="VrsDatTps.html#VrsDatTpsptnlVl">optional value</a> <li><a href="VrsDatTps.html#VrsDatTpsRcrd">record</a> <li><a href="VrsDatTps.html#VrsDatTpsnnTypDcl">union type declaration</a> <li><a href="VrsDatTps.html#VrsDatTpsnmrTypDcl">enumerated type declaration</a> <li><a href="VrsDatTps.html#VrsDatTpsDctnr">dictionary</a> <li><a href="VrsDatTps.html#VrsDatTpsRng">range</a> </ul> <li><a href="Mthmt.html">Mathematics</a> <ul> <li><a href="Mthmt.html#MthmtTypeName">type name</a> <li><a href="Mthmt.html#MthmtNmbrSntx">numbers syntax</a> <li><a href="Mthmt.html#MthmtddtSbtMltDvs">addition / subtraction / multiplication / division</a> <li><a href="Mthmt.html#MthmtPwr">exponentiation (power)</a> <li><a href="Mthmt.html#MthmtNgtn">negation</a> <li><a href="Mthmt.html#MthmtRndm">random</a> <li><a href="Mthmt.html#MthmtprtPrrAndssc">operator priorities and associativities</a> <li><a href="Mthmt.html#MthmtSRExbV">square root / e-exponential / absolute value</a> <li><a href="Mthmt.html#MthmtTrgnm">trigonometry</a> <li><a href="Mthmt.html#MthmtLgrth">logarithm</a> <li><a href="Mthmt.html#MthmtcDBQAM">euclidian division (both quotient and modulo)</a> <li><a href="Mthmt.html#MthmtMdl">modulo</a> <li><a href="Mthmt.html#MthmtTrnRndFlrCei">truncate / round / floor / ceil</a> <li><a href="Mthmt.html#MthmtBtwsprtr">bitwise operators</a> </ul> <li><a href="Thrds.html">Threads</a> <ul> <li><a href="Thrds.html#ThrdsThrdDfnt">thread definition</a> <li><a href="Thrds.html#ThrdsThrdCrtn">thread creation</a> <li><a href="Thrds.html#ThrdsThrbjcCrt">thread object creation</a> <li><a href="Thrds.html#ThrdsStrStpThr">starting / stopping threads</a> <li><a href="Thrds.html#ThrdsPssDatDrcBtwThr">passing data directly between threads</a> <li><a href="Thrds.html#ThrdsTTCDTTO">terminating thread communication due to a time-out</a> <li><a href="Thrds.html#ThrdsThrdSnch">Thread Synchronization</a> <li><a href="Thrds.html#ThrdsJnnnthThr">Joining Another Thread</a> <li><a href="Thrds.html#ThrdsThrdPrrt">Thread Prioritization</a> <li><a href="Thrds.html#ThrdsTSSODWS">Thread-safe sharing of data without synchronization</a> </ul> </ul><hr> <p> <h2>Similar Pages</h2> <ul> <li><a href="https://web.archive.org/web/20080510185903/http://www.gavilan.edu/csis/languages/history.html">Comments and Literals in programming languages</a> <li><a href="https://web.archive.org/web/20080510185903/http://web.cs.mun.ca/~ulf/pld/surface.html">The Surface of Programming Languages</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.cpcug.org/user/clemenzi/technical/Languages/">Delphi, VisualBasic, C++, Java</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.ps.uni-sb.de/~rossberg/SMLvsOcaml.html">SML, OCaml</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.chimu.com/publications/JavaSmalltalkSyntax.html">Java, Smalltalk</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.cc.gatech.edu/classes/AY2000/cs2803ab_fall/SqueakBasics.html">Java, C++, Smalltalk</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.soften.ktu.lt/~mockus/gmcsharp/csharp/c-sharp-vs-java.html">Java, C#</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.javaworld.com/javaworld/jw-11-2000/jw-1122-csharp1_p.html">Java, C#</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.dur.ac.uk/~dcl0bjc/Java/a.taste.of.csharp/onefile/index.htm">Java, C#</a> <li><a href="https://web.archive.org/web/20080510185903/http://renaud.waldura.com/doc/ruby/idioms.shtml">Ruby, Java, Perl</a> <li><a href="https://web.archive.org/web/20080510185903/http://mail.python.org/pipermail/python-list/1999-August/009692.html">Python, Perl</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.norvig.com/python-lisp.html">Python, Lisp</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.uni-muenster.de/ZIV/Mitarbeiter/EberhardSturm/PL1andC.html">PL/I, C</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.cs.wcupa.edu/~rkline/perl2php/">Perl, PHP</a> <li><a href="https://web.archive.org/web/20080510185903/http://obsidianrook.com/devnotes/elisp-for-perl-programmers.html">EmacsLisp, Perl</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.exept.de:8080/doc/online/english/programming/stForLispers.html">Smalltalk, Lisp</a> </ul> <h2>References</h2> <ul> <li><a href="https://web.archive.org/web/20080510185903/http://cm.bell-labs.com/cm/cs/who/dmr/bcpl.html">BCPL</a> <li><a href="https://web.archive.org/web/20080510185903/http://msdn.microsoft.com/library/en-us/vblr7/html/vaorivblangkeywordsall.asp">VisualBasic</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.gobosoft.com/eiffel/syntax/">Eiffel</a> <li><a href="https://web.archive.org/web/20080510185903/http://sqlzoo.net/">SQL</a> <li><a href="https://web.archive.org/web/20080510185903/http://www.research.compaq.com/SRC/m3defn/html/m3.html">Modula-3</a> </ul> <p> <h2>Credits</h2> <ul> <li>Yoann 'Pad' Padioleau (Haskell additions, Beta, various fixes) <li>Jakub Travnik (Pascal, Delphi-Kylix) <li>Robert Feldt (Ruby additions) <li>Pascal Terjan (PHP) <li>Carlos 'angus' (PostScript) <li>Axel Kittenberger (various) <li>Guido van Rossum (block vs scoping) <li>Jeffrey Hobbs (Tcl) <li>Mark-Jason Dominus (SML, various) <li>Ash Searle (Java, PHP, JavaScript) <li>Mark S. Miller (<a href="https://web.archive.org/web/20080510185903/http://www.erights.org/">E</a>) <li><a href="https://web.archive.org/web/20080510185903/http://www.cs.man.ac.uk/~pjj/babel/">Pete Jinks</a> (various) <li>Steve Tolkin (various) <li>Franck Arnaud (Eiffel) <li>Tom Murphy (SML) <li>Guy Steele (Fortran, and many various) <li>Carl Gay (Dylan, CommonLisp) <li>Jay nop@nop.com (Lua) <li>Philippe Lhoste (Lua, JavaScript) <li>Jim Rogers (Ada, Java, Threads section) <li>Ketil Z. Malde (Haskell) <li>Mark Carroll (<a href="https://web.archive.org/web/20080510185903/http://m3.polymtl.ca/m3/pkg/pm3/language/modula3/src/m3defn/m3.html">Modula-3</a>) <li>Keith Wansbrough (Haskell and a few SML) <li>Remi Vanicat (OCaml) <li>Matthieu Villeneuve (CommonLisp) <li>Joachim Durchholz (Eiffel) <li>Walter Vannini (C, "breaking lines" idea) <li>Peter Lewerin (Tcl) <li>Patrice Ossona de Mendez (Pliant) <li>Bert Freudenberg (Smalltalk & Squeak additions corrections) <li>Dennis Haney (Perl, C#) <li>Fergus Henderson (Mercury) <li>Ralph Becket (Mercury) <li>Bill Thornton (Java) <li>Nik Crabtree (C#) <li>Neal Holtz (Python) <li>Donald Chai (Python) <li>Fred Spiessens (Oz) <li>Martin Nilsson (Pike) <li>Theodore Eastman (VisualBasic) <li>George Herson (Eiffel) <li>Lee Denison (Tcl) <li>Anton Rolls (Rebol) <li>Pedro (Lua) <li>Nathan Sharfi (C99, C#, C++) <li>Dirk Gerrits (Common Lisp, Scheme, Emacs Lisp) <li>Tabitha Arrowny (Ruby, Python, Perl, ...) <li>Péter Varga (BourneShell, Common Lisp, ...) <li>Ian Henderson (Objective C) <li>Anthony Borla (Classic REXX, Prolog, Logo) <li>Paul McJones (Modula-3 fixes) <li>Uwe Kolb (Smalltalk fixes) <li>Ciaran McNulty (PHP) <li>David B. Nagle (Yorick) <li>Michael Schaufelberger (Eiffel) <li>Samuel Charron (Erlang) <li>Kyle Ross (OCaml) <li>Damien Krotkine (Ruby) <li>Guillaume Cottenceau (Java) <li>David.Whitten (MUMPS) <li>Phil Howard (various) <li>Andrzej Zawadzki (Ruby) <li>Stuart Brady (VisualBasic) <li>Joris Gillis (Maple) <li>Garrett Wollman (Ruby, BourneShell, C...) <li>Claus Gittinger (Smalltalk) <li>Bobby 'nneonneo' Xiao (Python) <li>Michael Schlenker (Tcl) <li>Alex Vondrak (Python) <li>Daniel Laberge (Pascal) <li>Daniel Wagner (Haskell) <li>Bob Bane (Common Lisp) <li>Alan Hogan (Java) <li>Steve Davison (C) <li>Konstantin Yegupov (PHP, Python...) <li>Noé Rubinstein (Io) <li>Florentin Millour (Yorick) <li>Axel Liljencrantz (FishShell) <li>Sanghyeon Seo (Lua) <li>Szabolcs Horvát (Mathematica) <li>Laurent Le Brun (F#) <li>Julien Hall (Smalltalk) </ul> <hr><address><a href="https://web.archive.org/web/20080510185903/mailto:pixel@rigaux.org">Pixel</a></address> This document is licensed under <a href="https://web.archive.org/web/20080510185903/http://www.gnu.org/copyleft/fdl.html">GFDL</a> (GNU Free Documentation License). <br>Generated from <a href="/web/20080510185903/http://merd.sourceforge.net/pixel/language-study/syntax-across-languages.html.pl">syntax-across-languages.html.pl</a> <br> $Id: syntax-across-languages.html.pl 406 2008-04-18 12:02:11Z pixel $ </body></html> <!-- FILE ARCHIVED ON 18:59:03 May 10, 2008 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 04:22:15 Dec 18, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.475 exclusion.robots: 0.023 exclusion.robots.policy: 0.014 esindex: 0.009 cdx.remote: 12.928 LoadShardBlock: 226.011 (3) PetaboxLoader3.datanode: 211.803 (4) PetaboxLoader3.resolve: 222.666 (2) load_resource: 233.288 -->