Skip to content

Instantly share code, notes, and snippets.

# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
#TL_UPSTREAM_PATCHLEVEL="1"
PATCHLEVEL="65"
TL_SOURCE_VERSION=20160523
inherit eutils flag-o-matic toolchain-funcs libtool texlive-common
--- sugar.csv 2017-03-21 17:38:23.423924702 +0900
+++ sugar2.csv 2017-03-21 17:37:25.538407481 +0900
@@ -16,32 +16,32 @@
fn_call,file_name,"sugar.rs",file_line,12,file_col,13,byte_start,491,file_line_end,12,file_col_end,16,byte_end,494,refid,"6",refidcrate,"0",qualname,"",scopeid,"4294967295"
variable,file_name,"sugar.rs",file_line,14,file_col,9,byte_start,507,file_line_end,14,file_col_end,10,byte_end,508,id,"4",name,"x",qualname,"x$11",value,"< [ _ ] > :: into_vec ( box [ $ ( $ x ) , * ] ): i32",type,"i32",scopeid,"0"
macro_use,file_name,"sugar.rs",file_line,14,file_col,14,byte_start,512,file_line_end,14,file_col_end,17,byte_end,515,callee_name,"vec",qualname,"vec::16139756968159717933",scopeid,"4294967295"
-macro_use,file_name,"sugar.rs",file_line,15,file_col,9,byte_start,539,file_line_end,15,file_col_end,16,byte_end,546,callee_name,"println",qualname,"println::282788003535457304",scopeid,"4294967295"
+macro_use,file_name,"sugar.rs",file_line,15,file_col,9,byte_start,539,file_line_end,15,file_col_end,16,
@sinkuu
sinkuu / main.rs
Created December 6, 2016 07:32
serial test
extern crate serial;
extern crate serial_enumerate;
use serial::SerialDevice;
use std::io::{self, Read, BufRead, Write};
use std::thread;
use std::time::Duration;
fn main() {
--- /tmp/benchfmt/target/release/deps/benchfmt-fca5297d5eddca60.ll 2016-11-18 21:23:46.878085104 +0900
+++ benchfmt.ll 2016-11-18 22:59:26.292921807 +0900
@@ -41,10 +41,10 @@
%"unwind::libunwind::_Unwind_Exception" = type { i64, void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [6 x i64] }
%"unwind::libunwind::_Unwind_Context" = type {}
-@vtable.0 = internal unnamed_addr constant { void (%"std::io::Write::write_fmt::Adaptor<collections::vec::Vec<u8>>"*)*, i64, i64, i8 (%"std::io::Write::write_fmt::Adaptor<collections::vec::Vec<u8>>"*, i8*, i64)*, i8 (%"std::io::Write::write_fmt::Adaptor<collections::vec::Vec<u8>>"*, i32)*, i8 (%"std::io::Write::write_fmt::Adaptor<collections::vec::Vec<u8>>"*, %"core::fmt::Arguments"*)* } { void (%"std::io::Write::write_fmt::Adaptor<collections::vec::Vec<u8>>"*)* @_ZN4drop17h35f956f2745ea4cbE, i64 32, i64 8, i8 (%"std::io::Write::write_fmt::Adaptor<collections::vec::Vec<u8>>"*, i8*, i64)* @"_ZN94_$LT$std..io..Write..write_fmt..Adaptor$LT$$u27$a$C$$u20$T$GT$$u20$as$u20
--- /tmp/benchfmt/target/release/deps/benchfmt-fca5297d5eddca60.ll 2016-11-18 21:23:46.878085104 +0900
+++ benchfmt.ll 2016-11-18 21:24:09.271942721 +0900
@@ -3,13 +3,12 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-%"std::io::Write::write_fmt::Adaptor<collections::vec::Vec<u8>>" = type { %"collections::vec::Vec<u8>"*, %"core::result::Result<(), std::io::error::Error>" }
+%"std::io::impls::{{impl}}::write_fmt::Adaptor" = type { %"collections::vec::Vec<u8>"* }
%"collections::vec::Vec<u8>" = type { %"alloc::raw_vec::RawVec<u8>", i64 }
%"alloc::raw_vec::RawVec<u8>" = type { %"core::ptr::Unique<u8>", i64 }
@sinkuu
sinkuu / variadic_trait.rs
Created October 7, 2016 07:11
Just use Vec<Box<Trait>>;)
#![feature(unsize)]
use std::marker::Unsize;
pub trait Variadic<Trait: ?Sized> {
type OneLess: Variadic<Trait>;
fn pop(self) -> (Option<Box<Trait>>, Self::OneLess);
}
@sinkuu
sinkuu / playground.rs
Created October 7, 2016 06:55 — forked from anonymous/playground.rs
Shared via Rust Playground
#![feature(unsize)]
use std::fmt::Debug;
use std::marker::Unsize;
fn foo<T: Unsize<Debug> + 'static>(mut t: T) {
let t = unsafe { Box::from_raw(&mut t as *mut _) } as Box<Debug>;
println!("{:?}", t);
}
@sinkuu
sinkuu / washilang.rs
Last active September 29, 2016 01:35
Rustでインタプリタを実装 (元ネタ: http://qiita.com/shuetsu@github/items/ac21e597265d6bb906dc)
#![feature(question_mark)]
extern crate combine;
use combine::{ParseResult, ParseError};
use std::collections::HashMap;
use std::rc::Rc;
fn parse_expr(s: &str) -> Result<Expression, ParseError<combine::State<&str>>> {
use combine::{Parser, State};
macro_rules! while_iter_ok {
($it:expr, |$x:pat| $f:expr) => {
for x in $it {
let $x = try!(x);
$f;
}
};
($it:expr, |_ : $t:ty| $f:expr) => {
for x in $it {
pub fn parse(s: &str) -> Result<Expr, ParseError<combine::State<&str>>> {
use combine::{Parser, eof, parser, many1, many, between, try};
use combine::char::{char, letter, spaces};
fn parse_inner(s: combine::State<&str>) -> ParseResult<Expr, combine::State<&str>> {
macro_rules! between_parens {
($p:expr) => { between((char('('), spaces()), (spaces(), char(')')), $p) }
}