aboutsummaryrefslogtreecommitdiff
path: root/Cargo.toml
AgeCommit message (Collapse)Author
2017-12-13Remove the launcher and set the locale/current directory in alacritty (#879)Theodore Dubois
2017-11-11Output more info for `--version` (#888)hcpl
Useful when requesting more info to help investigating issues.
2017-10-22Rewrite err_println to eprintln introduced in Rust 1.19 (#799)Roel
2017-10-08Add support for env_loggerJoe Wilm
When RUST_LOG environment variable is set, uses env_logger instead of our custom logger. This is desirable for debugging purposes.
2017-10-06Revert "Update glutin & fix a few wayland issues (#815)"Joe Wilm
This reverts commit e17d38167e174a2cf664e430fe968ec6492e1f08. Was breaking builds for mac users.
2017-10-06Update glutin & fix a few wayland issues (#815)Victor Berger
This PR fixes a few wayland issues of alacritty (and updates glutin on the process because it is needed). Mainly two changes are done: 1. Add a drawing_ready() method on Window: see https://docs.rs/winit/0.8.2/winit/os/unix/trait.WindowExt.html#tymethod.is_ready for explanations. Hopefully glutin will be able to handle it itself in the future, but it currently does not. 2. resize window and OpenGL contextes. The way wayland forces winit to draw its own decorations and how surface size is defined by its content means that in practice: - winit's window.set_inner_size() defines the dimensions of the borders - glutins gl_window.resize() defines the dimensions of the content (and is a noop in other platforms) It is for now glutin's user responsibility to keep them in sync otherwise borders are drawn stupidly. This PR changes the resize methods of alacritty::Window to always update both. This fixed the borders issues for me, tested on weston.
2017-09-27Use clippy = "*", update, and fix some warnings (#796)Aaron Hill
Because there are so many clippy warnings in the current codebase, this commit removes '#![cfg_attr(feature = "clippy", deny(clippy))]', to make it easier to fix warnings incrementally.
2017-09-05Update notifyJonathan Schleußer
2017-09-05Update most remaining depsJonathan Schleußer
2017-09-05Update servoJonathan Schleußer
2017-08-28winit: 0.7.5 -> 0.7.6, glutin: 0.9.1 -> 0.9.2 (#761)Tim Steinbach
2017-07-21Use latest winitJoe Wilm
Resolves #679
2017-07-20Update to latest Glutin/winit (#671)Joe Wilm
* Update to latest Glutin/winit This *finally* gets us off the fork of Glutin we've been on for so long and will unblock a number of other items. Functionality should be the same as before. The update forced our hand on a compiler update. It's no longer feasible to pin on an old version. From now on, we require latest stable.
2017-07-03Revert "Reduce InstanceData footprint"Joe Wilm
This reverts commit 3cdba291242cc1c1684bff7f8242262b1cdeb582. On some systems, the target commit actually caused a massive performance issue rather than fixing one.
2017-07-01Reduce InstanceData footprintJoe Wilm
The InstanceData type in the rendering subsystem was previously 16 floats which occupied a total of 64 bytes per instance. This meant that for every character or background cell drawn, 64 bytes were sent to the GPU. In the case of a 400x100 cell grid, a total of 2.5MB would be sent. This patch reduces InstanceData's size to 26 bytes, a 60% improvement! Using the above example for comparison, a worst case of 1MB would be transferred. The motivation for this patch comes from macOS. Once the terminal grid would reach a certain size, performance experienced a sharp and dramatic drop (render times would go from ~3ms to ~16ms). I don't want to speculate too much on the underlying issue, but suffice it to say that this patch alleviates the problem in my testing.
2017-06-11Add support for Beam, Underline cursorsJoe Wilm
Notable about this implementation is it takes a different approach for managing cursor cells that previously. The terminal Grid is now borrowed *immutably*. Instead of mutating Cells in the Grid, a list is managed within the RenderableCellsIter. The cell at the cursor location is skipped over, and instead cells are popped off a list of cursor cells. It would be good in the future to share some more code between the different cursor style implementations for populating the cursor cells list. Supercedes #349.
2017-05-25Update dependenciesJoe Wilm
2017-05-01Support setting _NET_WM_PID in X11 environmentsJoe Wilm
Support is added for setting _NET_WM_PID automatically. This is to support scripting of the window environment. For example, this makes it possible to script opening a window with same CWD: 1. Retrieve the current window 2. (new) get PID of window 3. Check if it's Alacritty, find first child (presumably a shell), and get the child's cwd. 4. Spawn new instance of terminal with cwd. Unaddressed in this commit is how this will coexist on a Wayland system.
2017-03-02Fix bug parsing OSC stringsJoe Wilm
OSC strings with UTF-8 previously failed.
2017-03-02Add support for wide charactersJoe Wilm
2017-02-17Bump glutinJoe Wilm
Resolves #422
2017-02-17Updates Glutin to proper handle dead keysMichel Boaventura
Resolves #211.
2017-02-03Alacritty now compiles on stable Rust :tada:Joe Wilm
2017-02-02Implement save/restore cursor positionJoe Wilm
This passes the vttest for save and restore cursor position. The implementation was done according to: http://www.vt100.net/docs/vt510-rm/DECSC.html As of yet, there are a few things not supported by the terminal which should otherwise be saved/restored. vte was updated for a fix with CSI param parsing
2017-01-29Update to serde 0.9 and serde-yaml 0.6.Joe Wilm
2017-01-26Optimize glyph cache accessJoe Wilm
Loading a glyph from the cache is a very hot operation in the renderer. The original implementation would first check if a glyph was loaded and then call `get()` which would have to search a second time. This showed up as a very slow point in profiles. This patch addresses glyph cache access in two ways: by using a faster hasher optimized for small keys (fnv), and by using the entry API for fetching a cached glyph. The `fnv` hasher is faster than the default and is very efficient for small keys. Using the entry API on the HashMap means only 1 lookup instead of two. The entry API has a downside where the key needs to get cloned on fetches. Reducing the GlyphKey width to 64-bits helps in both areas. Copying an 8-byte wide type is very cheap and thus limits downside of the entry API. The small width also helps with the hasher performance. Over all, this patch reduced typical render times by several hundred microseconds on a 2013 MacBook Pro with a full screen terminal full of text.
2017-01-24Use clap as cli parser.Kurnevsky Evgeny
2017-01-23Use the log-crate instead of printing to stdoutLukas Lueg
2017-01-23Capture test output by defaultJoe Wilm
The `rustc-test` crate has this feature disabled by default causing all of the test `println!` output to be displayed.
2017-01-23Dynamically generate test harnessSteven Fackler
This uses the rustc-test crate, a copy of the standard test crate, to dynamically create tests for each reference test. No need to remember to update the macro, just add the directory to ref!
2017-01-11Add support for setting title from OSCJoe Wilm
Resolves #23 Resolves #144
2017-01-07Enabled Rustc' Link Time Optimizationcody
2017-01-06Add `nightly` feature, use for `unlikely` intrinsicManish Goregaokar
2017-01-06Replace need for drop_types_in_const with lazy_staticManish Goregaokar
2017-01-02Real support for placing config in XDG_CONFIG_HOMEJoe Wilm
Resolves #35.
2016-12-16Rustup and clippyJoe Wilm
All of the changes in this commit are due to clippy lints.
2016-11-19Fix glutin waylandJoe Wilm
2016-11-19Add a number of simple ref-testsJoe Wilm
Also adds a feature `err-println` for enabling `err_println!` printing.
2016-11-19Add support for recording/running ref testsJoe Wilm
Ref tests use a recording of the terminal protocol and a serialization of the grid state to check that the parsing and action handling systems produce the correct result. Ref tests may be recorded by running alacritty with `--ref-test` and closing the terminal by using the window "X" button. At that point, the recording is fully written to disk, and a serialization of important state is recorded. Those files should be moved to an appropriate folder in the `tests/ref/` tree, and the `ref_test!` macro invocation should be updated accordingly. A couple of changes were necessary to make this work: * Ref tests shouldn't create a pty; the pty was refactored out of the `Term` type. * Repeatable lines/cols were needed; on startup, the terminal is resized * by default to 80x24 though that may be changed by passing `--dimensions w h`. * Calculating window size based on desired rows/columns and font metrics required making load_font callable multiple times. * Refactor types into library crate so they may be imported in an integration test. * A whole bunch of types needed symmetric serialization and deserialization. Mostly this was just adding derives, but the custom deserialization of Rgb had to change to a deserialize_with function. This initially adds one ref test as a sanity check, and more will be added in subsequent commits. This initial ref tests just starts the terminal and runs `ll`.
2016-11-17Fallback to received chars when no bindingsJoe Wilm
Committed this on a plane with no internet; need to get a real glutin ref pushed somewhere and update this commit before merging into master.
2016-10-27Live shader reloading is now a featureJoe Wilm
Which means it can be disabled in release builds. No more working on a renderer feature and actually breaking the Alacritty your editor is running inside.
2016-10-14Rustup and update dependenciesJoe Wilm
Now uses serde_dervive \o/
2016-10-14Fix X11 WaitEventsIterator Busy LoopJoe Wilm
Resolves #10.
2016-10-08Start implementing copypasta, a clipboard libraryJoe Wilm
Currently it only supports x11 via the xclip program, and that only supports reading the clipboard contents.
2016-09-26wipJoe Wilm
doesn't work on ubuntu 16.04 for some reason
2016-09-24Use evented I/O for the ptyJoe Wilm
This was largely an experiment to see whether writing and reading from a separate thread was causing terminal state corruption as described in https://github.com/jwilm/alacritty/issues/9. Although this doesn't seem to fix that particular issue. Keeping this because it generally seems more correct than reading/writing from separate locations.
2016-09-23Fix some compiler warningsJoe Wilm
Also enables debug symbols in release profile by default. Until Alacritty ships, there's going to be lots of perf analysis which needs debug symbols. The PriorityMutex low priority method was never used. Now it's just a fair mutex.
2016-09-19Update VTE for OSC string fixJoe Wilm
2016-09-18Rewrite ansi parser using vte crateJoe Wilm
Using the vte crate allows removal of the ansi parser state machine and enables us to just be concerned with actions described in the protocol. In addition to making alacritty simpler, this also improves correctness and performance.
2016-08-31Eliminate extra rendersJoe Wilm
Currently has a bug where screen is blank at startup. That aside, Alacritty uses basically 0 CPU now. The input thread is still separate from the render thread, but, given the ability to wake the event loop, it may be possible to merge them again. I'm not sure if that's actually desirable. Performance is seemingly unchanged.