PureVPN 歷史版本列表 Page2

最新版本 PureVPN 13.2.0.2

PureVPN 歷史版本列表

PureVPN 是提供最安全和最快的 VPN 服務的 VPN 服務提供商。它使用 256 位加密的安全 VPN 服務器保護您的在線狀態。 PureVPN 的 Windows 應用程序為您提供安全功能,以保護您的身份,數據和在線自由。 PureVPN 的 Windows 應用程序不僅速度快,而且使用起來也非常簡單。您可以選擇您選擇的協議,也可以信任 PureVPN 的選擇。在 141 個國家的服務器... PureVPN 軟體介紹


PureVPN 10.0.0.2 查看版本資訊

更新時間:2022-11-04
更新細節:

What's new in this version:

PureVPN 10.0.0.2
- Change log not available for this version


PureVPN 9.10.0.3
- Change log not available for this version


PureVPN 9.8.1.0
- Change log not available for this version


PureVPN 9.8.0.8
Improved:
- Just like usual, we’ve made some bug fixes to ensure a smooth PureVPN experience for you at all times


PureVPN 9.8.0.8
- Change log not available for this version


PureVPN 9.7.1.1
- Change log not available for this version


PureVPN 9.6.0.0
- Change log not available for this version


PureVPN 9.5.0.4
- Change log not available for this version


PureVPN 9.2.1.4
- Change log not available for this version


PureVPN 9.1.0.16
- Change log not available for this version


PureVPN 9.1.0.14
- Removed in-app browser
- Added some mixpanel properties


PureVPN 9.1.0.11
- Change log not available for this version


PureVPN 9.0.0.12
- Change log not available for this version


PureVPN 9.0.0.11
- Change log not available for this version


PureVPN 9.0.0.2
- Change log not available for this version


PureVPN 8.3.0.3
- Change log not available for this version


PureVPN 8.2.0.0
- Change log not available for this version


PureVPN 8.0.4.2
- Change log not available for this version


PureVPN 8.0.3.3
- Change log not available for this version


PureVPN 8.0.3.2
- Change log not available for this version


PureVPN 8.0.2.2
- Change log not available for this version


PureVPN 8.0.2
- Change log not available for this version


PureVPN 7.1.3
- Change log not available for this version


PureVPN 7.1.2
- You don't have to remember difficult usernames like purevpn0s, purevpn0d, etc. anymore! Simply use your email address & password to login to PureVPN apps and extensions


PureVPN 7.1.1
- One-Click Browser Extensions Installation
- Revamped Split Tunneling
- UI Improvements Over Login Screen
- Bug fixes


PureVPN 7.1.0
- Change log not available for this version


PureVPN 7.0.6
- 'Split Tunneling' feature has been improved


PureVPN 7.0.5
- Change log not available for this version


PureVPN 7.0.4
- Change log not available for this version


PureVPN 7.0.3
- Antivirus Protection
- New and Improved Support Mechanism
- Ad Blocker
- IDS/IPS
- Multiple VPN Protocols
- URL Filter
- App Filter


PureVPN 7.0.2
- Change log not available for this version


PureVPN 7.0.1
- Change log not available for this version


PureVPN 7.0.0
- Change log not available for this version


PureVPN 6.3.0
- Change log not available for this version


PureVPN 6.2.4
- Change log not available for this version


PureVPN 6.2.2
- Change log not available for this version

Rust 1.65.0 查看版本資訊

更新時間:2022-11-04
更新細節:

What's new in this version:

Rust 1.65.0
Language:
- Error on as casts of enums with #[non_exhaustive] variants
- Stabilize let else
- Stabilize generic associated types (GATs)
- Add lints let_underscore_drop and let_underscore_lock from Clippy
- Stabilize breaking from arbitrary labeled blocks ("label-break-value")
- Uninitialized integers, floats, and raw pointers are now considered immediate UB. Usage of MaybeUninit is the correct way to work with uninitialized memory.
- Stabilize raw-dylib for Windows x86_64, aarch64, and thumbv7a
- Do not allow Drop impl on foreign ADTs

Compiler:
- Stabilize -Csplit-debuginfo on Linux
- Use niche-filling optimization even when multiple variants have data
- Associated type projections are now verified to be well-formed prior to resolving the underlying type
- Stringify non-shorthand visibility correctly
- Normalize struct field types when unsizing
- Update to LLVM 15
- Fix aarch64 call abi to correctly zeroext when needed
- debuginfo: Generalize C++-like encoding for enums
- Add special_module_name lint
- Add support for generating unique profraw files by default when using -C instrument-coverage
- Allow dynamic linking for iOS/tvOS targets

New targets:
- Add armv4t-none-eabi as a tier 3 target
- Add powerpc64-unknown-openbsd and riscv64-unknown-openbsd as tier 3 targets
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- Don't generate PartialEq::ne in derive(PartialEq)
- Windows RNG: Use BCRYPT_RNG_ALG_HANDLE by default
- Forbid mixing System with direct system allocator calls
- Document no support for writing to non-blocking stdio/stderr
- std::layout::Layout size must not overflow isize::MAX when rounded up to align This also changes the safety conditions on Layout::from_size_align_unchecked.

Stabilized APIs:
- std::backtrace::Backtrace
- Bound::as_ref
- std::io::read_to_string
- ::cast_mut
- ::cast_const

These APIs are now stable in const contexts:
- ::offset_from
- ::offset_from

Cargo:
- Apply GitHub fast path even for partial hashes
- Do not add home bin path to PATH if it's already there
- Take priority into account within the pending queue. This slightly optimizes job scheduling by Cargo, with typically small improvements on larger crate graph builds.

Compatibility Notes:
- std::layout::Layout size must not overflow isize::MAX when rounded up to align. This also changes the safety conditions on Layout::from_size_align_unchecked.
- PollFn now only implements Unpin if the closure is Unpin. This is a possible breaking change if users were relying on the blanket unpin implementation. See discussion on the PR for details of why this change was made.
- Drop ExactSizeIterator impl from std::char::EscapeAscii This is a backwards-incompatible change to the standard library's surface area, but is unlikely to affect real world usage.
- Do not consider a single repeated lifetime eligible for elision in the return type This behavior was unintentionally changed in 1.64.0, and this release reverts that change by making this an error again.
- Reenable disabled early syntax gates as future-incompatibility lints
- Update the minimum external LLVM to 13
- Don't duplicate file descriptors into stdio fds
- Sunset RLS
- Deny usage of #![cfg_attr(..., crate_type = ...)] to set the crate type This strengthens the forward compatibility lint deprecated_cfg_attr_crate_type_name to deny.
- llvm-has-rust-patches allows setting the build system to treat the LLVM as having Rust-specific patches This option may need to be set for distributions that are building Rust with a patched LLVM via llvm-config, not the built-in LLVM.
- Combining three or more languages (e.g. Objective C, C++ and Rust) into one binary may hit linker limitations when using lld. For more information, see issue 102754.

Internal Changes:
- These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.
- Add x.sh and x.ps1 shell scripts
- compiletest: use target cfg instead of hard-coded tables
- Use object instead of LLVM for reading bitcode from rlibs
- Enable MIR inlining for optimized compilations This provides a 3-10% improvement in compiletimes for real world crates. See perf results.


Rust 1.63.0
Language:
- Remove migrate borrowck mode for pre-NLL errors
- Modify MIR building to drop repeat expressions with length zero
- Remove label/lifetime shadowing warnings
- Allow explicit generic arguments in the presence of impl Trait args
- Make cenum_impl_drop_cast warnings deny-by-default
- Prevent unwinding when -C panic=abort is used regardless of declared ABI
- Lub: don't bail out due to empty binders

Compiler:
- Stabilize the bundle native library modifier, also removing the deprecated static-nobundle linking kind
- Add Apple WatchOS compile targets*
- Add a Windows application manifest to rustc-main
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- Implement Copy, Clone, PartialEq and Eq for core::fmt::Alignment
- Extend ptr::null and null_mut to all thin (including extern) types
- Impl Read and Write for VecDeque
- STD support for the Nintendo 3DS
- Make write/print macros eagerly drop temporaries
- Implement internal traits that enable [OsStr]::join
- Implement Hash for core::alloc::Layout
- Add capacity documentation for OsString
- Put a bound on collection misbehavior
- Make std::mem::needs_drop accept ?Sized
- Impl Termination for Infallible and then make the Result impls of Termination more generic
- Document Rust's stance on /proc/self/mem

Stabilized APIs:
- Array::from_fn
- Box::into_pin
- BinaryHeap::try_reserve
- BinaryHeap::try_reserve_exact
- OsString::try_reserve
- OsString::try_reserve_exact
- PathBuf::try_reserve
- PathBuf::try_reserve_exact
- Path::try_exists
- Ref::filter_map
- RefMut::filter_map
- NonNull::<[T]>::len
- ToOwned::clone_into
- Ipv6Addr::to_ipv4_mapped
- Unix::io::AsFd
- Unix::io::BorrowedFd<'fd>
- Unix::io::OwnedFd
- Windows::io::AsHandle
- Windows::io::BorrowedHandle<'handle>
- Windows::io::OwnedHandle
- Windows::io::HandleOrInvalid
- Windows::io::HandleOrNull
- Windows::io::InvalidHandleError
- Windows::io::NullHandleError
- Windows::io::AsSocket
- Windows::io::BorrowedSocket<'handle>
- Windows::io::OwnedSocket
- Thread::scope
- Thread::Scope
- Thread::ScopedJoinHandle

