2,016 karma · joined June 2, 2010
“Unshift”, like “push”, contains the letter “u”.
In a typical modern operating system, a memory page can be non-writable and non-executable, writable and non-executable, or non-writable and executable, but not simultaneously writable AND executable.
If you generate executable code at runtime, then you need write access to a page to write the executable code into that page. Then you need to tell the operating system to change the page from writable to executable.
If you then try to write to the page, you’ll get a signal (SIGSEGV or SIGBUS, according to the article).
Oracle’s JVM apparently relies on this behavior: a Java process sometimes tries to write to a page (in its own memory space) that is not marked writable. The JVM then catches the SIGSEGV and recovers (perhaps by asking the operating system to change the page back from executable to writable, or by arranging to write to a different page, or to abort the write operation altogether).
- Shellfish can act as a file provider using SFTP, meaning it shows up in the Files app and in the document UI of other apps.
- Shellfish supports port forwarding.
As far as I can tell, Prompt 3 still doesn’t support either of those features.
Added bonus: Shellfish lifetime unlock is only $30, compared to Prompt 3’s $100.
https://developer.apple.com/wwdc23/10095
There is also an article, “Rendering at Different Rasterization Rates”:
https://developer.apple.com/documentation/metal/render_passe...
https://medium.com/bull-market/sweaty-january-and-how-gyms-m...
https://www.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/E...
Swift 6 will not change the ABI in an incompatible way. If Swift 6 introduces features that require runtime support, then code that uses those features will not back-deploy, but other code will. We have seen this before. For example, Swift 5.7 implemented SE-0309 (“Unlock existentials for all protocols”). Some of the new features of SE-0309 required runtime support, and if you wrote code that used those features, the program would not back-deploy. But (I think) the compiler emits an error if your deployment target doesn't ship with the Swift runtime that supports those features.
The big changes in Swift 6 will be new semantic restrictions related to concurrency, and possibly a small amount of breaking changes to syntax. These changes will prevent some existing Swift 5 code from compiling in Swift 6 mode. That is the reason the major version number will change.
https://en.wikipedia.org/wiki/List_of_semiconductor_scale_ex...
But also, I bought a 16" MacBook Pro M1 Max when it was announced. The M2 Max replacement was announced only 15 months later and didn't seem like a big enough improvement to justify buying. Maybe they know there are a lot of M1 owners with my mindset, and we're who they're pitching.
It reminds me a little of a screen saver called Fractal Clock that I wrote many years ago for MacOS X: https://www.dqd.com/programs/FractalClock/
Sadly, the screen saver stopped working as of (I think) Catalina and I have never gotten around to fixing it. But someone else wrote a very clever web version which you can see here: https://cakenggt.github.io/web-fractal-clock/ and the source repo is here: https://github.com/cakenggt/web-fractal-clock
- Equatable requires ==
- Comparable extends Equatable, requires <
- Hashable extends Equatable, requires hash(into:)
- Identifiable requires id
- Encodable requires encode(to:)
- Decodable requires init(from:)
- CustomStringConvertible requires description
- LosslessStringConvertible extends CustomStringConvertible, requires init?(_:)
- CustomDebugStringConvertible requires debugDescription
- CaseIterable requires allCases
- Sequence requires makeIterator()
- IteratorProtocol requires next()
- TextOutputStream requires write(_:)
- TextOutputStreamable requires write(to:)
- CustomReflectable requires customMirror
- CustomPlaygroundDisplayConvertible requires playgroundDescription
- AsyncSequence requires makeAsyncIterator()
- AsyncIteratorProtocol requires next()
And Apple’s Swift-only frameworks also have major single-function protocols:
- SwiftUI.View requires body
- SwiftUI.Animatable requires animatableData
- SwiftUI.TimelineSchedule requires entries(from:mode:)
- SwiftUI.EnvironmentKey requires defaultValue
- Combine.Publisher requires receive(subscriber:)
- Combine.Cancellable requires cancel()
- Combine.Subscription requires request(_:)
Here’s the link again: https://apcentral.collegeboard.org/media/pdf/ap23-frq-comp-s...
(The twitter comment: https://twitter.com/m_litv/status/1670144278708748292)
Also, the problem should state whether the candy grid is stored row-major or column-major: is it `box[row][column]` or `box[column][row]`? As far as I can tell, that detail isn’t specified.
In 1999, I was hired by ArsDigita, a web startup that used AOLserver, mainly to provide internal development and support for AOLserver. ArsDigita used big multi-CPU Sun servers (this was long before Oracle bought Sun) and I ended up diagnosing several race conditions in AOLserver that the AOL developers had trouble reproducing because they did their dev work on single-CPU boxes.
Fun fact, ArsDigita founder Philip Greenspun (of Greenspun’s Tenth Rule) knew Robert Thau from their shared alma mater MIT. Robert Thau (rst) designed and implemented Apache’s original module API. So ArsDigita hired rst to write mod_aolserver, an Apache module that provided enough of AOLserver’s API to allow running ArsDigita’s codebase (ACS) under Apache.