diff --git a/math/fib/src/main.rs b/math/fib/src/main.rs index ac3d1bc..74985d6 100644 --- a/math/fib/src/main.rs +++ b/math/fib/src/main.rs @@ -31,28 +31,28 @@ interface (Sequence ℕ) 0 1"); let mut f0 = unsafe { File::from_raw_fd(0) }; eprintln!(" -> 0: n +>0: n ( ℕ ) ( MachineInt ) ( MachineWord ) - ( Pipe Shot MachineWord ) + ( Stream MachineSyllab ) "); let mut f1 = unsafe { File::from_raw_fd(1) }; eprintln!(" -< 1: n'th fibonacci number +<1: n'th fibonacci number ( ℕ ) ( MachineInt ) ( MachineWord ) - ( Pipe Shot MachineWord ) + ( Stream MachineSyllab ) "); nested::magic_header(); let mut bytes = [0 as u8; 8]; - f0.read_exact(&mut bytes); + f0.read_exact(&mut bytes).expect(""); let n = u64::from_le_bytes(bytes); bytes = fib(n).to_le_bytes(); - f1.write(&bytes); + f1.write(&bytes).expect(""); } diff --git a/math/int2str/src/main.rs b/math/int2str/src/main.rs index 1722b3e..abb96b2 100644 --- a/math/int2str/src/main.rs +++ b/math/int2str/src/main.rs @@ -1,7 +1,7 @@ use std::{ fs::File, - io::{Read, Write}, + io::{Read}, os::unix::io::FromRawFd }; @@ -32,7 +32,7 @@ fn main() { nested::magic_header(); let mut bytes = [0 as u8; 8]; - f0.read_exact(&mut bytes); + f0.read_exact(&mut bytes).expect(""); println!("{}", u64::from_le_bytes(bytes)); } diff --git a/math/radix_transform/src/main.rs b/math/radix_transform/src/main.rs index b2abba6..fe904bd 100644 --- a/math/radix_transform/src/main.rs +++ b/math/radix_transform/src/main.rs @@ -1,18 +1,11 @@ use { - std::sync::{Arc, RwLock}, nested::{ core::{ - View, ViewPort, - Observer, - ObserverBroadcast, - InnerViewPort, - OuterViewPort, - TypeTerm, TypeDict }, - sequence::{SequenceView, VecBuffer}, + sequence::{VecBuffer}, integer::{RadixProjection} } }; @@ -102,7 +95,7 @@ async fn main() { let mut src_digits = VecBuffer::::new(src_digits_port.inner()); - let proj = RadixProjection::new( + let _proj = RadixProjection::new( src_radix, dst_radix, src_digits_port.outer().to_sequence(), @@ -110,10 +103,8 @@ async fn main() { ); // output dst digits - let writer = { + let _writer = { use std::{ - fs::File, - io::{Read, Write}, os::unix::io::FromRawFd }; @@ -123,8 +114,6 @@ async fn main() { // start reading src digits { use async_std::{ - fs::File, - io::{Read, Write}, os::unix::io::FromRawFd }; diff --git a/math/str2int/src/main.rs b/math/str2int/src/main.rs index ad22e83..b35989e 100644 --- a/math/str2int/src/main.rs +++ b/math/str2int/src/main.rs @@ -46,15 +46,15 @@ $1: radix args.next().expect("Arg $0 missing!"); let radix_str = args.next().expect("Arg $1 required!"); - + let radix = u32::from_str_radix(&radix_str, 10).expect("could not parse radix"); if radix > 16 { panic!("invalid radix! (radix<=16 required)"); } - + let mut chars = Vec::new(); - f0.read_to_end(&mut chars); + f0.read_to_end(&mut chars).expect(""); chars.retain(|c| (*c as char).is_alphanumeric()); - f1.write(&u64::from_str_radix(&String::from_utf8_lossy(&chars), radix).unwrap().to_le_bytes()); + f1.write(&u64::from_str_radix(&String::from_utf8_lossy(&chars), radix).unwrap().to_le_bytes()).expect(""); } diff --git a/nested/src/core/context.rs b/nested/src/core/context.rs index 0765d95..bc02cf3 100644 --- a/nested/src/core/context.rs +++ b/nested/src/core/context.rs @@ -1,13 +1,11 @@ use { std::{ collections::HashMap, - sync::{Arc, RwLock}, - any::Any + sync::{Arc, RwLock} }, crate::{ core::{ type_term::{ - TypeID, TypeTerm, TypeDict }, @@ -194,8 +192,8 @@ impl Object { // replace with higher-level type in which self is a repr branch pub fn epi_cast<'a>( &self, - type_ladder: impl Iterator, - morphism_constructors: &HashMap Object>> + _type_ladder: impl Iterator, + _morphism_constructors: &HashMap Object>> ) { // todo } @@ -288,7 +286,6 @@ impl Context { type_tag, repr: Arc::new(RwLock::new(ReprTree::new())) } - } ); } @@ -341,8 +338,8 @@ impl Context { typename: &str ) { let dst_type = self.type_dict.type_term_from_str(typename).unwrap(); - let mut old_obj = self.objects.get(&name.to_string()).unwrap().clone(); - let mut new_obj = + let old_obj = self.objects.get(&name.to_string()).unwrap().clone(); + let new_obj = if let Some(ctor) = self.morphism_constructors.get( &MorphismType { mode: MorphismMode::Epi, @@ -387,29 +384,6 @@ impl Context { None } } - -/* - pub fn _default_repr<'a>( - &mut self, - name: &String, - type_ladder: impl Iterator - ) -> AnyOuterViewPort { - for (i, type_term) in type_ladder.rev().enumerate() { - match i { - 0 => { - if let Some(constructor) = self.default_constructors.get(&type_term) { - self.add_repr() - } else { - panic!("cannot find matching default constructor!"); - } - } - _n => { - - } - } - } - } - */ } //<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>> diff --git a/nested/src/core/type_term.rs b/nested/src/core/type_term.rs index 784791d..180d66b 100644 --- a/nested/src/core/type_term.rs +++ b/nested/src/core/type_term.rs @@ -1,10 +1,6 @@ use { std::{ - sync::Arc, - any::Any, - ops::Deref, - collections::HashMap, - iter::Peekable + collections::HashMap }, crate::{ bimap::Bimap, @@ -32,7 +28,7 @@ impl TypeTerm { } pub fn arg(&mut self, t: TypeTerm) -> &mut Self { - if let TypeTerm::Type{ id, args } = self { + if let TypeTerm::Type{ id: _, args } = self { args.push(t); } @@ -54,7 +50,7 @@ impl TypeTerm { ")" => { let t = term_stack.pop().unwrap(); if term_stack.len() > 0 { - let mut f = term_stack.last_mut().unwrap(); + let f = term_stack.last_mut().unwrap(); if let Some(f) = f { f.arg(t.unwrap()); } else { @@ -65,7 +61,7 @@ impl TypeTerm { } }, atom => { - let mut f = term_stack.last_mut().unwrap(); + let f = term_stack.last_mut().unwrap(); match f { Some(f) => diff --git a/nested/src/integer/add.rs b/nested/src/integer/add.rs index 9ba42d4..e093577 100644 --- a/nested/src/integer/add.rs +++ b/nested/src/integer/add.rs @@ -1,7 +1,7 @@ use { std::sync::{Arc, RwLock}, crate::{ - core::{InnerViewPort, OuterViewPort, ObserverBroadcast}, + core::{InnerViewPort, OuterViewPort}, sequence::{SequenceView, VecBuffer}, projection::ProjectionHelper } @@ -43,7 +43,7 @@ pub struct Add { a: Arc>, // PosInt, Little Endian b: Arc>, // PosInt, Little Endian c: VecBuffer, - proj_helper: ProjectionHelper + _proj_helper: ProjectionHelper } impl Add { @@ -60,7 +60,7 @@ impl Add { a: proj_helper.new_sequence_arg(a, |s: &mut Self, _digit_idx| s.update()), b: proj_helper.new_sequence_arg(b, |s: &mut Self, _digit_idx| s.update()), c: VecBuffer::new(c), - proj_helper + _proj_helper: proj_helper } )); add diff --git a/nested/src/integer/radix.rs b/nested/src/integer/radix.rs index 606f8b3..9f3169c 100644 --- a/nested/src/integer/radix.rs +++ b/nested/src/integer/radix.rs @@ -2,10 +2,7 @@ use { std::sync::{Arc, RwLock}, crate::{ core::{ - View, - ViewPort, Observer, - ObserverBroadcast, InnerViewPort, OuterViewPort }, @@ -63,7 +60,7 @@ impl RadixProjection { } } - fn update_dst_digit(&mut self, idx: usize) { + fn _update_dst_digit(&mut self, _idx: usize) { /* let v = 0; // calculate new digit value @@ -85,7 +82,7 @@ impl Observer> for RadixProjection { self.src_digits = view; } - fn notify(&self, idx: &usize) { + fn notify(&self, _idx: &usize) { // todo: // src digit i changed. // which dst-digits does it affect? diff --git a/nested/src/leveled_term_view.rs b/nested/src/leveled_term_view.rs index 8686502..a4d8ff4 100644 --- a/nested/src/leveled_term_view.rs +++ b/nested/src/leveled_term_view.rs @@ -1,7 +1,6 @@ use { std::{ - sync::{Arc}, - collections::HashSet + sync::{Arc} }, std::sync::RwLock, cgmath::Point2, @@ -9,7 +8,7 @@ use { core::{ViewPort, Observer, ObserverExt, ObserverBroadcast, InnerViewPort, OuterViewPort}, index::{ImplIndexView}, terminal::{TerminalAtom, TerminalView, TerminalStyle}, - projection::{ProjectionHelper, ProjectionArg} + projection::{ProjectionHelper} } }; diff --git a/nested/src/lib.rs b/nested/src/lib.rs index e9c4c1a..58f6e5e 100644 --- a/nested/src/lib.rs +++ b/nested/src/lib.rs @@ -1,5 +1,4 @@ #![feature(trait_alias)] -#![feature(non_ascii_idents)] pub mod core; pub mod projection; diff --git a/nested/src/projection.rs b/nested/src/projection.rs index 45f3391..e6a8803 100644 --- a/nested/src/projection.rs +++ b/nested/src/projection.rs @@ -9,7 +9,16 @@ use { }, std::sync::RwLock, crate::{ - core::{View, Observer, ObserverExt, OuterViewPort, channel::{channel, ChannelData, ChannelSender, ChannelReceiver}}, + core::{ + View, + Observer, ObserverExt, + OuterViewPort, + channel::{ + channel, + ChannelData, + ChannelSender + } + }, singleton::{SingletonView}, sequence::{SequenceView}, index::{IndexView} @@ -90,14 +99,7 @@ impl ProjectionHelper