These APIs are now usable in const contexts:
- Array::from_ref
- Slice::from_ref
- Intrinsics::copy
- Intrinsics::copy_nonoverlapping
- <*const T>::copy_to
- <*const T>::copy_to_nonoverlapping
- <*mut T>::copy_to
- <*mut T>::copy_to_nonoverlapping
- <*mut T>::copy_from
- <*mut T>::copy_from_nonoverlapping
- Str::from_utf8
- Utf8Error::error_len
- Utf8Error::valid_up_to
- Condvar::new
- Mutex::new
- RwLock::new

Cargo:
- Stabilize the --config path command-line argument
- Expose rust-version in the environment as CARGO_PKG_RUST_VERSION


Rust 1.62.0
Language:
- Stabilize #[derive(Default)] on enums with a #[default] variant
- Stop validating some checks in dead code after functions with uninhabited return types
- Fix constants not getting dropped if part of a diverging expression
- Support unit struct/enum variant in destructuring assignment
- Remove mutable_borrow_reservation_conflict lint and allow the code pattern

Compiler:
- linker: Stop using whole-archive on dependencies of dylibs
- Make unaligned_references lint deny-by-default This lint is also a future compatibility lint, and is expected to eventually become a hard error.
- Only add codegen backend to dep info if -Zbinary-dep-depinfo is used
- Reject #[thread_local] attribute on non-static items
- Add tier 3 aarch64-pc-windows-gnullvm and x86_64-pc-windows-gnullvm targets*
- Implement a lint to warn about unused macro rules
- Promote x86_64-unknown-none target to Tier 2*

Libraries:
- Windows: Use a pipe relay for chaining pipes
- Replace Linux Mutex and Condvar with futex based ones
- Replace RwLock by a futex based one on Linux
- std: directly use pthread in UNIX parker implementation

Stabilized APIs:
- bool::then_some
- f32::total_cmp
- f64::total_cmp
- Stdin::lines
- windows::CommandExt::raw_arg
- impl Default for AssertUnwindSafe
- From for Rc<[u8]>
- From for Arc<[u8]>
- FusedIterator for EncodeWide
- RDM intrinsics on aarch64

Clippy:
- Create clippy lint against unexpectedly late drop for temporaries in match scrutinee expressions

Cargo:
- Added the cargo add command for adding dependencies to Cargo.toml from the command-line. docs
- Package ID specs now support [email protected] syntax in addition to the previous name:version to align with the behavior in cargo add and other tools. cargo install and cargo yank also now support this syntax so the version does not need to passed as a separate flag.
- The git and registry directories in Cargo's home directory (usually ~/.cargo) are now marked as cache directories so that they are not included in backups or content indexing (on Windows).
- Added automatic @ argfile support, which will use "response files" if the command-line to rustc exceeds the operating system's limit.

Compatibility Notes:
- cargo test now passes --target to rustdoc if the specified target is the same as the host target
- rustdoc: Remove .woff font files
- Enforce Copy bounds for repeat elements while considering lifetimes

Internal Changes:
- Unify ReentrantMutex implementations across all platforms


Rust 1.61.0
- Custom exit codes from main
- More capabilities for const fn
- Static handles for locked stdio
- Stabilized APIs
- Other changes


Rust 1.58.1
- The non_send_fields_in_send_ty Clippy lint was discovered to have too many false positives and has been moved to the experimental lints group (called "nursery")
- The useless_format Clippy lint has been updated to handle captured identifiers in format strings, introduced in Rust 1.58.0
- A regression in Rustfmt preventing generated files from being formatted when passed through the standard input has been fixed
- An incorrect error message displayed by rustc in some cases has been fixed


Rust 1.58.0
Language:
- Format strings can now capture arguments simply by writing {ident} in the string. This works in all macros accepting format strings. Support for this in panic! (panic!("{ident}")) requires the 2021 edition; panic invocations in previous editions that appear to be trying to use this will result in a warning lint about not having the intended effect.
- const T pointers can now be dereferenced in const contexts
- The rules for when a generic struct implements Unsize have been relaxed

Compiler:
- Add LLVM CFI support to the Rust compiler
- Stabilize -Z strip as -C strip. Note that while release builds already don't add debug symbols for the code you compile, the compiled standard library that ships with Rust includes debug symbols, so you may want to use the strip option to remove these symbols to produce smaller release binaries. Note that this release only includes support in rustc, not directly in cargo.
- Add support for LLVM coverage mapping format versions 5 and 6
- Emit LLVM optimization remarks when enabled with -Cremark
- Update the minimum external LLVM to 12
- Add x86_64-unknown-none at Tier 3*
- Build musl dist artifacts with debuginfo enabled. When building release binaries using musl, you may want to use the newly stabilized strip option to remove these debug symbols, reducing the size of your binaries.
- Don't abort compilation after giving a lint error
- Error messages point at the source of trait bound obligations in more places
- Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries:
- All remaining functions in the standard library have #[must_use] annotations where appropriate, producing a warning when ignoring their return value. This helps catch mistakes such as expecting a function to mutate a value in place rather than return a new value.
- Paths are automatically canonicalized on Windows for operations that support it
- Re-enable debug checks for copy and copy_nonoverlapping
- Implement RefUnwindSafe for Rc
- Make RSplit<T, P>: Clone not require T: Clone
- Implement Termination for Result<Infallible, E>. This allows writing fn main() -> Result<Infallible, ErrorType>, for a program whose successful exits never involve returning from main (for instance, a program that calls exit, or that uses exec to run another program).

Stabilized APIs:
- Metadata::is_symlink
- Path::is_symlink
- {integer}::saturating_div
- Option::unwrap_unchecked
- Result::unwrap_unchecked
- Result::unwrap_err_unchecked
- NonZero{unsigned}::is_power_of_two
- File::options
- These APIs are now usable in const contexts:
- Duration::new
- Duration::checked_add
- Duration::saturating_add
- Duration::checked_sub
- Duration::saturating_sub
- Duration::checked_mul
- Duration::saturating_mul
- Duration::checked_div
- MaybeUninit::as_ptr
- MaybeUninit::as_mut_ptr
- MaybeUninit::assume_init
- MaybeUninit::assume_init_ref

Cargo:
- Add --message-format for install command
- Warn when alias shadows external subcommand

Rustdoc:
- Show all Deref implementations recursively in rustdoc
- Use computed visibility in rustdoc

Compatibility Notes:
- Try all stable method candidates first before trying unstable ones. This change ensures that adding new nightly-only methods to the Rust standard library will not break code invoking methods of the same name from traits outside the standard library.
- Windows: std::process::Command will no longer search the current directory for executables.
- All proc-macro backward-compatibility lints are now deny-by-default.
- proc_macro: Append .0 to unsuffixed float if it would otherwise become int token
- Refactor weak symbols in std::sys::unix. This optimizes accesses to glibc functions, by avoiding the use of dlopen. This does not increase the minimum expected version of glibc. However, software distributions that use symbol versions to detect library dependencies, and which take weak symbols into account in that analysis, may detect rust binaries as requiring newer versions of glibc.
- rustdoc now rejects some unexpected semicolons in doctests

Internal Changes:
- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.
- Implement coherence checks for negative trait impls
- Add rustc lint, warning when iterating over hashmaps
- Optimize live point computation
- Enable verification for 1/32nd of queries loaded from disk
- Implement version of normalize_erasing_regions that allows for normalization failure


Rust 1.57.0
Language:
- Macro attributes may follow #[derive] and will see the original (pre-cfg) input
- Accept curly-brace macros in expressions, like m!{ .. }.method() and m!{ .. }?
- Allow panicking in constant evaluation

Compiler:
- Create more accurate debuginfo for vtables
- Add armv6k-nintendo-3ds at Tier 3*
- Add armv7-unknown-linux-uclibceabihf at Tier 3*
- Add m68k-unknown-linux-gnu at Tier 3*
- Add SOLID targets at Tier 3*: aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi, armv7a-kmc-solid_asp3-eabihf
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- Avoid allocations and copying in Vec::leak
- Add #[repr(i8)] to Ordering
- Optimize File::read_to_end and read_to_string
- Update to Unicode 14.0
- Many more functions are marked #[must_use], producing a warning when ignoring their return value. This helps catch mistakes such as expecting a function to mutate a value in place rather than return a new value.

Stabilised APIs:
- [T; N]::as_mut_slice
- [T; N]::as_slice
- collections::TryReserveError
- HashMap::try_reserve
- HashSet::try_reserve
- String::try_reserve
- String::try_reserve_exact
- Vec::try_reserve
- Vec::try_reserve_exact
- VecDeque::try_reserve
- VecDeque::try_reserve_exact
- Iterator::map_while
- iter::MapWhile
- proc_macro::is_available
- Command::get_program
- Command::get_args
- Command::get_envs
- Command::get_current_dir
- CommandArgs
- CommandEnvs
- These APIs are now usable in const contexts:
- hint::unreachable_unchecked

Cargo:
- Stabilize custom profiles
- Compatibility notes

Internal changes:
- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools
- Added an experimental backend for codegen with libgccjit


Rust 1.55.0
Language:
- You can now write open "from" range patterns (X..), which will start at X and will end at the maximum value of the integer
- You can now explicitly import the prelude of different editions through std::prelude (e.g. use std::prelude::rust_2021::*;).

