SICPelago

SICPelago is a randomized Scheme environment where you unlock core capabilities by solving carefully selected exercises adapted from Structure and Interpretation of Computer Programs. Starting only with your trusty lambda and the supporting quote, climb your way to the top of the textbook, exploring math puzzles, composite data structures, and infinite sequences. Happy April Prototypes Day!

ROSE-8 in customasm

Last week a friend shared the existence of hlorenzi’s customasm, a tool that can serve as the assembler for arbitrary CPU architectures just by defining a mapping of instructions to encodings.

Hey, I made a CPU once! How hard would it be to make a customasm definition for ROSE-8? Turns out…not very! I played around with it for about two hours, and by the end of it I’d translated an entire ROSE-8 program to customasm, with most of the definition file looking basically the same as the text reference for the ISA encoding.

The Shell is a Program

I have a friend who switched to Linux because they didn’t want to pay for a new license for Windows and thereby end up running modern Windows. They’re not very computer-minded, so troubleshooting doesn’t come naturally, and anything that requires dropping down to the command line is something that has to be done by rote. And on one occasion, when I asked them to run something, they asked where to type it in.

Older Posts

  1. 2024-07-02 AnyObject
  2. 2024-04-07 XZ Gon' Give It To Ya
  3. 2024-04-06 Run-time Polymorphism in Swift
  4. 2024-01-20 Online Communication
  5. 2024-01-07 The Biggest Smallest PNG
  6. 2023-12-28 CellLVM
  7. 2023-12-14 Protobuf Is Almost Streamable
  8. 2023-12-13 Daylight Saving Is Temporal Time Zones
  9. 2023-11-26 GitMounter
  10. 2023-10-23 Type Erasure in Rust
  11. 2023-10-09 Soft Orders of Magnitude
  12. 2023-10-04 There's No Such Thing As "Implicitly Atomic"
  13. 2023-07-15 HOW TO REFER TO A MAGIC CONSTANT IN C
  14. 2023-04-01 sNaNs and qNaNs
  15. 2023-02-12 Setting up GoToSocial
  16. 2023-01-22 Rescuing Files From Classic Mac OS...with Swift!
  17. 2022-11-28 The Two Faces of Codable/Serde
  18. 2022-10-09 Swift was always going to be part of the OS
  19. 2022-05-14 Relative References in ARM64 Disassembly
  20. 2022-04-24 Default Arguments and Label-based Overloading
  21. 2022-03-19 #TalkPay
  22. 2022-03-02 UnsafeMutableRawBufferPointer
  23. 2022-02-21 Dynamic Linking Is Bad For Apps And Static Linking Is Also Bad For Apps
  24. 2021-12-31 Swift Regrets: Wrap-up
  25. 2021-12-30 Swift History: Assignment Methods
  26. 2021-12-28 Swift Regret: inout Syntax
  27. 2021-12-26 Swift Delight: Optional Conveniences
  28. 2021-12-23 Swift Regret: try?
  29. 2021-12-21 Swift Delight: try
  30. 2021-12-17 Swift Regret: Operator Function Lookup Rules
  31. 2021-12-15 Swift Regret: "Double" rather than "Float64"
  32. 2021-12-10 Swift Delight: Implicit Member Syntax
  33. 2021-12-08 Swift Regret: Weak Vars in Structs
  34. 2021-12-03 Swift Regret: Lazy Vars in Structs
  35. 2021-11-30 Swift Delight: No Unused Results
  36. 2021-11-24 Swift Regret: Open Protocols
  37. 2021-11-21 Swift Regret: Retroactive Conformances
  38. 2021-11-18 Swift Delight: Library Evolution
  39. 2021-11-10 Swift Mangling Regret: Private Discriminators
  40. 2021-11-05 Swift Mangling Regret: The "Old" Mangling
  41. 2021-11-03 Swift Mangling Regret: Library Evolution
  42. 2021-10-29 Swift Delight: #available
  43. 2021-10-22 Swift Regret: Implicitly-Hashable Payloadless Enums
  44. 2021-10-20 Swift Regret: Top-Level Decls in Script Mode
  45. 2021-10-15 Swift Delight: Names for Generic Parameters
  46. 2021-10-13 Swift Regret: Generic Parameters Aren't Members
  47. 2021-10-08 Swift Regret: OpaquePointer
  48. 2021-10-06 Swift Regret: Unannotated C Enums
  49. 2021-10-01 Swift Delight: Value Semantics Collections
  50. 2021-09-29 Swift Delight: guard
  51. 2021-09-24 Swift Regret: Inferred Property Types
  52. 2021-09-22 Swift Regret: Implicit Optional Initialization
  53. 2021-09-17 Swift Regret: Subscript Trailing Closures
  54. 2021-09-15 Swift Regret: Subscript Argument Label Rules
  55. 2021-09-10 Swift Regrets
  56. 2021-09-10 Swift Regret: Unapplied Instance Methods
  57. 2021-09-08 Swift Regret: Bound Methods
  58. 2021-08-29 Swift Regret: Type-based Overloading
  59. 2021-08-25 Swift Regret: AnyObject Dispatch
  60. 2021-08-20 Swift Regret: Labeled Tuple Elements
  61. 2021-08-18 Swift Regret: Tuples and Argument Lists
  62. 2021-08-13 Swift Regret: Sequence
  63. 2021-08-11 Swift Regret: mutating Protocol Methods vs. Classes
  64. 2021-08-06 Swift Regret: NSUInteger
  65. 2021-08-04 Swift Regret: Protocol Syntax
  66. 2020-11-15 Negotiate Your Offers!
  67. 2020-10-20 The Swift Runtime: Enums
  68. 2020-10-06 The Swift Runtime: Class Metadata Initialization
  69. 2020-09-29 The Swift Runtime: Class Metadata
  70. 2020-09-21 The Swift Runtime: Uniquing Caches
  71. 2020-09-14 The Swift Runtime: Type Metadata
  72. 2020-09-07 The Swift Runtime: Type Layout
  73. 2020-08-31 The Swift Runtime: Heap Objects
  74. 2020-08-26 Objective-Rust
  75. 2020-07-07 Suffusion: Playing with Filesystems
  76. 2020-05-24 ROSE-8 on Mac OS 9
  77. 2020-04-03 Shallow Git Repositories
  78. 2020-04-01 Swift on Mac OS 9
  79. 2020-02-06 Flexible Identities in git
  80. 2020-02-04 Introducing the Game 'by Color
  81. 2020-01-28 ROSE-8: Console Mode
  82. 2020-01-22 Setting up gitweb on Shared Hosting
  83. 2020-01-13 ROSE-8
  84. 2019-12-24 quasiquarantine
  85. 2019-09-25 Queue, Queeu, Quuee
  86. 2019-09-13 Presentation on PrintAsObjC
  87. 2019-08-01 > go east
  88. 2019-02-21 A Shiny Magic Number
  89. 2018-04-29 Misleading Metrics and UX Tradeoffs
  90. 2018-04-03 "FIXME" Doesn't Always Mean "Fix Me"
  91. 2018-03-22 My Little (String) Optimization, Part 2
  92. 2018-03-15 My Little Optimization: The Compiler Is Magic
  93. 2018-02-26 Many-to-Many Protocols
  94. 2018-01-29 Color Palette #8
  95. 2017-09-07 The New Kingdom of Nouns
  96. 2017-09-05 Over-abstraction
  97. 2016-08-21 Macromancy, Part 2
  98. 2016-08-07 Macromancy
  99. 2016-06-19 Pronoun Buttons
  100. 2016-05-29 Webmailer's Update Bar
  101. 2016-05-23 So You Want to Be a (Compiler) Wizard
  102. 2015-12-29 Re: Contempt Culture
  103. 2015-11-18 Recommendations
  104. 2015-05-09 Nibblesort: Adventures in Optimization
  105. 2015-02-22 AlterConf SF/Oakland
  106. 2015-01-24 “Skip the FFI”
  107. 2014-12-28 SIGWINCH
  108. 2012-12-08 How to Write a Checker in 24 Hours
  109. 2012-10-02 Git Tricks
  110. 2012-04-26 Keyboard Adventures
  111. 2011-08-10 "Little Big Details"
  112. 2011-07-29 Weak Linking
  113. 2011-07-25 Using Clang from SVN in Xcode
  114. 2011-07-22 rm vs. Time Machine
  115. 2011-07-14 Priorities
  116. 2011-06-27 git add
  117. 2011-06-20 Automatic Reference Counting
  118. 2011-06-16 Dealing with "Sandwich Code"
  119. 2011-06-05 gdba
  120. 2011-06-03 Chrome vs. Safari
  121. 2011-05-31 User-Side Troubleshooting
  122. 2011-05-30 Auspicious Continuation
  123. 2009-07-21 Scripting Bridge
  124. 2009-07-08 What Happened to Dockyard?
  125. 2009-06-26 Garbage Collectors and Stack Drawers
  126. 2009-06-21 Z shell
  127. 2009-05-22 “Several New Features”
  128. 2009-05-05 C++ Templates are Turing-Complete
  129. 2009-04-21 [Meme] How Many HTML Elements Can You Name in 5 Minutes?
  130. 2009-04-16 Safer Plugin Categories
  131. 2009-04-02 Hacking Safari 4...for Great Convenience
  132. 2009-03-27 Const Correctness
  133. 2009-03-19 Categories and +load
  134. 2009-03-15 Subversion Checksum Problems
  135. 2009-03-06 JavaScript Tetris
  136. 2008-09-04 Objective-J and Objective-C
  137. 2008-08-28 HTTPS and Name-based Virtual Hosting
  138. 2008-03-08 Alerts Without Apps (or nibs)
  139. 2008-01-14 NSNumber, CFNumber, and CFBoolean
  140. 2007-12-13 GenericToolbar and IB3
  141. 2007-10-27 Performance Optimization: Why We Can't Use valueForKeyPath:
  142. 2007-09-01 Short Xcode Tip: Plugins
  143. 2007-07-15 Port 25 Blocked?
  144. 2007-06-27 GenericToolbar Icon
  145. 2007-04-13 The Symbolism of Pretty URLS
  146. 2007-03-07 Flexible PHP
  147. 2007-01-12 Inauspicious Beginnings

Possibly Related Tags