[HN Gopher] BF-SYS: A fantasy computer that uses Brainfuck as it...
___________________________________________________________________
BF-SYS: A fantasy computer that uses Brainfuck as its instruction
set
Author : todsacerdoti
Score : 36 points
Date : 2023-12-12 07:23 UTC (15 hours ago)
(HTM) web link (brainfuck.zptr.cc)
(TXT) w3m dump (brainfuck.zptr.cc)
| bryanrasmussen wrote:
| I just had to enter a complain to the Cisco security umbrella
| that my work uses - "I am getting tired of the high quality
| security checks that uses scary words in the url as a metric..."
| Traubenfuchs wrote:
| If you have admin rights, you can disable the umbrella
| trashware, apparently no one notices.
|
| https://gist.github.com/jasmas/4976d359c00726cd3be1c9828aadd...
|
| I think that old script needs a path adaption.
| bryanrasmussen wrote:
| thanks, will check it out.
| Filligree wrote:
| Nobody notices unless you have some sort of security event,
| at which point it's ten times as bad. If you're confident
| that won't happen, sure...
| bryanrasmussen wrote:
| sure, but on the other hand one time when this project
| I'm on was just starting out I put a link on our teams
| channel to one of the netlify deployment builds for a PR
| I wanted a tester to test and I got an urgent message
| demanding I explain why I was sharing dangerous links
| over teams trying to infect my coworkers.
|
| So there's only so safe one can reasonably stay.
| sebastianconcpt wrote:
| Okay, but why?
| royjacobs wrote:
| Counterpoint: why not?
| wang_li wrote:
| They could have spent the time doing something good for
| humanity, like making their bed.
| doublerabbit wrote:
| But they did do something good for humanity, create
| something that gave me two seconds of joy. Depression makes
| it hard for me to enjoy.
| BirAdam wrote:
| Because humans. Of course someone did; there's always one.
| blinding-streak wrote:
| Does anyone actually use brainfuck?
| superbatfish wrote:
| Honestly, this might be an unpopular opinion, but I'll just say
| it: Brainfuck is not a great programming language for
| production use-cases.
| jerf wrote:
| Meh, Brainfuck is clearly inadequate as the base for a modern
| computer.
|
| _Concurrent_ Brainfuck, now, that 's where it's at. Forget
| "GPUs" and their measly "thousands" of compute units... can you
| imagine how many Brainfuck cores we can fit on to a system with a
| 5nm process? Millions, probably.
|
| If there is any system that deserves to be tagged _inconceivable
| performance_ , it would be such a system.
| BirAdam wrote:
| I feel like the NUMA penalty would be high, and the
| coordination between so many execution units would be...
| painful.
|
| That said, with someone clever enough working on it, it would
| be boss.
| jerf wrote:
| NUMA is for when you have expensive processors, hence few
| processors, and need to share the memory. This definitely
| calls for just giving what would be each NUMA node its own
| few-hundred-thousand CPUs and letting them use a
| communication bus directly to talk among themselves.
|
| "Just". Such a wonderful word in these sorts of
| conversations. All we have to do is "just" compile modern
| languages into Brainfuck for these processors, no problem.
| All we have to do is "just" build the hardware for the rest
| of the system on a radically different paradigm than all
| current computers. I'm sure we can "just" repurpose some
| FPGAs for this for prototype purposes. It's all so easy here
| in "just"land I'm surprised we don't "just" do it.
| aeonik wrote:
| GreenArrays have really cool chip that boasts "the most
| power efficient per instruction executed" when they
| released it. On the order of picojoules per cycle IIRC.
|
| The chip has 144 independent computers (not processors ->
| computers)
|
| The inventor of the Forth programming language, Chuck
| Moore, developed it, and is designed to execute with this
| parallel model in mind. A parallel Brainfuck system might
| be a cool project to port over to this platform.
|
| https://www.greenarraychips.com/
|
| Here is a talk given at Strange Loop by Chuck:
| https://youtu.be/0PclgBd6_Zs?si=r8FqQo4LUvdFmHbd
| jerf wrote:
| Yeah, I had that in mind when this idea jumped unbidden
| into my head.
|
| With something less blindlingly stupid than brainfuck,
| it's a legitimately interesting architecture. I fear
| between CPUs, GPUs, and the fact that apparently we're
| going straight to custom hardware for neural nets, there
| isn't a niche for this in our world. But there certainly
| is a parallel universe in which we went down this road
| instead starting circa the late 1970s, and in _that_
| universe it is the GPUs and custom neural net
| architectures that are facing the uphill battle because
| while they may be better at their task than the 2048
| "conventional" CPU systems in that world, they have a
| hard time being better _enough_ to justify the
| investment.
| aeonik wrote:
| I did it, I took the plunge and just bought a dev board.
|
| You are definitely right on with regard to the custom
| hardware, but I still want want to experiment with it,
| and I'm pretty sure there will be good niches for such
| flexibility/low power operations.
|
| There are still a lot of problems that are solved/need
| solving in which neural nets are superfluous/overkill for
| (I think).
|
| I might try my hand at some DSP for radio or audio to
| start.
|
| I'll also think I'm gonna try their Forth implementation,
| I've never used it before, but it seems like a pretty
| neat language.
|
| Maybe Uiua stack/array programming would make for a
| better port down the line.
| thriftwy wrote:
| In 2023 I would expect at least a Brainfuck FPGA. Wouldn't be
| that hard to do. I bed somebody did that.
| fhars wrote:
| You'd win.
| https://people.csail.mit.edu/wjun/papers/sigtbd16.pdf
| drdeca wrote:
| Do I understand correctly that each frame one is to call the
| output/"." command 33 _(number of pixels) times, 32_ (number of
| pixels) times for audio, and (number of pixels) for drawing to
| the screen?
|
| Hm, and, the way to do this.. would it be to, before a part where
| you actually output the output, you first store what you intend
| to output in region of the tape, and then go through that part to
| make the output?
|
| Also, what happens if the computations take too long and you
| don't have time to compute the frame?
| Joker_vD wrote:
| Okay, let's actually talk about the facilities provided by the
| project instead of Brainfuck in general, shall we?
|
| First of all, the sound channels: 10/20/30/.../310/320 Hz? What?
| 10 and 20 Hz are inaudible frequencies, and A of the first octave
| 440 Hz which you can't play.
|
| As for the actual output mechanism: The output
| instruction (.) increments the output pointer. If the output
| pointer is divisible by 33, it changes the delay of a sound
| channel to the value at the current memory cell. Otherwise, it
| changes a pixel on the screen to the value at the current memory
| cell.
|
| What is an "output pointer"? The delay of which sound channel,
| exactly, is changed? And similarly, which pixel on the screen,
| exactly, is changed? What about decrementing the output pointer?
___________________________________________________________________
(page generated 2023-12-12 23:02 UTC)