Vlákno názorů k článku Programovací jazyk Clojure 12: překlad programů z Clojure do bajtkódu JVM od Natix - Z jakého důvodu se v bajtkódu add funkce...

  • Článek je starý, nové názory již nelze přidávat.
  • 28. 8. 2012 1:46

    Natix (neregistrovaný)

    Z jakého důvodu se v bajtkódu add funkce ukládají nully na pozice parametrů?
    0: aload_1
    1: aconst_null
    2: astore_1
    3: aload_2
    4: aconst_null
    5: astore_2
    6: invokestatic #34; //Method clojure/lang/Num­bers.add:(Lja­va/lang/Objec
    t;Ljava/lang/Ob­ject;)Ljava/lan­g/Number;
    9: areturn

    Jinak opět musím poděkovat za opravdu skvělý seriál. Mezi českými IT weby je dosti unikátní.

  • 29. 8. 2012 22:36

    Pavel Tišnovský
    Zlatý podporovatel

    Me to taky prekvapilo, ale zda se, ze je v tomto prekladac Clojure docela konzistentni, takze se *snad* jedna o to, ze kdyz se reference vlastne vymazou, tak se zaruci, ze na ne nikdo nezavola settery a tim se zaruci nemenitelnost. Dalsi moznost je jen kontrola, jestli nekdo po instrukci cislo 6 nesaha spatne na lokalni parametry, protoze by to vyvolalo NPE.