Skip to content

Instantly share code, notes, and snippets.

View pythonesque's full-sized avatar

Joshua Yanovski pythonesque

  • Lanetix
  • San Francisco, CA
View GitHub Profile
// The code below results in an error message I do not understand.
//
// This code is a Rust port of some F# code. Specifically, this:
//
// https://github.com/ericsink/LSM
//
// The snippet below has been pared down a lot to approximately
// the minimum necessary to retain the confusing error message.
//
// In general, the problem area seems to be the fact that I am
import Char
import Dict
import Dict (Dict)
-- import Graphics.Element (..)
-- import Graphics.Input.Field as Field
-- import Graphics.Input (..)
import Html
import Html (..)
import Html.Attributes (..)
import Html.Events (..)
#![feature(optin_builtin_traits,unsafe_destructor)]
pub mod recursive_mutex {
#![allow(unstable)]
use std::cell::UnsafeCell;
use std::sync::Semaphore;
use std::sync::atomic::{AtomicUsize, Ordering};
use std::thread::Thread;
use std::default::Default;
use std::num::Zero;
use std::slice::MutItems;
pub struct Matrix<T> {
values: Vec<T>,
rows: uint,
columns: uint,
}
@pythonesque
pythonesque / main.rs
Created November 25, 2014 07:41 — forked from TheNeikos/main.rs
#![feature(if_let)]
extern crate arena;
use arena::TypedArena;
use std::cell::Cell;
use std::fmt;
type NodeRef<'a, T> = Cell<Option<&'a Node<'a, T>>>;
#![feature(rustc_private,std_misc)]
extern crate arena;
use arena::TypedArena;
use std::cell::Cell;
use std::collections::hash_map::Entry as h;
use std::collections::HashMap;
use std::default::Default;
use std::fmt;
#![feature(unsafe_destructor)]
use rooted::{RcSend, Root};
use std::fmt;
use std::rc::Rc;
mod rooted {
use std::collections::trie_map::{mod, TrieMap};
use std::fmt;
use std::kinds::marker;
use std::collections::{dlist, DList, HashSet, Deque};
use std::hash::Hash;
use std::iter;
use std::default::Default;
pub struct LinkedHashSet<'a, T: 'a> where T: Hash + Eq {
// Important: HashSet must come after DList, since destructors run in
// reverse order. Otherwise we'd have use after free (potentially).
element_list: DList<T>,
element_set: HashSet<&'a T>,
@pythonesque
pythonesque / syncsend.markdown
Last active August 29, 2015 14:08
Improve the Send trait.
  • Start Date: 2014-11-10
  • RFC PR: (leave this empty)
  • Rust Issue: (leave this empty)

Summary

I propose altering the Send trait as proposed by RFC #17 as follows:

  • Remove the implicit 'static bound from Send.
#![feature(macro_rules)]
extern crate collections;
extern crate sync;
use std::sync::{Arc, Mutex, RWLock, RWLockReadGuard};
use std::sync::atomic::{AtomicBool, AtomicPtr, AtomicUint, Ordering, Relaxed, SeqCst};
use std::ptr;
use std::ptr::{RawMutPtr};
use std::slice::Items;