![](https://seccdn.libravatar.org/avatar/6299e62261af6bf8135ff9290b0da7da.jpg?s=120&d=mm&r=g)
On Fri, 16 Dec 2016 14:52:49 +0100, Stefan Knorr <sknorr@suse.de> wrote:
Hi Richard,
Maybe it's just too premature to package rust if the language is that unstable ;)
This is pretty much unavoidable, since Firefox is going to ship pieces written in Rust soon... (I think they are already using some Rust code Nightlies, eventually those will graduate to become part of stable releases [1].)
Stefan.
[1] I am not 100% sure about the timeline. I am only sure that Firefox is going to contain a whole bunch of Rust pretty soon.
Forgive me if I am off-topic here (ignore me if I am), but this thread motivated me to add rust to my list of CSV performances: http://tux.nl/Talks/CSV6/speed5.html That work is based on "The CSV game" by Ewan Higgs: https://bitbucket.org/ewanhiggs/csv-game but with the focus on different ways to parse in perl I wanted to add rust the same way Ewan did in https://bitbucket.org/ewanhiggs/csv-game/src/0dd4ca3abeb52044bad7ba39ac86694... On TumbleWeed, I don't need to add repositories and I can install and build and run the examples $ rpm -q rust cargo rust-1.10.0-1.2.x86_64 cargo-0.13.0-1.1.x86_64 And all goes as planned. Rust is FAST! :) On openSUSE 13.2 however, if I install rust and cargo from http://download.opensuse.org/repositories/home:/Ledest:/devel/openSUSE_13.2/ on my Linux 3.16.7-53-desktop [openSUSE 13.2 (Harlequin)] HP Z220CMT Xeon(R) CPU E3-1245 V2 @ 3.40GHz/1676(8) x86_64 11913 Mb $ rpm -q cargo rust cargo-0.13.0-3.1.x86_64 rust-1.13.0-1.1.x86_64 None of the examples will build: Text-CSV6/rust-libcsv 504 > cargo build --release Compiling csvreader v0.0.1 (file:///pro/3gl/CPAN/Text-CSV6/rust-libcsv) warning: found non-foreign-function-safe member in struct marked #[repr(C)]: found function pointer with Rust calling convention in foreign module; consider using an `extern` function pointer, #[warn(improper_ctypes)] on by default --> src/main.rs:45:26 | 45 | fn csv_init(parser : *mut CSVParser, opt: u8) -> i64; | ^^^^^^^^^^^^^^ warning: found non-foreign-function-safe member in struct marked #[repr(C)]: found function pointer with Rust calling convention in foreign module; consider using an `extern` function pointer, #[warn(improper_ctypes)] on by default --> src/main.rs:46:26 | 46 | fn csv_parse(parser: *mut CSVParser, buf: *mut u8, buflen : size_t, | ^^^^^^^^^^^^^^ warning: found non-foreign-function-safe member in struct marked #[repr(C)]: found function pointer with Rust calling convention in foreign module; consider using an `extern` function pointer, #[warn(improper_ctypes)] on by default --> src/main.rs:50:25 | 50 | fn csv_free(parser: *mut CSVParser); | ^^^^^^^^^^^^^^ error: linking with `cc` failed: exit code: 1 | = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "/pro/3gl/CPAN/Text-CSV6/rust-libcsv/target/release/csvreader.0.o" "-o" "/pro/3gl/CPAN/Text-CSV6/rust-libcsv/target/release/csvreader" "-Wl,--gc-sections" "-pie" "-Wl,-O1" "-nodefaultlibs" "-L" "/pro/3gl/CPAN/Text-CSV6/rust-libcsv/target/release/deps" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "-l" "csv" "/tmp/rustc.J38H3uxu8Dpd/libstd-a4729905.rlib" "/tmp/rustc.J38H3uxu8Dpd/liballoc_jemalloc-a4729905.rlib" "/tmp/rustc.J38H3uxu8Dpd/libcompiler_builtins-a4729905.rlib" "-l" "util" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "util" = note: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: jemalloc.pic.o: access beyond end of merged section (1505) /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: jemalloc.pic.o: access beyond end of merged section (2540) /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: jemalloc.pic.o: access beyond end of merged section (3011) /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: jemalloc.pic.o: access beyond end of merged section (2703) : : Text-CSV6/rust-csvreader 506 > cargo build --release Compiling csvreader v0.0.1 (file:///pro/3gl/CPAN/Text-CSV6/rust-csvreader) error: linking with `cc` failed: exit code: 1 | = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "/pro/3gl/CPAN/Text-CSV6/rust-csvreader/target/release/csvreader.0.o" "-o" "/pro/3gl/CPAN/Text-CSV6/rust-csvreader/target/release/csvreader" "-Wl,--gc-sections" "-pie" "-Wl,-O1" "-nodefaultlibs" "-L" "/pro/3gl/CPAN/Text-CSV6/rust-csvreader/target/release/deps" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "/tmp/rustc.5nlBbtpdguoY/libstd-a4729905.rlib" "/tmp/rustc.5nlBbtpdguoY/liballoc_jemalloc-a4729905.rlib" "/tmp/rustc.5nlBbtpdguoY/libcompiler_builtins-a4729905.rlib" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" "-l" "rt" "-l" "util" = note: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: jemalloc.pic.o: access beyond end of merged section (1505) /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: jemalloc.pic.o: access beyond end of merged section (2540) /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: jemalloc.pic.o: access beyond end of merged section (3011) : : : -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.25 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/