Assemblyscript: أسماء مخصصة للتصدير

تم إنشاؤها على ١ أكتوبر ٢٠٢٠  ·  4تعليقات  ·  مصدر: AssemblyScript/assemblyscript

مرحبًا ، أنا جديد تمامًا على AssemblyScript ، ولست متأكدًا من كيفية تحقيق ما أريد وما إذا كان AssemblyScript يدعم هذا بالفعل. أنا أحاول بشكل أساسي تجميع AssemblyScript إلى Wasm لنشره في برنامج المقارنات الدولية (DFINITY). لديهم لغتهم الخاصة موتوكو التي لديهم دعم جيد لها ، وهم يخرجون مع Rust و C SDK. أعتقد أنه يمكنني جعل هذا يعمل مع AssemblyScript ، باتباع أحد أمثلة C التي قاموا بفتحها. هذا ما أحاول تحقيقه: https://github.com/dfinity/examples/blob/master/c/qr/qr.c#L67

أنا لا أفهم التركيب اللغوي هناك بالضبط. يبدو أنه يتم تعيين اسم تصدير وظيفة go على "canister_update go". كيف يمكنني تحقيق ذلك في AssemblyScript؟ لقد نجحت في تجميع برنامج AssemblyScript الخاص بي ونشره في عقدة ICP محلية ، ولكن لا يمكنني الآن الاتصال بوظيفتي لأنني لم أقم بتمييزها بشكل كافٍ كوظيفة تحديث العلبة.

question stale

ال 4 كومينتر

يدعم AssemblyScript الأسماء الخارجية المخصصة فقط للواردات عبر @external(module, name) . لذلك يمكنك أن تفعل ما يلي:

@external("canister_update", "go")
export function go(): void {
  ...
}

لكن هذا لا يدعمه AS حاليًا. ولكن يمكنك كتابة روتين تحويل مخصص جعل من الممكن استخدام مصمم external للتصدير.

أمثلة مفيدة حول كيفية استخدام transform :
https://github.com/AssemblyScript/examples/tree/master/transform
https://github.com/willemneal/visitor-as

وإضافة المنطق الذي يتحول من:

(func $go (export "go") (type $t1) (result i32) i32.const 1)

إلى

(func $go (export "canister_update go") (type $t1) (result i32) i32.const 1)

عندما تحتوي الوظيفة المصدرة على مصمم @external("canister_update", "go")

ممتاز ، لذا لا بد لي من تغيير اسم التصدير؟ هذا كل ما يفعله مثال C الذي ربطته به؟

نعم ، هم فقط يستبدلون (export "go") إلى (export "canister_update go")

تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

DanielMazurkiewicz picture DanielMazurkiewicz  ·  4تعليقات

DuncanUszkay1 picture DuncanUszkay1  ·  3تعليقات

MaxGraey picture MaxGraey  ·  3تعليقات

emil14 picture emil14  ·  3تعليقات

kyegupov picture kyegupov  ·  3تعليقات