HackerLangs
TopNewTrendsCommentsPastAskShowJobs

tzot

no profile record

Submissions

Python VM in Assembly (contributor is Claude)

github.com
5 points·by tzot·4 เดือนที่ผ่านมา·4 comments

comments

tzot
·24 วันที่ผ่านมา·discuss
I would use HTTP/1.0 without a need for Connection: close. Unless 1.0 is not generally supported anymore, but this is not the case in my experience.
tzot
·เดือนที่แล้ว·discuss
The debate is if 2000 is the first year of the 21st century or the last year of the 20th century. (btw I agree with the latter)
tzot
·2 เดือนที่ผ่านมา·discuss
You say all wrong and then go on about explaining I'm half wrong. I feel there's a pattern (or maybe another joke that whooshed over my head) here but it is obvious to me that I am not your intended stand-up comedy audience and I should ask for my money back. :)
tzot
·2 เดือนที่ผ่านมา·discuss
I see that and I raise Elastic Tabstops!

https://nick-gravgaard.com/elastic-tabstops/
tzot
·2 เดือนที่ผ่านมา·discuss
> > If I were to make my own programming language, it would look an awful lot like Python.

> I agree, Python allows anyone to write bad code, but makes up for it by running the code slow enough that it can't do real damage.

In the same sentence you agree with the implied beauty of the syntax of Python and then go on sarcastically about the performance of CPython. Assumably you deliberately mixed language and implementation because you needed a soapbox, so hey, here's my comment to which you can reply and continue your rhetoric.
tzot
·2 เดือนที่ผ่านมา·discuss
I blame font keming for that.
tzot
·3 เดือนที่ผ่านมา·discuss
Oh, yeah! And I believe there are not many games which have Linux, Windows and MacOS versions allowing interplay. Several years ago we had one or two LAN parties with hardware running all three operating systems.
tzot
·3 เดือนที่ผ่านมา·discuss
I tried this variant of JetBrains Mono and it had the perfect glyph width (reportedly -6%) for my screen and window sizes: NRK Mono Condensed from https://github.com/N-R-K/NRK-Mono. I also agree with almost all of the other modifications mentioned in the github page under “Some notable changes are:”

Now I can have side-by-side two editors plus a Structure or Project pane at the left in PyCharm while having 120 chars visible in both editors.
tzot
·4 เดือนที่ผ่านมา·discuss
Well, we can use memoryview for the dict generation avoiding creation of string objects until the time for the output:

    import re, operator
    def count_words(filename):
        with open(filename, 'rb') as fp:
            data= memoryview(fp.read())
        word_counts= {}
        for match in re.finditer(br'\S+', data):
            word= data[match.start(): match.end()]
            try:
                word_counts[word]+= 1
            except KeyError:
                word_counts[word]= 1
        word_counts= sorted(word_counts.items(), key=operator.itemgetter(1), reverse=True)
        for word, count in word_counts:
            print(word.tobytes().decode(), count)
We could also use `mmap.mmap`.
tzot
·4 เดือนที่ผ่านมา·discuss
For the most simple case of a single job, I use the job number (`[1]` in the example) with %-notation for the background jobs in kill (which is typically a shell builtin):

    $ cat
    ^Z[1] + Stopped                    cat
    $ kill %1
tzot
·4 เดือนที่ผ่านมา·discuss
On scripts that might handle filenames with spaces, I include:

    IFS='   ''
    '
Hint: the spaces between the first two apostrophes are actually one <Tab>.

This does not affect the already written script (you don't need to press Tab instead of space to separate commands and arguments in the script itself), but by making <Tab> and <LF> be the “internal field separators” will allow globbing with less quoting worries while still allowing for `files=$(ls)` constructs.

Example:

    IFS='   ''
    '
    echo hello >/tmp/"some_unique_prefix in tmp"
    cat /tmp/some_unique_prefix*
    fn="My CV.txt"
    echo "I'm alive" >/tmp/$fn
    cat /tmp/$fn
Of course this will still fail if there happens to be a filename with <Tab> in it.
tzot
·4 เดือนที่ผ่านมา·discuss
> # f2 is ^[OQ; to double check, run `xargs` and then press f2

I remember using `cat -v` before learning that `xargs` exists… or maybe before `xargs` actually existed on systems I used :)
tzot
·4 เดือนที่ผ่านมา·discuss
Maybe you understood image as in photo-image instead of image as in memory-image (like disk-image); a glorified memory dump, more-or-less.
tzot
·4 เดือนที่ผ่านมา·discuss
I had this issue too, so I remapped Ctrl-W/Shift-Ctrl-W to Ctrl-\/Shift-Ctrl-\ . (Also git operations became two-key sequences, starting with Ctrl-G and that damn Ctrl-K stopped being the shortcut for commit.)
tzot
·4 เดือนที่ผ่านมา·discuss
An implementation from zero of a Python 3.12 VM using x86-64 assembly.
tzot
·6 เดือนที่ผ่านมา·discuss
I always have been using em-dashes with specific spacing:

1. replacing parentheses —given that the em-dash in pairs for me mark more-relevant-to-the-main content than a parenthesized expression would— so I use the same spacing as `()`

2. replacing colon or just finishing the sentence with a subsentence— so the spacing goes like for a colon.

Probably unfounded grammatically and against any style guides, but this spacing makes sense to me.
tzot
·6 เดือนที่ผ่านมา·discuss
And some time later, someone shouts “72!” Everyone chuckles except from the one in the corner cell, who laughs so loud and for so long people think he'll have a heart attack. When eventually he stops laughing, someone yells: “Hey Fred, why did you laugh so much?” “I'd never heard that one!”
tzot
·7 เดือนที่ผ่านมา·discuss
> Imagine history documentaries where they take an old photo, free objects from the background

Even using commas, if you leave the ambiguous “free” I suggest you prefix “objects” with “the” or “any”.
tzot
·9 เดือนที่ผ่านมา·discuss
Did you mean “not great, not terrible” or was the change deliberate?
tzot
·10 เดือนที่ผ่านมา·discuss
> Something about having Cyrillic where the lower-case character set should be, just tickles my hacker heart.

We did the same on the ZX Spectrum in Greece for our programs: replace the lowercase latin letters with the keyboard-matching greek letters.

I still remember the vulgar ΣΨΡΟΛΛ? when the screen filled up and the machine asked your permission to scroll!