u/Uclydde
-
1,465points
- 284points
-
3points
-
1points
-
1points
Uclydde
Uclydde
I'm seeing some comments here asking about when/why this feature would be used.
One case where naked functions are _critical_ is when writing a JIT compiler (or recompiler for emulation). JIT compilers are currently used by java and javascript; there are some alternative python implementations that use a JIT. JIT recompilers are commonplace in the emulation of more modern systems like the Wii U and Nintendo Switch.
A JIT generates new code at runtime, and then executes it. But to execute the generated code, you need to switch between the generator environment, and the generated code's environment. Performing this switch is called a "trampoline", and here, environment means the CPU state (so, register values). Naked functions allow you to save and load register values to RAM when making this switch between environments. If you attempted to just call the generated code as a normal function, then the Rust compiler would treat it all as one environment - but with a JIT you need to keep it sandboxed so they don't interfere with each other.
Uclydde
They already tightened the law last year so it's not automatic citizenship, see my previous comment here: https://www.reddit.com/r/PortugalExpats/comments/1lk1fqa/comment/mzol3e6/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
Uclydde
What you're describing was the old system, which did not require residence. In March of 2024, the Portuguese government tightened the program to grant citizenship in 3 years of residence instead of 5, meaning applicants already needed to have some other valid visa & entrance into the country
See Organic Law No. 1/2024 or this link:
https://pra.pt/en/a-nacionalidade-portuguesa-para-os-judeus-sefarditas-residentes-em-portugal/
Uclydde
If you're deploying it separately for each backend, then use the feature system for conditional compilation: https://doc.rust-lang.org/cargo/reference/features.html
Uclydde
But if 0 in base 2 is equivalent to the empty string in base 1, then... it seems like base 2 is equivalent to base 1
Uclydde
Right, tail call elimination isn't guaranteed for Rust
Uclydde
Everyone is doing ML now. I think the Dataiku internship is probably better.
Uclydde
Ability to pair with CCC or CDC for enhanced earnings
What do you mean by "pair"?
Uclydde
Two things come to mind: 1. Could be a firmware issue. Make sure you have the latest Framework 16 BIOS update. 2. Could be a driver issue. The Ethernet module uses a Realtek Ethernet chip, so make sure that you have the Realtek driver installed in Windows.
Framework support is pretty good, so make sure to use them if this doesn't solve your problem ^
Uclydde
Everyone is giving technical answers, but I think it's also worth considering the strangeness budget: https://steveklabnik.com/writing/the-language-strangeness-budget
Uclydde
In theory, the open source community could add/fix functionality that Framework hasn't. For example, adding XMP or EXPO support.
Uclydde
Is it possible to make the existing BIOS open source, or is there some licensing agreement that makes this impossible?
I'm sure there are many open source enthusiasts that would love to do some free labor.
Uclydde
Got it, thanks!
Uclydde
Looks like someone made an attempt with postmarketOS: https://wiki.postmarketos.org/wiki/Motorola_Moto_G_Stylus_(2021)_(minsk)
Uclydde
I looked into it, and it seems the Snapdragon X Elite specifically only supports LPDDR5X
Source: see the memory section of specifications: https://www.qualcomm.com/products/mobile/snapdragon/pcs-and-tablets/snapdragon-x-elite#Overview
Uclydde
Can't believe nobody has said this yet, but Framework also pushes BIOS updates over LVFS so you can just update by running 1 command, fwupdmgr update
Uclydde
Which bugs?
Uclydde
True, but so is 10 minutes with the borrow checker. I've spent hours
Uclydde
This is the official document checklist for the visa, see item 8: https://www.vfsglobal.com/one-pager/portugal/pakistan/english/pdf/checklist-national-residence-digital-nomads.pdf
Yeah this is only necessary in those cases where the calling convention of the generated JIT code is different - but that would be the case for the examples I listed, e.g. the JVM when creating a java JIT