Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
|
|
This commit implements the following syntax in the config file:
```yaml
shell:
program: /bin/bash
args:
- --login
- --norc
```
|
|
|
|
|
|
The logging macros should be used instead.
|
|
Logging initialization now shares the same error handling code as the
rest of the `run` function.
|
|
|
|
The logger implementation will now only show items from Alacritty.
Additionally, the module info is omitted from the log output. If the
origin of a log item must be found, it can easily be grepped for.
|
|
|
|
The `rustc-test` crate has this feature disabled by default causing all
of the test `println!` output to be displayed.
|
|
This doesn't pass, and was mistakenly never actually enabled in the old
ref.rs macro.
|
|
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!
|
|
Implement the designation of graphic character sets G0-G3 to ASCII or the
Special character and line drawing glyphs. As well as the invokation/selection
of the character sets (shift in, shift out and lock shifting).
|
|
Mention talk at Rust Meetup in README.md
|
|
|
|
|
|
Pinning should no longer be necessary.
|
|
Proc_macro has been stable since 1.15.0, attribute no longer needed.
|
|
|
|
|
|
The wrapper had some transmutes still from an earlier implementation,
and they are not needed now.
|
|
as per https://github.com/jwilm/alacritty/issues/39
|
|
Makes thin stroke rendering for darwin configurable by a new toplevel
key under `font:` in the config file. Defaults to false, has no impact
on non macos.
|
|
Adding test for line wrap.
|
|
This test ensures we can enable and disable line wrap.
|
|
These changes provide support for disabling auto line wrap which is
currently default to on.
'tput rman' will now disable auto line wrap and alacritty will now not
automatically wrap lines.
'tput sman' will now (re)enable auto line wrap and alacritty will now
automatically wrap lines once it reaches the end of the line.
My testing showed this to work the same as gnome-terminal.
I should note that simply having ^[[7h or ^[[7l in a recording does not
enable and disable line wrapping. This is the same behavior as
gnome-terminal and xterm. Those cape codes come through as private
which are not handled yet. I behave this is the correct behavior.
|
|
One symptom of this bug was being unable to send C-c during `cat
/dev/urandom`.
cc #271
|
|
Resolves #23
Resolves #144
|
|
`cmake` is required everywhere in order to build `expat-sys`
|
|
Fixing panic on cat /dev/urandom
|
|
|
|
- Checks to make sure lines count coming from the pty are within a proper
range before doing scrolling.
- Sanitizes scroll region when being set.
- Changes panic for unimplemented screen clear to a print statement.
The first two changes ensure scrolling won't crash us. By sanitizing the
region on set we don't have to complicate the scroll code with limits,
mins, or maxes to ensure the scroll operation is within the range.
Checking if the lines is greater than the total region allows us to
simply clear the region and avoid subtracting large numbers from small
ones.
|
|
Update README.md
|
|
- Added note about the default file created if no path is found
|
|
- Update README to reflect changes
|
|
- Use $XDG_CONFIG_HOME/alacritty/alacritty.yml for loading the
configuration file falling back to $HOME/.config/alacritty/alacritty.yml
- Closes #203
|
|
Tiny grammar fix.
|
|
print glutin events if --print-events is passed
|
|
|
|
cc #116
|
|
When debugging many issues, it's often very helpful to have the raw
glutin events printed out to stderr as they come in. This does that.
Note that since `glutin::Event` doesn't implement `Display`, we just use
rust's debugging output for now via `{:?}`.
|
|
Better bounds checking.
|
|
Enabled Rustc's Link Time Optimization
|
|
|
|
- Rename wrap to input_needs_wrap and providing documentation.
- Standardize on min.
- Optimization on subtracting col.
|
|
Fixing resize crashes.
|
|
Most of the crashes on resize were due to columns and lines being set to
zero. This causes all sorts of other checks within the code to ensure
these values are greater than zero before running calculations. To avoid
this we just need to ensure that lines and columns are some non zero
value. This is seems to be what gnome terminal does. I have selected
2 lines and two columns for min terminal size for now.
|