Я работаю над созданием библиотеки для взаимодействия с Pandora. Я основываю свой код blowfish на библиотеке python, но мне сложно скомпилировать его. Vala не сообщает об ошибках, пока не попытается сгенерировать исходные файлы C. Это ошибка, я получаю:Не удалось выполнить компиляцию Vala с vala_ccode_array_module_real_get_array_length_cvalue: утверждение не выполнено
[email protected]:~/projects/libpanda$ valac --thread lib/crypto.vala -C -v
Loaded package `/usr/share/vala-0.26/vapi/glib-2.0.vapi'
Loaded package `/usr/share/vala-0.26/vapi/gobject-2.0.vapi'
lib/crypto.vala:192.42-192.60: warning: chained relational expressions are experimental
public Blowfish(string key) requires(8 < key.length < 56){
^^^^^^^^^^^^^^^^^^^
**
ERROR:valaccodearraymodule.c:1105:vala_ccode_array_module_real_get_array_length_cvalue: assertion failed: (size != null && size.size >= dim)
Aborted (core dumped)
Вы можете найти исходный код в моем хранилище мерзавца here. Я не уверен, что это ошибка с самой vala или моим кодом. У меня такое чувство, что оно имеет какое-то отношение к многомерным массивам, поскольку оно собиралось вчера, когда sbox были одномерными массивами.
EDIT: Похоже, что это проблема с самой валой. Оказывается, вы не можете присвоить значение const
многомерного массива в другой переменной:
public class TestClass : GLib.Object{
public static const int[,] ff = {{1,2},{3,4}};
public int[,] asdf;
public TestClass(){
asdf = TestClass.ff;
}
public static int main(string[] args){
var t = new TestClass();
return 0;
}
}
Какую версию Вала? Можете ли вы создать минимальный тестовый пример? – apmasell
0,24. Я понятия не имею, что это вызывает, но у меня должно быть время, чтобы посмотреть на это завтра утром. – nlowe