14 ms·
Lisp can be “hard” real time [pdf] (2000)
- freilanzer 4y agoThe emphasis being on "hard" real time. Does anyone know of Lisp in (hard) real time applications in current use?
- Keyframe 4y agohttps://corecursive.com/lisp-in-space-with-ron-garret/ https://corecursive.com/lisp-in-space-with-ron-garret/
- freilanzer 4y agoCool, but: "The year is 1988."
- beanjuiceII 4y agodoes that really change anything? other than ya people were doing this in lisp way back when
- dunefox 4y agoThe question was specifically about current usage.
- rurban 4y agoLisps in Space are hard real time
- freilanzer 4y agoBut AFAIK Lisp isn't in space anymore, at least actively, right? Wasn't even the remote control agent rewritten in C++?
- omginternets 4y agoSurely that doesn't matter? Seems like they can be real-time, even if they are no longer? What am I missing?
- freilanzer 4y agoYou're missing that I asked for current projects in Lisp.
- omginternets 4y agoThat's completely irrelevant, though. - Claim: "it is possible to write hard-real-time lisp, as evidenced by people having done it in the past." - You: "nobody is doing it right now" That's not a counterpoint.
- deleted 4y ago[deleted]
- freilanzer 4y agoI have no idea what you are even talking about. I'm asking about current projects in Lisp for real time, so it's very relevant. You might need to work on your reading comprehension.
- vindarel 4y agoIt is, at least, in James Webb https://www.stsci.edu/contents/newsletters/2018-volume-35-issue-03/artificial-intelligence-techniques-used-in-the-spike-planning-and-scheduling-system https://www.stsci.edu/contents/newsletters/2018-volume-35-is... for the scheduling system.
- p_l 4y agoScheduling runs ground side as normal Unix app
- discreteevent 4y agoIs there any evidence for that? Robotics is not necessarily hard real time. Hard real time means that something must complete within a tight deadline every time it executes no matter what.
- ducktective 4y ago>within a tight deadline Isn't hard real-time only about upper-bound of tasks? Like if every task could be proven to run under t seconds (not necessary small), it is eligible for being called hard real-time.
- 0xcde4c3db 4y agoFormally, yes. Practically, once t is large enough, violations of the constraint are much more likely to involve "acts of god" (power outages, rogue backhoe operators, natural disasters, wars, etc.) even if conventional best-effort techniques are applied.
- varjag 4y agoFor hard RT you need both the OS and the language runtime to maintain certain constraints, and I am not aware of Lisp implementations satisfying that. Nothing to be concerned about tho, it's a fairly small niche that is not addressed by most of the popular languages today too. (Doing soft-RT work in Common Lisp though)
- auggierose 4y agoIt's from May 2000 (https://shibaura.pure.elsevier.com/en/publications/lisp-can-be-hard-real-time https://shibaura.pure.elsevier.com/en/publications/lisp-can-...)
- mhdhn 4y agoThank you. Side note: who thinks it's a great idea not to put any publication date on a paper? And is there a rule for HN to put at least the year in the title, especially if it's not clearly visible at the top of the linked paper. There oughta be.
- capableweb 4y agoYeah, it's stupid not to include it. Sometimes you can guess it (poorly) by looking at the references, if there is more than a few. If the latest one is at 1998, you can guess the paper is from somewhere around 2-5 years after. In this particular case, latest publish reference is at 1998 and one marked as "to be published" at 2000 so that makes it a bit easier to guess pretty exactly :)
- czbond 4y agoThank you. I was bewildered why one would go to the effort in 2022 to LISP hard, or LISP real time.
- dreamcompiler 4y agoI've built hard realtime systems in Lisp and I did it because it was easier than doing the whole thing in e.g. C. The extra effort for me would have been not using Lisp.
- dunefox 4y agoSounds interesting. Can you elaborate?
- 4y ago
- willis936 4y agoOkay, now prove that your program written in Lisp will not miss cycles regardless of the data sent to it for at least the length of the mission. The issue is in being able to prove a program is deterministic. Wildcards like schedulers and garbage collectors sharing resources with code that needs to be real time are notoriously difficult to properly set bounds on behavior. If you aren't doing that then it's not hard real time.
- OliverM 4y agoAre there proofs for other languages/runtimes available? I'd love to see the level of rigour needed to demonstrate that
- WJW 4y agoOne thing I know of is the CoPilot language/library/thingy from NASA (no relation to Githubs copilot), which can takes in code in a Haskell DSL and outputs code that is guaranteed to run in constant memory and uses an equal number of cycles each loop. See it here: https://copilot-language.github.io/ https://copilot-language.github.io/ Also if you ever find yourself needing to write hard real-time code for your arduino, check out my blog post about the arduino-copilot library at https://wjwh.eu/posts/2020-01-30-arduino-copilot.html https://wjwh.eu/posts/2020-01-30-arduino-copilot.html :)
- OliverM 4y agoThank you, your blog post was a pleasure to read. CoPilot looks great!
- Ono-Sendai 4y agoMy programming language Winter has bounded memory and space usage: https://github.com/glaretechnologies/winter https://github.com/glaretechnologies/winter, for at least a subset of the language.
- kaba0 4y agoWhy would it be hard? If anything a fat runtime makes it easier - see hard-real time JVMs used in military tech. Hard real time is not too hard in general as it is usually combined with quite low performance-requirements. Boundedness itself is the important property, as opposed to soft-real time which is much more finicky (video games, audio).
- whage 4y agoIn every paper there comes a line at which I completely lose what they are talking about. If I'm lucky, this happens after the abstract/intro. In this case, this was it: "A real-time symbolic processing system on a single processor should have the following four features". What?
- singlow 4y agoreal-time - being concerned with predictable latency rather than overall throughput symbolic processing - symbolic expressions (s-expressions) being the building blocks of lisp programs single processor - not considering multitasking or multiprocessor concerns
- Test0129 4y agoTo be clear for OP hard real-time means that missing a response guarantee constitutes a total system failure.
- whage 4y agoI appreciate the clarification but what I didn't get is what "symbolic processing" has to do with "hard real-time" (who cares what the language looks like?) and similarly, how is "single processor" related to "hard real-time"
- Jtsummers 4y ago"A real-time symbolic processing system on a single processor should have the following four features" The language they're developing in/for is Lisp, which is used (a lot) for symbolic processing. That's the "symbolic processing" part. "real-time" is the constraint they're trying to achieve and relates to system performance. "single processor" is just another constraint. If you permit multiple processors then some of the problems making Lisp real-time go away or are mitigated as you can do things like shove the GC bit into a second processor and execute it in parallel. Being constrained to a single processor means you can't do this, when the GC is going it's using the full CPU and taking time away from other computations (symbolic processing, in their case).
- deleted 4y ago[deleted]
- gibsonf1 4y agoThis is very much outdated as current sbcl.org compiled lisp is in many cases faster than any other language.
- LordGrey 4y agoI love lisp and I currently use SBCL now that CCL is fading away, but I'm a bit skeptical of your claim. Can you provide sources to back that up? (This is aside from the assertion that "faster than language x" is not the same as "adheres to hard realtime constraints" which is what the overall topic is about.)
- user3939382 4y agoCan someone post this as HTML :’(