Author: Michael G
Andy Wingo: micro macro story time
Today, a tiny tale: about 15 years
ago I was working
on Guile’s macro
expander.
Guile inherited this code from an early version of Kent Dybvig’s
portable syntax
expander. It
was… not easy to work with.
Some difficulties were essential. Scope is tricky, after all.
Some difficulties were incidental, but deep. The expander is ultimately
a function that translates Scheme-with-macros to Scheme-without-macros.
However, it is itself written in Scheme-with-macros, so to load it on a
substrate without macros requires a pre-expanded copy of
itself,
whose data representations need to be compatible with any incremental
change, so that you will be able to use the new expander to produce a
fresh pre-expansion. This difficulty could have been avoided by
incrementally bootstrapping the
library. It
works once you are used to it, but it’s gnarly.
But then, some difficulties were just superflously egregious. Dybvig is
a totemic developer and researcher, but a generation or two removed
from me, and when I was younger, it never occurred to me to just email
him to ask why things were this way. (A tip to the reader: if someone
is doing work you are interested in, you can just email them. Probably
they write you back! If they don’t respond, it’s not you, they’re probably just
busy and their inbox leaks.) Anyway in my totally speculatory reconstruction of events,
when Dybvig goes to submit his algorithm for publication, he gets annoyed that “expand”
doesn’t sound fancy enough. In a way it’s similar to the original SSA
developers thinking that “phony functions” wouldn’t get
published.
So Dybvig calls the expansion function “χ”, because the Greek chi looks
like the X in “expand”. Fine for the paper, whatever paper that might
be, but then in psyntax, there are all these functions named
chi and chi-lambda and all sorts of nonsense.
In early years I was often confused by these names; I wasn’t in on the
pun, and I didn’t feel like I had enough responsibility for this code to
think what the name should be. I finally broke down and changed all
instances of “chi” to “expand” back in 2011, and never looked back.
Anyway, this is a story with a very specific moral: don’t name your
functions chi.
Build your phone app on your phone
TWIF generated on Thursday, 11 Jan 2024, Week 2
Community News
Akash Yadav announces the inclusion of AndroidIDE
Though still in its early stages (beta), AndroidIDE provides features like Gradle build support, code completions, code actions, basic code navigation, source code analysis, drag-n-drop UI designer (experimental) and a Termux-based terminal with required packages.
Its feature list is interesting, but do note the biggest limitations though: no NDK support at least for now (this means that if your app has per architecture libs, they can’t yet be built).
For fun we’ve tried to build F-Droid client on our phones but hit a bug, we’ll report back on progress in future TWIFs.
@Licaon_Kter updates us on NewPipe:
As the first TWIF of the year mentioned, latest NewPipe versions are not yet published since they were not reproducible. The NewPipe team is aware and we are waiting for a fix.
SimpleX Chat was updated to version 5.4.2
for the arm64
architecture too, hence you’ll see an update, albeit the version is the same.
Smoke and SmokeStack were updated too, bringing a new SmokeStack icon but also loosen the minimal needed version, from Android 9 to Android 7.1, so more users can enjoy them.
Updated Apps
75 more apps were updated
- ANOTHERpass was updated from
1.8.2
to1.9.0
- BetterCounter was updated from
4.0.0
to4.0.1
- Blazed Cloud was updated from
1.2.2
to1.3.1
- Blood pressure monitor was updated from
1.5.8
to1.6.0
- Bluemoon was updated from
1.0.2-alpha
to1.0.3-alpha
- Boxcars was updated from
1.2.0
to1.2.1
- CPU Info was updated from
4.7.0
to5.0.1
- Cams was updated from
2.1
to2.1.1
- Cheogram was updated from
2.13.0-1+free
to2.13.0-2+free
- ClassyShark3xodus – Scan apps for warnings was updated from
2.0-32
to2.0-34
- Cuscon was updated from
3.0.2.7
to3.0.2.9
- Delta Icon Pack was updated from
1.8.6
to1.8.7
- Drinkable was updated from
1.46.0
to1.47.0
- Escapepod – Podcast Player was updated from
1.1.2
to1.5.0
- F-Droid Build Status was updated from
5.0.3
to5.0.4
- FTPClient was updated from
2.9.0
to2.9.1
- FairEmail was updated from
1.2145
to1.2147
- Feeder was updated from
2.6.13
to2.6.14
- FlashDim – Dim your flashlight was updated from
2.2.0
to2.2.1
- Forkgram was updated from
10.3.2.0
to10.5.0.0
- FreeOTP was updated from
2.0.2
to2.0.3
- Fruity Game was updated from
2.3
to2.4
- Gauguin was updated from
0.16.1
to0.17.0
- Geto was updated from
1.7
to1.8
- Glider for Hacker News was updated from
2.7.0
to2.8.0
- Hacki for Hacker News was updated from
2.6.1
to2.6.2
- Handy Reading was updated from
0.19.7
to0.19.15
- Infomaniak Mail was updated from
1.1.3
to1.1.5
- Infomaniak kDrive was updated from
4.3.2
to4.4.0
- K-9 Mail was updated from
6.713
to6.714
- Li-Ri was updated from
3.1.0
to3.1.1
- Librera Reader was updated from
8.9.147-fdroid
to8.9.158-fdroid
- Linwood Butterfly was updated from
2.0.0
to2.0.1-rc.0
- Léon – The URL Cleaner was updated from
36
to37
- MIFARE Classic Tool was updated from
4.1.0
to4.2.0
- MoneyBuster was updated from
0.1.16
to0.1.17
- Nextcloud Dev was updated from
20231230
to20240106
- OSM Dashboard Offline for OpenTracks was updated from
3.1.0
to4.0.0
- OSM Dashboard for OpenTracks was updated from
3.1.0
to4.0.0
- Open Map was updated from
6.1.17
to6.1.18
- OpenComicVine was updated from
1.0
to1.1
- OpenVK Legacy was updated from
1.2.232-f
to1.2.233-f
- Pagan Music Sequencer was updated from
1.3.11
to1.3.12
- PixelDroid was updated from
1.0.beta25
to1.0.beta26
- Planisphere was updated from
1.11.1
to1.12.0
- Reader for Selfoss was updated from
123113311-github
to124010032-github
- Sapio was updated from
1.1.3
to1.2.2
- Shitter was updated from
3.5.2
to3.5.3
- Standard Notes was updated from
3.183.33
to3.183.40
- Syncthing was updated from
1.27.1.1
to1.27.2.1
- Tarock Palčka was updated from
0.0.9
to0.1.2
- TimeLimit.io was updated from
6.17.0
to6.18.0
- Todo Agenda was updated from
4.7.3
to4.8.0
- Track Work Time was updated from
1.1.22
to1.1.23
- TrackerControl was updated from
2023.08.09-fdroid
to2024.01.03-fdroid
- Trail Sense was updated from
5.6.1
to5.6.2
- URLCheck was updated from
2.13
to2.13.1
- Unciv was updated from
4.9.15
to4.9.16
- Unexpected Keyboard was updated from
1.24.0
to1.25.0
- Unlauncher was updated from
2.0.0
to2.1.0-beta.1
- Varengold activeTAN was updated from
2023-03-01
to2023-09-25
- Voice Notify was updated from
1.2.3
to1.3.0
- Voyager for Lemmy was updated from
1.32.6
to1.32.7
- Wulkanowy was updated from
2.2.7
to2.3.1
- YAACC was updated from
4.0.2
to4.0.3
- blocker was updated from
2.0.3361-fdroid
to2.0.3511
- ente – encrypted photo storage was updated from
0.8.13
to0.8.21
- ente Authenticator was updated from
2.0.27
to2.0.30
- floccus bookmark sync was updated from
5.0.6
to5.0.7
- gptAssist was updated from
1.30
to1.40
- huggingAssist was updated from
1.5
to1.6
- idTech4A++ was updated from
1.1.0harmattan35natasha
to1.1.0harmattan36natasha
- jtx Board journals¬es&tasks was updated from
2.06.04.ose
to2.06.05.ose
- neutriNote CE was updated from
4.4.9c
to4.4.9e
- plees-tracker was updated from
7.6.4
to7.6.5
Thank you for reading this week’s TWIF 🙂
Please subscribe to the RSS feed in your favourite RSS application to be updated of new TWIFs when they come up.
You are welcome to join the TWIF forum thread if you have any news from around the community, maybe it will be featured next week 😉
A 26 bit build of RISC OS
Justiça de SP condena Sleeping Giants Brasil por campanha de difamação contra a Jovem Pan
Video by via Dailymotion Source A 9° Vara Cível do Tribunal de Justiça de São Paulo decidiu, em decisão publicada na quarta-feira (10), que a campanha difamatória encampada pelos ativistas do grupo Sleeping Giants Brasil contra a Jovem Pan “transcende os limites legítimos de seu direito de liberdade de expressão”. Assim, juiz condenou o grupo…
Quran Suniye Aur Sunaiye – Para No 14 (Ayat 58) Surah e Nahl 16 – 11 Jan 2024
Video by via Dailymotion Source Quran Suniye Aur Sunaiye – Para No 14 (Ayat 58) Surah e Nahl 16 Host: Mufti Muhammad Sohail Raza Amjadi Topic: Momin ki Maghfirat ka Parwana || مومن کے لئے مغفرت کا پروانہ #quransuniyeaursunaiye #muftisuhailrazaamjadi #aryqtv Watch All Episodes || https://bit.ly/3oNubLx In this program Mufti Suhail Raza Amjadi teaches how…
A solar tower under construction in Saudi Arabia generates electricity 24 hours a day
Video by via Dailymotion Source #Skyscrapers#Construction#Skyline#towersA solar tower in Saudi Arabia achieved impressive results, after it was able to generate electricity throughout the day, without being restricted by sunlight, while significantly reducing the cost of construction, Solar towers depend on hot air rising to the top, different from solar panels that absorb light and convert…