Compiler:
- Added tier 3* support for powerpc64le-unknown-freebsd
- * Refer to Rust's platform support page for more information on Rust's tiered platform support
- Libraries
- Updated std's float parsing to use the Eisel-Lemire algorithm. These improvements should in general provide faster string parsing of floats, no longer reject certain valid floating point values, and reduce the produced code size for non-stripped artifacts.
- string::Drain now implements AsRef and AsRef<[u8]>.

Stabilised APIs:
- Bound::cloned
- Drain::as_str
- IntoInnerError::into_error
- IntoInnerError::into_parts
- MaybeUninit::assume_init_mut
- MaybeUninit::assume_init_ref
- MaybeUninit::write
- array::map
- ops::ControlFlow
- x86::_bittest
- x86::_bittestandcomplement
- x86::_bittestandreset
- x86::_bittestandset
- x86_64::_bittest64
- x86_64::_bittestandcomplement64
- x86_64::_bittestandreset64
- x86_64::_bittestandset64

Cargo:
- Cargo will now deduplicate compiler diagnostics to the terminal when invoking rustc in parallel such as when using cargo test
- The package definition in cargo metadata now includes the "default_run" field from the manifest
- Added cargo d as an alias for cargo doc
- Added {lib} as formatting option for cargo tree to print the "lib_name" of packages

Rustdoc:
- Added "Go to item on exact match" search option
- The "Implementors" section on traits no longer shows redundant method definitions
- Trait implementations are toggled open by default. This should make the implementations more searchable by tools like CTRL+F in your browser.
- Intra-doc links should now correctly resolve associated items (e.g. methods) through type aliases
- Traits which are marked with #[doc(hidden)] will no longer appear in the "Trait Implementations" section


Rust 1.54.0
Language:
- You can now use macros for values in built-in attribute macros. While a seemingly minor addition on its own, this enables a lot of powerful functionality when combined correctly. Most notably you can now include external documentation in your crate by writing the following.
- #![doc = include_str!("README.md")]

You can also use this to include auto-generated modules:
- #[path = concat!(env!("OUT_DIR"), "/generated.rs")] mod generated
- You can now cast between unsized slice types (and types which contain unsized slices) in const fn
- You can now use multiple generic lifetimes with impl Trait where the lifetimes don't explicitly outlive another. In code this means that you can now have impl Trait<'a, 'b> where as before you could only have impl Trait<'a, 'b> where 'b: 'a.

Compiler:
- Rustc will now search for custom JSON targets in /lib/rustlib//target.json where / is the "sysroot" directory. You can find your sysroot directory by running rustc --print sysroot.
- Added wasm as a target_family for WebAssembly platforms
- You can now use #[target_feature] on safe functions when targeting WebAssembly platforms
- Improved debugger output for enums on Windows MSVC platforms
- Added tier 3* support for bpfel-unknown-none and bpfeb-unknown-none
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- Panic::panic_any will now #[track_caller]
- Added OutOfMemory as a variant of io::ErrorKind
- Proc_macro::Literal now implements FromStr
- The implementations of vendor intrinsics in core::arch have been significantly refactored. The main user-visible changes are a 50% reduction in the size of libcore.rlib and stricter validation of constant operands passed to intrinsics. The latter is technically a breaking change, but allows Rust to more closely match the C vendor intrinsics API.
- Stabilized APIs:
- BTreeMap::into_keys
- BTreeMap::into_values
- HashMap::into_keys
- HashMap::into_values
- Arch::wasm32
- VecDeque::binary_search
- VecDeque::binary_search_by
- VecDeque::binary_search_by_key
- VecDeque::partition_point

Cargo:
- Added the --prune option to cargo-tree to remove a package from the dependency graph
- Added the --depth option to cargo-tree to print only to a certain depth in the tree
- Added the no-proc-macro value to cargo-tree --edges to hide procedural macro dependencies
- A new environment variable named CARGO_TARGET_TMPDIR is available. This variable points to a directory that integration tests and benches can use as a "scratchpad" for testing filesystem operations.

Compatibility Notes:
- Mixing Option and Result via ? is no longer permitted in closures for inferred types
- Previously unsound code is no longer permitted where different constructors in branches could require different lifetimes
- As previously mentioned the std::arch instrinsics now uses stricter const checking than before and may reject some previously accepted code
- I128 multiplication on Cortex M0+ platforms currently unconditionally causes overflow when compiled with codegen-units = 1


Rust 1.53.0
Language:
- You can now use unicode for identifiers. This allows multilingual identifiers but still doesn't allow glyphs that are not considered characters such as ◆ or ????. More specifically you can now use any identifier that matches the UAX #31 "Unicode Identifier and Pattern Syntax" standard. This is the same standard as languages like Python, however Rust uses NFC normalization which may be different from other languages.
- You can now specify "or patterns" inside pattern matches. Previously you could only use | (OR) on complete patterns. E.g.
- Added the :pat_param macro_rules! matcher. This matcher has the same semantics as the :pat matcher. This is to allow :pat to change semantics to being a pattern fragment in a future edition.

Compiler:
- Updated the minimum external LLVM version to LLVM 10
- Added Tier 3* support for the wasm64-unknown-unknown target
- Improved debuginfo for closures and async functions on Windows MSVC

Libraries:
- Abort messages will now forward to android_set_abort_message on Android platforms when available
- slice::IterMut<'_, T> now implements AsRef<[T]>
- Arrays of any length now implement IntoIterator. Currently calling .into_iter() as a method on an array will return impl Iterator<Item=&T>, but this may change in a future edition to change Item to T. Calling IntoIterator::into_iter directly on arrays will provide impl Iterator<Item=T> as expected.
- leading_zeros, and trailing_zeros are now available on all NonZero integer types.
- {f32, f64}::from_str now parse and print special values (NaN, -0) according to IEEE RFC 754.
- You can now index into slices using (Bound, Bound)
- Add the BITS associated constant to all numeric types


Rust 1.52.1
- Change log not available for this version


Rust 1.52.0
Language:
- Added the unsafe_op_in_unsafe_fn lint, which checks whether the unsafe code in an unsafe fn is wrapped in a unsafe block. This lint is allowed by default, and may become a warning or hard error in a future edition.
- You can now cast mutable references to arrays to a pointer of the same type as the element

Compiler:
- Upgraded the default LLVM to LLVM 12

Added tier 3* support for the following targets:
- s390x-unknown-linux-musl
- riscv32gc-unknown-linux-musl & riscv64gc-unknown-linux-musl
- powerpc-unknown-openbsd
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- OsString now implements Extend and FromIterator
- cmp::Reverse now has #[repr(transparent)] representation
- Arc now implements error::Error
- All integer division and remainder operations are now const

Stabilised APIs:
- Arguments::as_str
- char::MAX
- char::REPLACEMENT_CHARACTER
- char::UNICODE_VERSION
- char::decode_utf16
- char::from_digit
- char::from_u32_unchecked
- char::from_u32
- slice::partition_point
- str::rsplit_once
- str::split_once
- The following previously stable APIs are now const.:
- char::len_utf8
- char::len_utf16
- char::to_ascii_uppercase
- char::to_ascii_lowercase
- char::eq_ignore_ascii_case
- u8::to_ascii_uppercase
- u8::to_ascii_lowercase
- u8::eq_ignore_ascii_case