{ async_std::task::spawn(async move { while let Some(msg) = rx.next().await { if let Some(proj) = proj.read().unwrap().upgrade() { - loop { - if let Ok(p) = proj.try_write().as_mut() { - notify(&mut *p, &msg); - break; - } - - async_std::task::yield_now(); - } + notify(&mut *proj.write().unwrap(), &msg); } } }); diff --git a/nested/src/sequence/flatten.rs b/nested/src/sequence/flatten.rs index ab1dec9..30fc68b 100644 --- a/nested/src/sequence/flatten.rs +++ b/nested/src/sequence/flatten.rs @@ -1,13 +1,13 @@ use { async_std::stream::StreamExt, std::{ - sync::{Arc, Weak}, + sync::{Arc}, collections::{HashMap, HashSet} }, std::sync::RwLock, crate::{ core::{ - View, Observer, ObserverExt, ObserverBroadcast, + View, Observer, ObserverBroadcast, ObserverExt, ViewPort, InnerViewPort, OuterViewPort, channel::{ChannelSender, ChannelReceiver} }, @@ -34,7 +34,7 @@ where V1: SequenceView> + ?Sized + 'static, top: Arc>>, chunks: HashMap>>>, - cast: Arc>>> + _cast: Arc>>> } struct TopObserver @@ -130,7 +130,7 @@ where V1: SequenceView> + ?Sized + 'static, length: 0, top: top_obs.clone(), chunks: HashMap::new(), - cast: out_port.get_broadcast() + _cast: out_port.get_broadcast() })); let f = flat.clone(); diff --git a/nested/src/sequence/map.rs b/nested/src/sequence/map.rs index dc2d1c1..79eb93b 100644 --- a/nested/src/sequence/map.rs +++ b/nested/src/sequence/map.rs @@ -5,7 +5,7 @@ use { sequence::{SequenceView}, core::{ Observer, ObserverExt, ObserverBroadcast, - View, ViewPort, InnerViewPort, OuterViewPort + View, ViewPort, OuterViewPort } } }; diff --git a/nested/src/sequence/vec_buffer.rs b/nested/src/sequence/vec_buffer.rs index 04643c4..371fcb8 100644 --- a/nested/src/sequence/vec_buffer.rs +++ b/nested/src/sequence/vec_buffer.rs @@ -7,7 +7,7 @@ use { std::sync::RwLock, async_std::{ io::{Read, ReadExt}, - stream::{Stream, StreamExt} + stream::{StreamExt} }, serde::{Serialize, Deserialize, de::DeserializeOwned}, crate::{ @@ -101,24 +101,24 @@ where T: Clone + Serialize + Send + Sync + 'static, self.data = view; let mut out = self.out.write().unwrap(); - out.write(&bincode::serialized_size(&VecDiff::::Clear).unwrap().to_le_bytes()); - out.write(&bincode::serialize(&VecDiff::::Clear).unwrap()); + out.write(&bincode::serialized_size(&VecDiff::::Clear).unwrap().to_le_bytes()).expect(""); + out.write(&bincode::serialize(&VecDiff::::Clear).unwrap()).expect(""); if let Some(data) = self.data.as_ref() { for x in data.read().unwrap().iter() { - out.write(&bincode::serialized_size(&VecDiff::Push(x)).unwrap().to_le_bytes()); - out.write(&bincode::serialize(&VecDiff::Push(x)).unwrap()); + out.write(&bincode::serialized_size(&VecDiff::Push(x)).unwrap().to_le_bytes()).expect(""); + out.write(&bincode::serialize(&VecDiff::Push(x)).unwrap()).expect(""); } } - out.flush(); + out.flush().expect(""); } fn notify(&self, diff: &VecDiff) { let mut out = self.out.write().unwrap(); - out.write(&bincode::serialized_size(diff).unwrap().to_le_bytes()); - out.write(&bincode::serialize(diff).unwrap()); - out.flush(); + out.write(&bincode::serialized_size(diff).unwrap().to_le_bytes()).expect(""); + out.write(&bincode::serialize(diff).unwrap()).expect(""); + out.flush().expect(""); } } @@ -129,23 +129,23 @@ where T: Clone + Serialize + Send + Sync + 'static, fn reset(&mut self, view: Option>>>) { self.data = view; - self.out.write().unwrap().write(&serde_json::to_string(&VecDiff::::Clear).unwrap().as_bytes()); - self.out.write().unwrap().write(b"\n"); + self.out.write().unwrap().write(&serde_json::to_string(&VecDiff::::Clear).unwrap().as_bytes()).expect(""); + self.out.write().unwrap().write(b"\n").expect(""); if let Some(data) = self.data.as_ref() { for x in data.read().unwrap().iter() { - self.out.write().unwrap().write(&serde_json::to_string(&VecDiff::Push(x)).unwrap().as_bytes()); - self.out.write().unwrap().write(b"\n"); + self.out.write().unwrap().write(&serde_json::to_string(&VecDiff::Push(x)).unwrap().as_bytes()).expect(""); + self.out.write().unwrap().write(b"\n").expect(""); } } - self.out.write().unwrap().flush(); + self.out.write().unwrap().flush().expect(""); } fn notify(&self, diff: &VecDiff) { - self.out.write().unwrap().write(serde_json::to_string(diff).unwrap().as_bytes()); - self.out.write().unwrap().write(b"\n"); - self.out.write().unwrap().flush(); + self.out.write().unwrap().write(serde_json::to_string(diff).unwrap().as_bytes()).expect(""); + self.out.write().unwrap().write(b"\n").expect(""); + self.out.write().unwrap().flush().expect(""); } } diff --git a/nested/src/singleton/mod.rs b/nested/src/singleton/mod.rs index 932b214..b18ac46 100644 --- a/nested/src/singleton/mod.rs +++ b/nested/src/singleton/mod.rs @@ -52,21 +52,14 @@ where V::Item: Default{ //<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>> /* -pub trait ImplSingletonView : Send + Sync { - type Item; +impl OuterViewPort> { + pub fn get(&self) -> T { + self.get_view().unrwap().read().unwrap().get(); + } - fn get(&self) -> Self::Item; -} - -impl View for V { - type Msg = (); -} - -impl SingletonView for V { - type Item = V::Item; - - fn get(&self) -> Self::Item { - (self as &V).get() + pub fn map(&self, f: impl Fn(T) -> U) -> OuterViewPort> { + } } -*/ + */ + diff --git a/nested/src/string_editor.rs b/nested/src/string_editor.rs index addeecf..3e610aa 100644 --- a/nested/src/string_editor.rs +++ b/nested/src/string_editor.rs @@ -100,9 +100,7 @@ pub mod insert_view { use { std::{ sync::Arc, - cmp::{min, max}, - any::Any, - collections::HashSet + cmp::{min, max} }, cgmath::Point2, std::sync::RwLock, @@ -113,7 +111,7 @@ pub mod insert_view { singleton::{SingletonView}, sequence::{SequenceView}, index::{IndexView}, - projection::{ProjectionHelper, ProjectionArg}, + projection::{ProjectionHelper}, } }; @@ -144,7 +142,7 @@ pub mod insert_view { if i < self.cur_pos { TerminalAtom::from(data.get(&i)?) } else if i == self.cur_pos { - TerminalAtom::new('|', TerminalStyle::fg_color((200, 0, 0))) + TerminalAtom::new('|', TerminalStyle::fg_color((0, 200, 0))) } else { TerminalAtom::from(data.get(&(i - 1))?) } diff --git a/nested/src/terminal/compositor.rs b/nested/src/terminal/compositor.rs index 9c15790..0efb950 100644 --- a/nested/src/terminal/compositor.rs +++ b/nested/src/terminal/compositor.rs @@ -1,12 +1,11 @@ use { std::{ - sync::{Arc, Weak}, - collections::HashMap + sync::{Arc} }, std::sync::RwLock, cgmath::Point2, crate::{ - core::{InnerViewPort, OuterViewPort, Observer, ObserverExt, ObserverBroadcast}, + core::{InnerViewPort, OuterViewPort, Observer, ObserverBroadcast}, index::{ImplIndexView}, terminal::{TerminalAtom, TerminalView}, projection::ProjectionHelper diff --git a/nested/src/terminal/terminal.rs b/nested/src/terminal/terminal.rs index 52aa0ee..eec519b 100644 --- a/nested/src/terminal/terminal.rs +++ b/nested/src/terminal/terminal.rs @@ -127,7 +127,8 @@ impl Observer for TermOutObserver { if let Some(view) = view { for pos in view.area().unwrap_or( GridWindowIterator::from( - Point2::new(0, 0) .. Point2::new(w as i16, h as i16)).collect() + Point2::new(0, 0) .. Point2::new(w as i16, h as i16) + ).collect() ) { self.dirty_pos_tx.send(pos); } @@ -148,7 +149,7 @@ pub struct TermOutWriter { impl TermOutWriter { fn reset(&self) { let mut out = self.out.write().unwrap(); - write!(out, "{}", termion::clear::All).ok(); + write!(out, "{}", termion::clear::All).ok(); } } diff --git a/terminal/ansi_parser/src/main.rs b/terminal/ansi_parser/src/main.rs index 7f66b05..68d7b45 100644 --- a/terminal/ansi_parser/src/main.rs +++ b/terminal/ansi_parser/src/main.rs @@ -4,7 +4,7 @@ use { std::{ fs::File, os::unix::io::FromRawFd, - io::{Read, Write, stdin, stdout} + io::{Read, Write, stdin} }, nested::{ terminal::{ @@ -39,7 +39,7 @@ struct PerfAtom { impl PerfAtom { fn write_atom(&mut self, pos: Point2, atom: Option) { - self.out.write(&bincode::serialize(&(pos, atom)).unwrap()); + self.out.write(&bincode::serialize(&(pos, atom)).unwrap()).expect(""); } } diff --git a/terminal/display_server/src/main.rs b/terminal/display_server/src/main.rs index 70e7489..4b1377a 100644 --- a/terminal/display_server/src/main.rs +++ b/terminal/display_server/src/main.rs @@ -1,7 +1,5 @@ use { std::{ - fs::File, - os::unix::io::FromRawFd, io::{Read, Write, stdout} }, nested::terminal::{ @@ -22,12 +20,7 @@ fn main() { let mut cur_pos = Point2::::new(0, 0); let mut cur_style = TerminalStyle::default(); - let mut f = unsafe { File::from_raw_fd(0) }; - let mut bytes = [0 as u8; 0xe]; - - let mut input = std::io::stdin(); - let mut buf = [0; 2048]; loop { match bincode::deserialize_from::<_, (Point2, Option)>(input.by_ref()) { @@ -39,12 +32,12 @@ fn main() { if let Some(atom) = atom { if cur_style != atom.style { cur_style = atom.style; - write!(out, "{}", atom.style); + write!(out, "{}", atom.style).expect(""); } - write!(out, "{}", atom.c.unwrap_or(' ')); + write!(out, "{}", atom.c.unwrap_or(' ')).expect(""); } else { - write!(out, "{} ", termion::style::Reset); + write!(out, "{} ", termion::style::Reset).expect(""); cur_style = TerminalStyle::default(); } @@ -54,11 +47,11 @@ fn main() { } Err(err) => { match *err { - bincode::ErrorKind::Io(io_error) => { + bincode::ErrorKind::Io(_io_error) => { break } err => { - eprintln!("deserialization error: {:?}\n{:?}", bytes, err); + eprintln!("deserialization error\n{:?}", err); } } break;