Rustdoc:
- Rustdoc lints are now treated as a tool lint, meaning that lints are now prefixed with rustdoc:: (e.g. #[warn(rustdoc::non_autolinks)]). Using the old style is still allowed, and will become a warning in a future release.
- Rustdoc now supports argument files
- Rustdoc now generates smart punctuation for documentation
- You can now use "task lists" in Rustdoc Markdown

Misc:
- You can now pass multiple filters to tests. E.g. cargo test -- foo bar will run all tests that match foo and bar
- Rustup now distributes PDB symbols for the std library on Windows, allowing you to see std symbols when debugging

Internal Only:
- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools
- Check the result cache before the DepGraph when ensuring queries
- Try fast_reject::simplify_type in coherence before doing full check
- Only store a LocalDefId in some HIR nodes
- Store HIR attributes in a side table

Compatibility Notes:
- Cargo build scripts are now forbidden from setting RUSTC_BOOTSTRAP
- Removed support for the x86_64-rumprun-netbsd target
- Deprecated the x86_64-sun-solaris target in favor of x86_64-pc-solaris
- Rustdoc now only accepts ,, , and t as delimiters for specifying languages in code blocks
- Rustc now catches more cases of pub_use_of_private_extern_crate
- Changes in how proc macros handle whitespace may lead to panics when used with older proc-macro-hack versions. A cargo update should be sufficient to fix this in all cases.


Rust 1.51.0
Language:
- You can now parameterize items such as functions, traits, and structs by constant values in addition to by types and lifetimes. Also known as "const generics" E.g. you can now write the following. Note: Only values of primitive integers, bool, or char types are currently permitted.

Compiler:
- Added the -Csplit-debuginfo codegen option for macOS platforms. This option controls whether debug information is split across multiple files or packed into a single file. Note This option is unstable on other platforms.
- Added tier 3* support for aarch64_be-unknown-linux-gnu, aarch64-unknown-linux-gnu_ilp32, and aarch64_be-unknown-linux-gnu_ilp32 targets
- Added tier 3 support for i386-unknown-linux-gnu and i486-unknown-linux-gnu targets
- The target-cpu=native option will now detect individual features of CPUs
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- Box::downcast is now also implemented for any dyn Any + Send + Sync object
- str now implements AsMut
- u64 and u128 now implement From
- Error is now implemented for &T where T implements Error
- Poll::{map_ok, map_err} are now implemented for Poll
- unsigned_abs is now implemented for all signed integer types
- io::Empty now implements io::Seek
- rc::Weak and sync::Weak's methods such as as_ptr are now implemented for T: ?Sized types
- Stabilized APIs:
- Arc::decrement_strong_count
- Arc::increment_strong_count
- Once::call_once_force
- Peekable::next_if_eq
- Peekable::next_if
- Seek::stream_position
- array::IntoIter
- panic::panic_any
- ptr::addr_of!
- ptr::addr_of_mut!
- slice::fill_with
- slice::split_inclusive_mut
- slice::split_inclusive
- slice::strip_prefix
- slice::strip_suffix
- str::split_inclusive
- sync::OnceState
- task::Wake

Cargo:
- Added the split-debuginfo profile option to control the -Csplit-debuginfo codegen option
- Added the resolver field to Cargo.toml to enable the new feature resolver and CLI option behavior. Version 2 of the feature resolver will try to avoid unifying features of dependencies where that unification could be unwanted. Such as using the same dependency with a std feature in a build scripts and proc-macros, while using the no-std feature in the final binary. See the Cargo book documentation for more information on the feature.

Rustdoc:
- Rustdoc will now include documentation for methods available from nested Deref traits
- You can now provide a --default-theme flag which sets the default theme to use for documentation

Various improvements to intra-doc links:
- You can link to non-path primitives such as slice
- You can link to associated items
- You can now include generic parameters when linking to items, like Vec

Misc:
- You can now pass --include-ignored to tests (e.g. with cargo test -- --include-ignored) to include testing tests marked #[ignore]

Compatibility Notes:
- WASI platforms no longer use the wasm-bindgen ABI, and instead use the wasm32 ABI
- rustc no longer promotes division, modulo and indexing operations to const that could fail
- The minimum version of glibc for the following platforms has been bumped to version 2.31 for the distributed artifacts
- armv5te-unknown-linux-gnueabi
- sparc64-unknown-linux-gnu
- thumbv7neon-unknown-linux-gnueabihf
- armv7-unknown-linux-gnueabi
- x86_64-unknown-linux-gnux32

Internal Only:
- Consistently avoid constructing optimized MIR when not doing codegen


Rust 1.50.0
Language:
- You can now use const values for x in [x; N] array expressions. This has been technically possible since 1.38.0, as it was unintentionally stabilized
- Assignments to ManuallyDrop union fields are now considered safe

Compiler:
- Added tier 3* support for the armv5te-unknown-linux-uclibceabi target
- Added tier 3 support for the aarch64-apple-ios-macabi target
- The x86_64-unknown-freebsd is now built with the full toolset
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- proc_macro::Punct now implements PartialEq
- ops::{Index, IndexMut} are now implemented for fixed sized arrays of any length
- On Unix platforms, the std::fs::File type now has a "niche" of -1. This value cannot be a valid file descriptor, and now means Option takes up the same amount of space as File

Stabilized APIs:
- bool::then
- btree_map::Entry::or_insert_with_key
- f32::clamp
- f64::clamp
- hash_map::Entry::or_insert_with_key
- Ord::clamp
- RefCell::take
- slice::fill
- UnsafeCell::get_mut

The following previously stable methods are now const:
- IpAddr::is_ipv4
- IpAddr::is_ipv6
- Layout::size
- Layout::align
- Layout::from_size_align
- pow for all integer types
- checked_pow for all integer types
- saturating_pow for all integer types
- wrapping_pow for all integer types
- next_power_of_two for all unsigned integer types
- checked_power_of_two for all unsigned integer types

Cargo:
- Added the [build.rustc-workspace-wrapper] option. This option sets a wrapper to execute instead of rustc, for workspace members only
- cargo:rerun-if-changed will now, if provided a directory, scan the entire contents of that directory for changes
- Added the --workspace flag to the cargo update command

Misc:
- The search results tab and the help button are focusable with keyboard in rustdoc
- Running tests will now print the total time taken to execute

Compatibility Notes:
- The compare_and_swap method on atomics has been deprecated. It's recommended to use the compare_exchange and compare_exchange_weak methods instead
- Changes in how TokenStreams are checked have fixed some cases where you could write unhygenic macro_rules! macros
- #![test] as an inner attribute is now considered unstable like other inner macro attributes, and reports an error by default through the soft_unstable lint
- Overriding a forbid lint at the same level that it was set is now a hard error
- Dropped support for all cloudabi targets
- You can no longer intercept panic! calls by supplying your own macro. It's recommended to use the #[panic_handler] attribute to provide your own implementation
- Semi-colons after item statements (e.g. struct Foo {};) now produce a warning


Rust 1.49.0
Language:
- Unions can now implement Drop, and you can now have a field in a union with ManuallyDrop
- You can now cast uninhabited enums to integers
- You can now bind by reference and by move in patterns. This allows you to selectively borrow individual components of a type. E.g
- #[derive(Debug)]
- struct Person {
- name: String,
- age: u8,
- let person = Person {
- name: String::from("Alice"),
- age: 20,
- // `name` is moved out of person, but `age` is referenced
- let Person { name, ref age } = person;
- println!("{} {}", name, age);

Compiler:
- Added tier 1* support for aarch64-unknown-linux-gnu
- Added tier 2 support for aarch64-apple-darwin
- Added tier 2 support for aarch64-pc-windows-msvc
- Added tier 3 support for mipsel-unknown-none
- Raised the minimum supported LLVM version to LLVM 9
- Output from threads spawned in tests is now captured
- Change os and vendor values to "none" and "unknown" for some targets
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- RangeInclusive now checks for exhaustion when calling contains and indexing
- ToString::to_string now no longer shrinks the internal buffer in the default implementation
ops::{Index, IndexMut} are now implemented for fixed sized arrays of any length

Stabilized APIs:
- slice::select_nth_unstable
- slice::select_nth_unstable_by
- slice::select_nth_unstable_by_key
- The following previously stable methods are now const
- Poll::is_ready
- Poll::is_pending

Cargo:
- Building a crate with cargo-package should now be independently reproducible
- cargo-tree now marks proc-macro crates
- Added CARGO_PRIMARY_PACKAGE build-time environment variable. This variable will be set if the crate being built is one the user selected to build, either with -p or through defaults
- You can now use glob patterns when specifying packages & targets

Compatibility Notes:
- Demoted i686-unknown-freebsd from host tier 2 to target tier 2 support
- Macros that end with a semi-colon are now treated as statements even if they expand to nothing
- Rustc will now check for the validity of some built-in attributes on enum variants. Previously such invalid or unused attributes could be ignored
- Leading whitespace is stripped more uniformly in documentation comments, which may change behavior. You read this post about the changes for more details
- Trait bounds are no longer inferred for associated types

Internal Only:
- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools
- rustc's internal crates are now compiled using the initial-exec Thread Local Storage model
- Calculate visibilities once in resolve
- Added system to the llvm-libunwind bootstrap config option
- Added --color for configuring terminal color support to bootstrap


Rust 1.48.0
Language:
- The unsafe keyword is now syntactically permitted on modules. This is still rejected semantically, but can now be parsed by procedural macros

Compiler:
- Stabilised the -C link-self-contained=<yes|no> compiler flag. This tells rustc whether to link its own C runtime and libraries or to rely on a external linker to find them. (Supported only on windows-gnu, linux-musl, and wasi platforms.)
- You can now use -C target-feature=+crt-static on linux-gnu targets. Note: If you're using cargo you must explicitly pass the --target flag
- Added tier 2* support for aarch64-unknown-linux-musl
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- io::Write is now implemented for &ChildStdin &Sink, &Stdout, and &Stderr.
- All arrays of any length now implement TryFrom.
- The matches! macro now supports having a trailing comma.
- Vec now implements PartialEq<[B]> where A: PartialEq.
- The RefCell::{replace, replace_with, clone} methods now all use #[track_caller].
- Stabilized APIs:
- slice::as_ptr_range
- slice::as_mut_ptr_range
- VecDeque::make_contiguous
- future::pending
- future::ready
- The following previously stable methods are now const fn's:
- Option::is_some
- Option::is_none
- Option::as_ref
- Result::is_ok
- Result::is_err
- Result::as_ref
- Ordering::reverse
- Ordering::then

Rustdoc:
- You can now link to items in rustdoc using the intra-doc link syntax. E.g. /// Uses [`std::future`] will automatically generate a link to std::future's documentation. See "Linking to items by name" for more information
- You can now specify #[doc(alias = "")] on items to add search aliases when searching through rustdoc's UI

Compatibility Notes:
- Promotion of references to 'static lifetime inside const fn now follows the same rules as inside a fn body. In particular, &foo() will not be promoted to 'static lifetime any more inside const fns
- Associated type bindings on trait objects are now verified to meet the bounds declared on the trait when checking that they implement the trait
- When trait bounds on associated types or opaque types are ambiguous, the compiler no longer makes an arbitrary choice on which bound to use
- Fixed recursive nonterminals not being expanded in macros during pretty-print/reparse check. This may cause errors if your macro wasn't correctly handling recursive nonterminal tokens
- &mut references to non zero-sized types are no longer promoted
- rustc will now warn if you use attributes like #[link_name] or #[cold] in places where they have no effect
- Updated _mm256_extract_epi8 and _mm256_extract_epi16 signatures in arch::{x86, x86_64} to return i32 to match the vendor signatures
- mem::uninitialized will now panic if any inner types inside a struct or enum disallow zero-initialization
- #[target_feature] will now error if used in a place where it has no effect
- Foreign exceptions are now caught by catch_unwind and will cause an abort. Note: This behaviour is not guaranteed and is still considered undefined behaviour, see the catch_unwind documentation for further information

Internal Only:
- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools
- Building rustc from source now uses ninja by default over make. You can continue building with make by setting ninja=false in your config.toml
- cg_llvm: fewer_names in uncached_llvm_type
- Made ensure_sufficient_stack() non-generic


Rust 1.47.0
Language:
- Closures will now warn when not used

Compiler:
- Stabilized the -C control-flow-guard codegen option, which enables Control Flow Guard for Windows platforms, and is ignored on other platforms
- Upgraded to LLVM 11
- Added tier 3* support for the thumbv4t-none-eabi target
- Upgrade the FreeBSD toolchain to version 11.4
- RUST_BACKTRACE's output is now more compact
- * Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- CStr now implements Index
- Traits in std/core are now implemented for arrays of any length, not just those of length less than 33
- ops::RangeFull and ops::Range now implement Default
- panic::Location now implements Copy, Clone, Eq, Hash, Ord, PartialEq, and PartialOrd

Stabilized APIs:
- Ident::new_raw
- Range::is_empty
- RangeInclusive::is_empty
- Result::as_deref
- Result::as_deref_mut
- Vec::leak
- pointer::offset_from
- f32::TAU
- f64::TAU
- The following previously stable APIs have now been made const
- The new method for all NonZero integers
- The checked_add,checked_sub,checked_mul,checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub, and saturating_mul methods for all integers
- The checked_abs, saturating_abs, saturating_neg, and signum for all signed integers
- The is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace, and is_ascii_control methods for char and u8

Cargo:
- build-dependencies are now built with opt-level 0 by default. You can override this by setting the following in your Cargo.toml
- [profile.release.build-override]
- opt-level = 3
- cargo-help will now display man pages for commands rather just the --help text
- cargo-metadata now emits a test field indicating if a target has tests enabled
- workspace.default-members now respects workspace.exclude
- cargo-publish will now use an alternative registry by default if it's the only registry specified in package.publish

Misc:
- Added a help button beside Rustdoc's searchbar that explains rustdoc's type based search
- Added the Ayu theme to rustdoc

Compatibility Notes:
- Bumped the minimum supported Emscripten version to 1.39.20
- Fixed a regression parsing {} && false in tail expressions
- Added changes to how proc-macros are expanded in macro_rules! that should help to preserve more span information. These changes may cause compiliation errors if your macro was unhygenic or didn't correctly handle Delimiter::None
- Moved support for the CloudABI target to tier 3
- linux-gnu targets now require minimum kernel 2.6.32 and glibc 2.11
- Added the rustc-docs component. This allows you to install and read the documentation for the compiler internal APIs. (Currently only available for x86_64-unknown-linux-gnu.)

Internal Only:
- Improved default settings for bootstrapping in x.py. You can read details about this change in the "Changes to x.py defaults" post on the Inside Rust blog


Rust 1.46.0
Language:
- if, match, and loop expressions can now be used in const functions
- Additionally you are now also able to coerce and cast to slices (&[T]) in const functions
- The #[track_caller] attribute can now be added to functions to use the function's caller's location information for panic messages
- Recursively indexing into tuples no longer needs parentheses. E.g. x.0.0 over (x.0).0
- mem::transmute can now be used in static and constants. Note You currently can't use mem::transmute in constant functions

Compiler:
- You can now use the cdylib target on Apple iOS and tvOS platforms
- Enabled static "Position Independent Executables" by default for x86_64-unknown-linux-musl

Libraries:
- mem::forget is now a const fn
- String now implements From
- The leading_ones, and trailing_ones methods have been stabilised for all integer types
- vec::IntoIter now implements AsRef<[T]>
- All non-zero integer types (NonZeroU8) now implement TryFrom for their zero-able equivalent (e.g. TryFrom)
- &[T] and &mut [T] now implement PartialEq
- (String, u16) now implements ToSocketAddrs
- vec::Drain<'_, T> now implements AsRef<[T]>

Stabilized APIs:
- Option::zip
- vec::Drain::as_slice

Cargo
- Added a number of new environment variables that are now available when compiling your crate
- CARGO_BIN_NAME and CARGO_CRATE_NAME Providing the name of the specific binary being compiled and the name of the crate
- CARGO_PKG_LICENSE The license from the manifest of the package
- CARGO_PKG_LICENSE_FILE The path to the license file

Compatibility Notes:
- The target configuration option abi_blacklist has been renamed to unsupported_abis. The old name will still continue to work
- Rustc will now warn if you have a C-like enum that implements Drop. This was previously accepted but will become a hard error in a future release
- Rustc will fail to compile if you have a struct with #[repr(i128)] or #[repr(u128)]. This representation is currently only allowed on enums
- Tokens passed to macro_rules! are now always captured. This helps ensure that spans have the correct information, and may cause breakage if you were relying on receiving spans with dummy information
- The InnoSetup installer for Windows is no longer available. This was a legacy installer that was replaced by a MSI installer a few years ago but was still being built
- {f32, f64}::asinh now returns the correct values for negative numbers
- Rustc will no longer accept overlapping trait implementations that only differ in how the lifetime was bound
- Rustc now correctly relates the lifetime of an existential associated type. This fixes some edge cases where rustc would erroneously allow you to pass a shorter lifetime than expected
- Rustc now dynamically links to libz (also called zlib) on Linux. The library will need to be installed for rustc to work, even though we expect it to be already available on most systems
- Tests annotated with #[should_panic] are broken on ARMv7 while running under QEMU
- Pretty printing of some tokens in procedural macros changed. The exact output returned by rustc's pretty printing is an unstable implementation detail: we recommend any macro relying on it to switch to a more robust parsing system


Rust 1.45.2
- Fix bindings in tuple struct patterns
- Fix track_caller integration with trait objects


Rust 1.45.1
- Change log not available for this version


Rust 1.45.0
Language:
- Out of range float to int conversions using as has been defined as a saturating conversion. This was previously undefined behaviour, but you can use the {f64, f32}::to_int_unchecked methods to continue using the current behaviour, which may be desirable in rare performance sensitive situations.
- mem::Discriminant now uses T's discriminant type instead of always using u64
- Function like procedural macros can now be used in expression, pattern, and statement positions. This means you can now use a function-like procedural macro anywhere you can use a declarative (macro_rules!) macro.

Compiler:
- You can now override individual target features through the target-feature flag. E.g. -C target-feature=+avx2 -C target-feature=+fma is now equivalent to -C target-feature=+avx2,+fma
- Added the force-unwind-tables flag. This option allows rustc to always generate unwind tables regardless of panic strategy
- Added the embed-bitcode flag. This codegen flag allows rustc to include LLVM bitcode into generated rlibs (this is on by default)
- Added the tiny value to the code-model codegen flag
- Added tier 3 support* for the mipsel-sony-psp target
- Added tier 3 support for the thumbv7a-uwp-windows-msvc target
- Refer to Rust's platform support page for more information on Rust's tiered platform support

Libraries:
- net::{SocketAddr, SocketAddrV4, SocketAddrV6} now implements PartialOrd and Ord
- proc_macro::TokenStream now implements Default
- You can now use char with ops::{Range, RangeFrom, RangeFull, RangeInclusive, RangeTo} to iterate over a range of codepoints. E.g. you can now write the following
- OsString now implements FromStr
- The saturating_neg method as been added to all signed integer primitive types, and the saturating_abs method has been added for all integer primitive types
- Arc, Rc now implement From<Cow<'_, T>>, and Box now implements From when T is [T: Copy], str, CStr, OsStr, or Path
- Box<[T]> now implements From<[T; N]>
- BitOr and BitOrAssign are implemented for all NonZero integer types
- The fetch_min, and fetch_max methods have been added to all atomic integer types
- The fetch_update method has been added to all atomic integer types


Rust 1.44.1
- rustfmt accepts rustfmt_skip in cfg_attr again
- Don't hash executable filenames on apple platforms, fixing backtraces
- Fix crashes when finding backtrace on macOS
- Clippy applies lint levels into different files


Rust 1.44.0
Language:
- You can now use async/.await with #[no_std] enabled
- Added the unused_braces lint

Syntax-only changes:
- Expansion-driven outline module parsing
- These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation

Compiler:
- Rustc now respects the -C codegen-units flag in incremental mode. Additionally when in incremental mode rustc defaults to 256 codegen units
- Refactored catch_unwind, to have zero-cost unless unwinding is enabled and a panic is thrown
- Added tier 3* support for the aarch64-unknown-none and aarch64-unknown-none-softfloat targets
- Added tier 3 support for arm64-apple-tvos and x86_64-apple-tvos targets

Libraries:
- Special cased vec![] to map directly to Vec::new(). This allows vec![] to be able to be used in const contexts
- convert::Infallible now implements Hash
- OsString now implements DerefMut and IndexMut returning a &mut OsStr
- Unicode 13 is now supported
- String now implements From<&mut str>
- IoSlice now implements Copy
- Vec now implements From<[T; N]>. Where N is at most 32
- proc_macro::LexError now implements fmt::Display and Error
- from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes, and to_ne_bytes methods are now const for all integer types

Stabilized APIs:
- PathBuf::with_capacity
- PathBuf::capacity
- PathBuf::clear
- PathBuf::reserve
- PathBuf::reserve_exact
- PathBuf::shrink_to_fit
- f32::to_int_unchecked
- f64::to_int_unchecked
- Layout::align_to
- Layout::pad_to_align
- Layout::array
- Layout::extend

Cargo:
- Added the cargo tree command which will print a tree graph of your dependencies
- You can also display dependencies on multiple versions of the same crate with cargo tree -d (short for cargo tree --duplicates)
- Misc
- Rustdoc now allows you to specify --crate-version to have rustdoc include the version in the sidebar

Compatibility Notes:
- Rustc now correctly generates static libraries on Windows GNU targets with the .a extension, rather than the previous .lib
- Removed the -C no_integrated_as flag from rustc
- The file_name property in JSON output of macro errors now points the actual source file rather than the previous format of . Note: this may not point a file that actually exists on the user's system.
- The minimum required external LLVM version has been bumped to LLVM 8
- mem::{zeroed, uninitialised} will now panic when used with types that do not allow zero initialization such as NonZeroU8. This was previously a warning
- In 1.45.0 (the next release) converting a f64 to u32 using the as operator has been defined as a saturating operation. This was previously undefined behaviour, you can use the {f64, f32}::to_int_unchecked methods to continue using the current behaviour which may desirable in rare performance sensitive situations.

Internal Only:
- These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools
- dep_graph Avoid allocating a set on when the number reads are small
- Replace big JS dict with JSON parsing


Rust 1.43.1
- Updated openssl-src to 1.1.1g for CVE-2020-1967
- Fixed the stabilization of AVX-512 features
- Fixed cargo package --list not working with unpublished dependencies


Rust 1.43.0
Language:
- Fixed using binary operations with &{number} (e.g. &1.0) not having the type inferred correctly
- Attributes such as #[cfg()] can now be used on if expressions

Syntax only changes:
- Allow type Foo: Ord syntactically
- Fuse associated and extern items up to defaultness
- Syntactically allow self in all fn contexts
- Merge fn syntax + cleanup item parsing
- item macro fragments can be interpolated into traits, impls, and extern blocks
- These are still rejected semantically, so you will likely receive an error but these changes can be seen and parsed by macros and conditional compilation

Compiler:
- You can now pass multiple lint flags to rustc to override the previous flags. For example; rustc -D unused -A unused-variables denies everything in the unused lint group except unused-variables which is explicitly allowed. However, passing rustc -A unused-variables -D unused denies everything in the unused lint group including unused-variables since the allow flag is specified before the deny flag (and therefore overridden).
- rustc will now prefer your system MinGW libraries over its bundled libraries if they are available on windows-gnu
- rustc now buffers errors/warnings printed in JSON

Libraries:
- Arc<[T; N]>, Box<[T; N]>, and Rc<[T; N]>, now implement TryFrom<Arc<[T]>>,TryFrom<Box<[T]>>, and TryFrom<Rc<[T]>> respectively. Note These conversions are only available when N is 0..=32.
- You can now use associated constants on floats and integers directly, rather than having to import the module. e.g. You can now write u32::MAX or f32::NAN with no imports.
- u8::is_ascii is now const.
- String now implements AsMut.
- Added the primitive module to std and core. This module reexports Rust's primitive types. This is mainly useful in macros where you want avoid these types being shadowed.
- Relaxed some of the trait bounds on HashMap and HashSet.
- string::FromUtf8Error now implements Clone + Eq.

Stabilized APIs:
- Once::is_completed

更新時間:2022-10-31
更新細節:

What's new in this version:

PureVPN 9.10.0.3
- Change log not available for this version


PureVPN 9.8.1.0
- Change log not available for this version


PureVPN 9.8.0.8
Improved:
- Just like usual, we’ve made some bug fixes to ensure a smooth PureVPN experience for you at all times


PureVPN 9.8.0.8
- Change log not available for this version


PureVPN 9.7.1.1
- Change log not available for this version


PureVPN 9.6.0.0
- Change log not available for this version


PureVPN 9.5.0.4
- Change log not available for this version


PureVPN 9.2.1.4
- Change log not available for this version


PureVPN 9.1.0.16
- Change log not available for this version


PureVPN 9.1.0.14
- Removed in-app browser
- Added some mixpanel properties


PureVPN 9.1.0.11
- Change log not available for this version


PureVPN 9.0.0.12
- Change log not available for this version


PureVPN 9.0.0.11
- Change log not available for this version


PureVPN 9.0.0.2
- Change log not available for this version


PureVPN 8.3.0.3
- Change log not available for this version


PureVPN 8.2.0.0
- Change log not available for this version


PureVPN 8.0.4.2
- Change log not available for this version


PureVPN 8.0.3.3
- Change log not available for this version


PureVPN 8.0.3.2
- Change log not available for this version


PureVPN 8.0.2.2
- Change log not available for this version


PureVPN 8.0.2
- Change log not available for this version


PureVPN 7.1.3
- Change log not available for this version


PureVPN 7.1.2
- You don't have to remember difficult usernames like purevpn0s, purevpn0d, etc. anymore! Simply use your email address & password to login to PureVPN apps and extensions


PureVPN 7.1.1
- One-Click Browser Extensions Installation
- Revamped Split Tunneling
- UI Improvements Over Login Screen
- Bug fixes


PureVPN 7.1.0
- Change log not available for this version


PureVPN 7.0.6
- 'Split Tunneling' feature has been improved


PureVPN 7.0.5
- Change log not available for this version


PureVPN 7.0.4
- Change log not available for this version


PureVPN 7.0.3
- Antivirus Protection
- New and Improved Support Mechanism
- Ad Blocker
- IDS/IPS
- Multiple VPN Protocols
- URL Filter
- App Filter


PureVPN 7.0.2
- Change log not available for this version


PureVPN 7.0.1
- Change log not available for this version


PureVPN 7.0.0
- Change log not available for this version


PureVPN 6.3.0
- Change log not available for this version


PureVPN 6.2.4
- Change log not available for this version


PureVPN 6.2.2
- Change log not available for this version

Leawo Blu-ray Player 3.0.0.1 查看版本資訊

更新時間:2022-10-31
更新細節:

Gajim 1.5.3 (64-bit) 查看版本資訊

更新時間:2022-10-31
更新細節:

PureVPN 9.8.0.8 查看版本資訊

更新時間:2022-09-25
更新細節:

What's new in this version:

PureVPN 9.8.0.8
Improved:
- Just like usual, we’ve made some bug fixes to ensure a smooth PureVPN experience for you at all times


PureVPN 9.8.0.8
- Change log not available for this version


PureVPN 9.7.1.1
- Change log not available for this version


PureVPN 9.6.0.0
- Change log not available for this version


PureVPN 9.5.0.4
- Change log not available for this version


PureVPN 9.2.1.4
- Change log not available for this version


PureVPN 9.1.0.16
- Change log not available for this version


PureVPN 9.1.0.14
- Removed in-app browser
- Added some mixpanel properties


PureVPN 9.1.0.11
- Change log not available for this version


PureVPN 9.0.0.12
- Change log not available for this version


PureVPN 9.0.0.11
- Change log not available for this version


PureVPN 9.0.0.2
- Change log not available for this version


PureVPN 8.3.0.3
- Change log not available for this version


PureVPN 8.2.0.0
- Change log not available for this version


PureVPN 8.0.4.2
- Change log not available for this version


PureVPN 8.0.3.3
- Change log not available for this version


PureVPN 8.0.3.2
- Change log not available for this version


PureVPN 8.0.2.2
- Change log not available for this version


PureVPN 8.0.2
- Change log not available for this version


PureVPN 7.1.3
- Change log not available for this version


PureVPN 7.1.2
- You don't have to remember difficult usernames like purevpn0s, purevpn0d, etc. anymore! Simply use your email address & password to login to PureVPN apps and extensions


PureVPN 7.1.1
- One-Click Browser Extensions Installation
- Revamped Split Tunneling
- UI Improvements Over Login Screen
- Bug fixes


PureVPN 7.1.0
- Change log not available for this version


PureVPN 7.0.6
- 'Split Tunneling' feature has been improved


PureVPN 7.0.5
- Change log not available for this version


PureVPN 7.0.4
- Change log not available for this version


PureVPN 7.0.3
- Antivirus Protection
- New and Improved Support Mechanism
- Ad Blocker
- IDS/IPS
- Multiple VPN Protocols
- URL Filter
- App Filter


PureVPN 7.0.2
- Change log not available for this version


PureVPN 7.0.1
- Change log not available for this version


PureVPN 7.0.0
- Change log not available for this version


PureVPN 6.3.0
- Change log not available for this version


PureVPN 6.2.4
- Change log not available for this version


PureVPN 6.2.2
- Change log not available for this version

SoftEther VPN Gate Client Plugin 2022.09.25 build 9772 查看版本資訊

更新時間:2022-09-25
更新細節:

更新時間:2022-09-25
更新細節:

GSA Search Engine Ranker 16.63 查看版本資訊

更新時間:2022-09-25
更新細節:

What's new in this version:

GSA Search Engine Ranker 16.63
- fixed: startup issues


GSA Search Engine Ranker 16.62
- fixed: issue with whois sites


GSA Search Engine Ranker 16.61
- fix: too fast posting on same site with no account
- new: improved lock system


GSA Search Engine Ranker 16.60
New:
- improved submission speed
- fixed an encoding issue for generation of titles
- improved search engine parsing
- improved wordpress engine


GSA Search Engine Ranker 16.59
- new: improved submission speed for target url discovering
- fix: issue with scheduled posting


GSA Search Engine Ranker 16.58
New:
- Rework of Moodle engine by forum member cherub
- new search engines added


GSA Search Engine Ranker 16.57
New:
- improved wordpress engine
- improved clean-up dialog

Fixed:
- importing email accounts from other projects via popup menu
was ignoring IMAP settings
- indexing with proper campaing name


GSA Search Engine Ranker 16.56
- new: improved google search results
- new: better search engine parsing
- fix: tier filter issues


GSA Search Engine Ranker 16.55
- new: improved site key extraction for recaptcha


GSA Search Engine Ranker 16.54
- new: improved some macros


GSA Search Engine Ranker 16.53
- new: improved form filling
- new: indexing service improved
- fix: issue with testing proxies and dns resolve by proxies


GSA Search Engine Ranker 16.52
New:
- improved some engines
- improved debug output
- added new search engines

- fix: buddypress engines issues


GSA Search Engine Ranker 16.51
- fix: fixed captcha services HumanCoder and CaptchaDecoder
- new: added new search engines
- new: improved cache cleanup


GSA Search Engine Ranker 16.50
New:
- more options for captcha service configuration
- improve search engine parsing speed
- improved some engines

Fixed:
- title generation in GUI is taking titlegen.dat from data-folder


GSA Search Engine Ranker 16.49
- fix: wordpress engine issues
- new: updated user agents


GSA Search Engine Ranker 16.48
- new: improved form extraction
- new: added hcaptcha support for xevil api
- fix: issues with linksindexer API


GSA Search Engine Ranker 16.47
New:
- improved wordpress engine
- added support for EasyContentMachine API


GSA Search Engine Ranker 16.46
New:
- added new indexing service linksindexer.com
- new search engine added
- improved country detection


GSA Search Engine Ranker 16.45
New:
- speed improved when parsing
- bing proxy test fixed
- new search engines added


GSA Search Engine Ranker 16.44
- new: export of verified urls can hold ip/country
- new: some email engines updated
- fix: reset of "parsed email data" was not working
- fix: DokuWiki fixed with the help of our forum member the_other_dude


GSA Search Engine Ranker 16.43
- fix: domain filter issue
- new: added support for more disposible email providers


GSA Search Engine Ranker 16.42
- fix: minor issues on lindexed indexer
- new: improved sitelist handling (speed, proper error message)


GSA Search Engine Ranker 16.41
- New: added some new search engines


GSA Search Engine Ranker 16.39
- new: web20 engines checked/updated
- new: improved speed on language detection


GSA Search Engine Ranker 16.38
New:
- improved value extraction for web forms
- new search engines added


GSA Search Engine Ranker 16.37
- New: new search engines added


GSA Search Engine Ranker 16.35
- new: support for hcaptcha added


GSA Search Engine Ranker 16.33
- new: new search engines added


GSA Search Engine Ranker 16.32
New:
- new search engines added
- improved some engines


GSA Search Engine Ranker 16.31
New:
- added new search engines
- improved email account setup
- improved submission speed


GSA Search Engine Ranker 16.30
- new search engines added


GSA Search Engine Ranker 16.29
New:
- added a nw indexing service (indexingexpert)
- improved GSA Proxy Scraper support


GSA Search Engine Ranker 16.28
New:
- improved sitemap extraction
- improved recaptcha detection


GSA Search Engine Ranker 16.27
- new: issue with imap type change
- fix: ability to check email accounts for multible projects


GSA Search Engine Ranker 16.26
- new: gnuboard engines updated


GSA Search Engine Ranker 16.25
- new: improved update system


GSA Search Engine Ranker 16.22
- new: improved search engine parsing


GSA Search Engine Ranker 16.20
- new: added new search engines


GSA Search Engine Ranker 16.19
- new: speed when saving projects improved


GSA Search Engine Ranker 16.18
- new: new option for indexing services to only send links if they are indexable (default now)


GSA Search Engine Ranker 16.17
New:
- contextual engine from cherub
- default filter URLs updated
- log messages improved

- fix: import of articles with filename in unicode


GSA Search Engine Ranker 16.16
New:
- improved macro usage
- improved random captcha service option
- improved target url import

- fix: CaptchaAI API


GSA Search Engine Ranker 16.15
New:
- added many new search engines
- auto fix of wrong #trans/#notrans usage
- some email engines updated
- improved article preview templates


GSA Search Engine Ranker 16.14
New:
- added imap support in email accounts
- some engines improved
- search engine parsing improved
- improved none utf8 content encoding


GSA Search Engine Ranker 16.13
New:
- many new search engines added and none working removed
- added custom site list as target project import


GSA Search Engine Ranker 16.12
- new: article generator was damaged


GSA Search Engine Ranker 16.11
New:
- improved search engine parsing
- added new engine


GSA Search Engine Ranker 16.10
- new: added some new engines
- new: improved speed/less memory usage
- fix: possible dead lock


GSA Search Engine Ranker 16.09
- new: improved speed


GSA Search Engine Ranker 16.08
- new: option to skip re-verification on older links


GSA Search Engine Ranker 16.07
New:
- improved cookie handling speed
- improved thread processing speed
- improved spin-usage vs json detection
- removed some entries of to-use captcha services


GSA Search Engine Ranker 16.06
- new: improved Use OpenAI / InferKit article generation


GSA Search Engine Ranker 16.04
New:
- improved speed for global blacklist
- less cpu usage for various functions
- better speed for duplicate removal
- added new proxy sources


GSA Search Engine Ranker 16.03
- new: improved speed (verification, submission, target cache)

Fixed:
- stopping project during verification was deleting almost all to-verify data
- swift proxy data was not saved
- issue with custom recaptcha scripting


GSA Search Engine Ranker 16.02
New:
- faster link building
- less PR queries for redirects


GSA Search Engine Ranker 16.01
- new: minor fix in new engine


GSA Search Engine Ranker 16.00
- new: added a new engine (keyword tracking)


GSA Search Engine Ranker 15.99
- new: improved some engines
- fix: small issue with repeatly importing targets from present accounts


GSA Search Engine Ranker 15.97
- new: dupecheck when adding new articles
- fix: issue with preview/test in project editor using the "dat file folder"
- fix: article builder api on chinese systems


GSA Search Engine Ranker 15.95
- new: less cpu usage
- new: improved target URL search


GSA Search Engine Ranker 15.94
- new: improved some engines


GSA Search Engine Ranker 15.93
- fix: translation from no-api google (reply changed)
- new: added new proxy api
- new: added captchaai.com as new captcha service


GSA Search Engine Ranker 15.92
- new: serengines /serpcloud api was not read on startup


GSA Search Engine Ranker 15.91
New:
- issue with proxy detection fixed
- speed improved
- some engines updated


GSA Search Engine Ranker 15.90
New:
- ability to choose custom site list folders


GSA Search Engine Ranker 15.89
New:
- added a lot more PR-Replacement other than Yandex
- improved target url extraction from verified links
- project option to remove quotes from footprins in search queries


GSA Search Engine Ranker 15.88
- new: improved speed again
- fix: one possible bug from previous release


GSA Search Engine Ranker 15.87
- new: improved speed for target url parsing
- fix: issue with anchor text being an url other than the linked one
- fix: elite indexer was broken (TLS didn't work on there api)


GSA Search Engine Ranker 15.86
New:
- speed improved
- macros relying on a proper anchor will skip urls as anchor
- added a chart for LpM/VpM/DpM values


GSA Search Engine Ranker 15.85
New:
- added wordpress/blogspot xml article import
- easy way to select URLs not sent to indexer in "Show verified URLs"
- improved speed with ssl connections
- tier filter to only accept URLs with anchor as URL part


GSA Search Engine Ranker 15.84
- Fixed: issue with subdomain account import


GSA Search Engine Ranker 15.83
- fix: issue with nested macros usage


GSA Search Engine Ranker 15.81
- Fixed: Yandex PR mapping


GSA Search Engine Ranker 15.80
- fix: wrong multi-redirect detection (301->302 was a 301 instead of 302)
- new: added 3 new engines by forum user cherub


GSA Search Engine Ranker 15.79
- new: improved wordpress engine (again)


GSA Search Engine Ranker 15.78
New:
- improved wordpress engine
- script engine improved


GSA Search Engine Ranker 15.77
New:
- select project dialog improved
- improved proxy handling
- less memory usage when editing projects


GSA Search Engine Ranker 15.76
- new: improved text captcha solving


GSA Search Engine Ranker 15.75
- fix: problem with target urls growing endlessly

New:
- less cpu and memory usage
- improved captcha handline with thread limit set
- added text captcha q/a import from csv file


GSA Search Engine Ranker 15.74
New:
- improved target site processing
- improved proxy sources
- new debug mode filter


GSA Search Engine Ranker 15.73
- fix:  redirect/indexing links not getting saved to site lists
- new: improved wordpress engine again


GSA Search Engine Ranker 15.72
New:
- added more tools to debug mode dialog
- improved "Crawl URLs" dialog
- wordpress posting without classic editor plugin


GSA Search Engine Ranker 15.71
- new: image/video placement options added


GSA Search Engine Ranker 15.69
New:
- added some new engines done by cherub
- improved captcha handling
- proxy type detection improved


GSA Search Engine Ranker 15.68
- new: improved wordpress engines


GSA Search Engine Ranker 15.67
- fix: Article Froge with WordAI made some issues
- new: added some more shortcuts for modify/import submenu
- new: option to send URLs to one random or all indexing services


GSA Search Engine Ranker 15.66
New:
- proxy sources updated
- proxy handling improved
- added a new indexing service
- ability to uncheck engines not being able to use images or videos


GSA Search Engine Ranker 15.65
- fixed: imported accounts where not submitting in some situations
- new: improved macro handling in URLs
- new: added a new article engine


GSA Search Engine Ranker 15.64
- fix: account saving useless data and slowed things down

New:
- added a new captcha service
- support for macros in URLs
- updated generic urls


GSA Search Engine Ranker 15.63
New:
- support for macros in URLs
- updated generic urls
- improved some engines based on cherub's suggestion


GSA Search Engine Ranker 15.62
- new: issue with crawling URLs/Anchor texts


GSA Search Engine Ranker 15.61
New:
- added magcloud.com engine
- improved debug mode


GSA Search Engine Ranker 15.60
- new: improved cookie system when submitting/scraping


GSA Search Engine Ranker 15.59
- new: competitor analysis improved


GSA Search Engine Ranker 15.57
- new: added new temporary email providers
- fix: minor issues on account import


GSA Search Engine Ranker 15.56
- new: proxy scraper is testing and auto updating the proxyjudge URL


GSA Search Engine Ranker 15.55
New:
- improved submission speed again (just a bit)
- added a new engine done by our forum member cherub

Fixed:
- proxy checking issue
- issue with project status 'Remove' fixed


GSA Search Engine Ranker 15.54
- new: improved speed
- new: chrome specific header updates


GSA Search Engine Ranker 15.53
- new: improved proxy handling


GSA Search Engine Ranker 15.52
- fix: issue with SpinnerChief and X_Spinner API


GSA Search Engine Ranker 15.51
- fix: some more WordAI API fixes


GSA Search Engine Ranker 15.49
- recaptcha custom scriting issue


GSA Search Engine Ranker 15.47
New:
- some engines updated
- shortcuts for popup menus are back


GSA Search Engine Ranker 15.46
- new: ability to change brightness, satuartion and color of skin


GSA Search Engine Ranker 15.45
- new: minor tweaks on gui
- fix: minor bug on footprint studio


GSA Search Engine Ranker 15.43
- new: openssl update


GSA Search Engine Ranker 15.41
- improved GUI with popup menu icons


GSA Search Engine Ranker 15.40
- deadlock with translate


GSA Search Engine Ranker 15.38
- issue with update server


GSA Search Engine Ranker 15.37
- new: improved some engines
- fix: delete link mode issues with multi accounts per site
- new: improved proxy sources


GSA Search Engine Ranker 15.36
New:
- reverification is removing links only if it failed 5 times in a row
- improvecha detection
- improved proxy testing
- improved some engines
- started work on a web-interface


GSA Search Engine Ranker 15.35
- Added blacklist check for verified links


GSA Search Engine Ranker 15.34
- new: improved reverification


GSA Search Engine Ranker 15.32
- Improved some engines
- Added support for recaptcha v3 in some more captcha seervice


GSA Search Engine Ranker 15.31
- Duplicate a tier project was broken
- New: groups can be duplicated as well now


GSA Search Engine Ranker 15.30
- new: improved some engines
- fix: minor issue with the custom link format script command


GSA Search Engine Ranker 15.29
- new: option to skip submission to domains with same IP
- fix: issue with google translate


GSA Search Engine Ranker 15.28
- Improved recaptcha detection


GSA Search Engine Ranker 15.27
- New: less cpu usage, less memory usage
- New: better speed with URL handling/checking
- Fix: minor bug with engine filtering


GSA Search Engine Ranker 15.26
- New: improved speed


GSA Search Engine Ranker 15.25
- GSA SEO Indexer will no longer be used when unchecked in global options


GSA Search Engine Ranker 15.24
- Improved some engines


GSA Search Engine Ranker 15.23
- New: new contextual article engine WPForo added


GSA Search Engine Ranker 15.22
- fix: tier display structure fixed
- new: the last verified urls will be filtered when
- you want to show logs of one project only


GSA Search Engine Ranker 15.21
- New: improved some engines
- Fix: PHPInfo Exploit engine didn't work


GSA Search Engine Ranker 15.20
- Improved some engines
- Less cpu and memory usage


GSA Search Engine Ranker 15.19
- Problem with URL Shorteners not having correct anchor text


GSA Search Engine Ranker 15.18
- Fix: the tier "indexable only" filter was not correctly working


GSA Search Engine Ranker 15.17
- another possible issue on tree listings


GSA Search Engine Ranker 15.16
- Fix: possible issue on tree listings


GSA Search Engine Ranker 15.15
- fixed: SpinnerChief API was no longer working when using advanced parameters -> removed them now


GSA Search Engine Ranker 15.14
- dateformat in stats


GSA Search Engine Ranker 15.12
- Issue with captcha handling when being random


GSA Search Engine Ranker 15.11
- Problem with redirect types
- Improved some engines
- Option to use captcha services in random order


GSA Search Engine Ranker 15.10
- Api issue with some captcha services


GSA Search Engine Ranker 15.09
New:
- improved cpu usage/speed
- improved meta redirect detection
- improved cpu usage/speed


GSA Search Engine Ranker 15.08
- new: improved cpu usage/speed


GSA Search Engine Ranker 15.07
New:
- improved disposible email parsing
- ability to export articles with title as first line


GSA Search Engine Ranker 15.06
- fix: recaptcha v3 solving for CapMonster Cloud
- new: improved redirect detection


GSA Search Engine Ranker 15.05
New:
- some engines improved
- URL-in-URL detection improved


GSA Search Engine Ranker 15.04
New:
- gui color for redirect types changed
- pr check improved
- redirect detection improved (anchor text is used for exact type)


GSA Search Engine Ranker 15.03
- minor re-verification bug
- fix: issue when checking email accounts
- new: added a new web20 engine


GSA Search Engine Ranker 15.02
- Fix: minor issue with email verification and ending projects
- Fix: minimize to tray way always used even when unchecked
- New: backlink indexer api changed/improved


GSA Search Engine Ranker 15.01
- Fix: proxy-reset on failer was partly broken


GSA Search Engine Ranker 15.00
- New: improvements on account related submissions

PureVPN 9.7.1.1 查看版本資訊

更新時間:2022-08-16
更新細節:

What's new in this version:

PureVPN 9.7.1.1
- Change log not available for this version


PureVPN 9.6.0.0
- Change log not available for this version


PureVPN 9.5.0.4
- Change log not available for this version


PureVPN 9.2.1.4
- Change log not available for this version


PureVPN 9.1.0.16
- Change log not available for this version


PureVPN 9.1.0.14
- Removed in-app browser
- Added some mixpanel properties


PureVPN 9.1.0.11
- Change log not available for this version


PureVPN 9.0.0.12
- Change log not available for this version


PureVPN 9.0.0.11
- Change log not available for this version


PureVPN 9.0.0.2
- Change log not available for this version


PureVPN 8.3.0.3
- Change log not available for this version


PureVPN 8.2.0.0
- Change log not available for this version


PureVPN 8.0.4.2
- Change log not available for this version


PureVPN 8.0.3.3
- Change log not available for this version


PureVPN 8.0.3.2
- Change log not available for this version


PureVPN 8.0.2.2
- Change log not available for this version


PureVPN 8.0.2
- Change log not available for this version


PureVPN 7.1.3
- Change log not available for this version


PureVPN 7.1.2
- You don't have to remember difficult usernames like purevpn0s, purevpn0d, etc. anymore! Simply use your email address & password to login to PureVPN apps and extensions


PureVPN 7.1.1
- One-Click Browser Extensions Installation
- Revamped Split Tunneling
- UI Improvements Over Login Screen
- Bug fixes


PureVPN 7.1.0
- Change log not available for this version


PureVPN 7.0.6
- 'Split Tunneling' feature has been improved


PureVPN 7.0.5
- Change log not available for this version


PureVPN 7.0.4
- Change log not available for this version


PureVPN 7.0.3
- Antivirus Protection
- New and Improved Support Mechanism
- Ad Blocker
- IDS/IPS
- Multiple VPN Protocols
- URL Filter
- App Filter


PureVPN 7.0.2
- Change log not available for this version


PureVPN 7.0.1
- Change log not available for this version


PureVPN 7.0.0
- Change log not available for this version


PureVPN 6.3.0
- Change log not available for this version


PureVPN 6.2.4
- Change log not available for this version


PureVPN 6.2.2
- Change log not available for this version