tiflolinux.org - GNU Social
  • Login

Bienvenido

  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Notices by Kartik Agaram (akkartik@merveilles.town)

  1. Kartik Agaram (akkartik@merveilles.town)'s status on Tuesday, 07-Jun-2022 10:14:05 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • zbs

    @neauoire @z I have on occasion said something similar about software. We should talk less in terms of product X using programming language Y and library Z, and more about doing task A using mechanisms B and C.

    Or imagine if we didn't compare programming languages but spoke in terms of programming language mechanisms. Ooh, I think I just figured out another reason https://github.com/jwilk/python-syntax-errors rubbed me the wrong way.

    In conversation Tuesday, 07-Jun-2022 10:14:05 CEST from merveilles.town permalink

    Attachments

    1. GitHub - jwilk/python-syntax-errors: no-op statements syntactically valid only since Python X.Y
      no-op statements syntactically valid only since Python X.Y - GitHub - jwilk/python-syntax-errors: no-op statements syntactically valid only since Python X.Y
  2. Kartik Agaram (akkartik@merveilles.town)'s status on Friday, 27-May-2022 16:05:01 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Andy Alderwick

    @neauoire @alderwick Can I ask what the motivation is for the optimizations?

    Idea: distinguish between optimizations and _idioms_. If someone's writing something in an unncessarily convoluted way, a linter is a good way to remind them of features.

    But programs are often fast enough. Nagging about optimizations might seem heavy handed. Show that sort of advice outside of build.sh, only when asked. "My app is slow, do you have any suggestions?" That way also lies a profiler.

    In conversation Friday, 27-May-2022 16:05:01 CEST from merveilles.town permalink
  3. Kartik Agaram (akkartik@merveilles.town)'s status on Friday, 27-May-2022 16:05:01 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator

    @neauoire Turning "JSR2 JMP2r" into "JMP2" (tail call elimination) does feel like it makes the code a little harder to read. There's something reassuring about the way you have a function call per line at the moment.

    In conversation Friday, 27-May-2022 16:05:01 CEST from merveilles.town permalink

    Attachments


    1. https://assets.merveilles.town/media_attachments/files/108/371/036/413/877/397/original/1413a73b47a9c8fc.png
  4. Kartik Agaram (akkartik@merveilles.town)'s status on Friday, 27-May-2022 16:05:00 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Andy Alderwick

    @neauoire @alderwick That makes sense 👍 I just feel defensive with most linters 😄

    In conversation Friday, 27-May-2022 16:05:00 CEST from merveilles.town permalink
  5. Kartik Agaram (akkartik@merveilles.town)'s status on Friday, 27-May-2022 16:04:59 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Andy Alderwick

    @neauoire @alderwick There's an interesting discussion about tail call elimination in Forth at https://wiki.c2.com/?TailCallOptimization. Neither it nor Scheme provide for pragmas to disable optimizations, I believe 🤔

    In conversation Friday, 27-May-2022 16:04:59 CEST from merveilles.town permalink
  6. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 01-May-2022 23:30:19 CEST Kartik Agaram Kartik Agaram
    • Devine Lu Ator
    • Andy Alderwick
    • ⛭ eiríkr ⛭

    @d6 @neauoire @alderwick My sense is that the term has enough meanings in this neighborhood to justify further dilution 😀

    In conversation Sunday, 01-May-2022 23:30:19 CEST from merveilles.town permalink
  7. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 01-May-2022 23:29:48 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Andy Alderwick
    • ⛭ eiríkr ⛭

    @neauoire @d6 @alderwick Can you elaborate on what get-ruler does?

    In conversation Sunday, 01-May-2022 23:29:48 CEST from merveilles.town permalink
  8. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 01-May-2022 23:29:47 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Andy Alderwick
    • ⛭ eiríkr ⛭

    @neauoire @d6 @alderwick Oh. The first execution of JMP2r returns from `@get-bound`, and the second returns from `get-bounds`.

    Wow.

    Maybe this is like an inner function? Like this pseudocode?

    fn get-bounds(a, b) return @get-bound(a), @get-bound(b) end

    Of course, that ignores the interesting mechanism you're pointing out. Perhaps what you want to do is focus on the mechanism rather than the result.

    In conversation Sunday, 01-May-2022 23:29:47 CEST from merveilles.town permalink
  9. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 01-May-2022 23:29:47 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Andy Alderwick
    • ⛭ eiríkr ⛭

    @neauoire @d6 @alderwick Tail, body. Depends on how long it is and how many legs it has, right? 😄

    In conversation Sunday, 01-May-2022 23:29:47 CEST from merveilles.town permalink
  10. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 01-May-2022 23:29:47 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Andy Alderwick
    • ⛭ eiríkr ⛭

    @neauoire @d6 @alderwick Ah, I see.

    So you have two routines sharing a single body. Maybe both together are a single multi-headed routine?

    There's also some similarity with optional arguments. Like if you had a flag that decided whether or not you run the first part of a function.

    In conversation Sunday, 01-May-2022 23:29:47 CEST from merveilles.town permalink
  11. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 01-May-2022 23:29:46 CEST Kartik Agaram Kartik Agaram
    • Devine Lu Ator
    • Andy Alderwick
    • ⛭ eiríkr ⛭

    @neauoire @d6 @alderwick Oh one candidate is 'trampoline'.

    https://en.wikipedia.org/wiki/Trampoline_(computing)

    In conversation Sunday, 01-May-2022 23:29:46 CEST from merveilles.town permalink
  12. Kartik Agaram (akkartik@merveilles.town)'s status on Thursday, 09-Dec-2021 11:07:45 CET Kartik Agaram Kartik Agaram

    How to avoid side effects

    Pay attention to all effects. Then they won't be _side_ effects.

    (Reaction after reading https://arslan.io/2019/07/03/how-to-write-idempotent-bash-scripts)

    In conversation Thursday, 09-Dec-2021 11:07:45 CET from merveilles.town permalink
  13. Kartik Agaram (akkartik@merveilles.town)'s status on Thursday, 09-Sep-2021 11:52:13 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Stanislaus Grumman

    @xiroux @neauoire Check out the Readme at https://github.com/akkartik/mu, and feel free to ask me more questions after.

    What platform are you running on?

    In conversation Thursday, 09-Sep-2021 11:52:13 CEST from merveilles.town permalink

    Attachments

    1. GitHub - akkartik/mu: Soul of a tiny new machine. More thorough tests → More comprehensible and rewrite-friendly software → More resilient society.
      Soul of a tiny new machine. More thorough tests → More comprehensible and rewrite-friendly software → More resilient society. - GitHub - akkartik/mu: Soul of a tiny new machine. More thorough tests...
  14. Kartik Agaram (akkartik@merveilles.town)'s status on Thursday, 09-Sep-2021 11:52:13 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Devine Lu Ator
    • Stanislaus Grumman

    @xiroux Yes, I was already watching this thread. Especially if you prefer something more interactive than a book, I'd be happy to answer questions.

    Some caveats, just in the spirit of full transparency:

    - Mu only supports 32-bit x86, but I'd be happy to help you look up answers to questions about 64-bit as well.

    - I'm more knowledgeable about the processor instruction set than quirks of Assembly notation. But I can try to answer questions about Assembly.

    Thanks @neauoire.

    In conversation Thursday, 09-Sep-2021 11:52:13 CEST from merveilles.town permalink
  15. Kartik Agaram (akkartik@merveilles.town)'s status on Thursday, 09-Sep-2021 11:52:12 CEST Kartik Agaram Kartik Agaram
    in reply to
    • Stanislaus Grumman

    @xiroux Cool! What OS?

    In conversation Thursday, 09-Sep-2021 11:52:12 CEST from merveilles.town permalink
  16. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 29-Aug-2021 00:14:00 CEST Kartik Agaram Kartik Agaram
    • Ekaitz Zárraga 👹
    • roy niang
    • opfez

    @ekaitz_zarraga What processor do you tend to run it on (even if emulated)? @opfez @royniang

    In conversation Sunday, 29-Aug-2021 00:14:00 CEST from merveilles.town permalink
  17. Kartik Agaram (akkartik@merveilles.town)'s status on Tuesday, 25-May-2021 21:31:41 CEST Kartik Agaram Kartik Agaram
    in reply to
    • s-ol

    @s_ol I think I see the constraints now.

    A pseudoinstruction might be an option. Represent auipc+jalr altogether, and mention the label just once.

    This whole RISC-V feature makes me nervous. Are there any special boundaries where auipc being on one side and jalr being on the other would lead to subtle problems?

    Can you -1 more in auipc and keep offset positive?

    CISC looks pretty good right now 🙂

    You haven't really said anything about your goals? I get the sense they're different from mine.

    In conversation Tuesday, 25-May-2021 21:31:41 CEST from merveilles.town permalink
  18. Kartik Agaram (akkartik@merveilles.town)'s status on Tuesday, 25-May-2021 21:31:41 CEST Kartik Agaram Kartik Agaram
    in reply to
    • s-ol

    @s_ol The basics make sense, though I don't understand the sign bit. Is the instruction grabbing 11 LSBs and 1 MSB?

    The slicing operators seem find, but I'm not sure how I feel about the `label+4` syntax. One heuristic I used in SubX was to not try to use all the available power of the instruction set. Are you sure you need far jumps to unaligned addresses? Maybe organize code in pages, with cross-page jumps restricted to the start. A dispatch table or something.

    In conversation Tuesday, 25-May-2021 21:31:41 CEST from merveilles.town permalink
  19. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 23-May-2021 23:55:35 CEST Kartik Agaram Kartik Agaram
    in reply to
    • s-ol

    @s_ol Oh interesting! I see in my browser history that I actually searched for 'aiupc', which is probably why I got that page.

    Thanks for pointing it out. I get annoyed when people spell Gandhi as Ghandi 🙂

    In conversation Sunday, 23-May-2021 23:55:35 CEST from merveilles.town permalink
  20. Kartik Agaram (akkartik@merveilles.town)'s status on Sunday, 23-May-2021 23:55:35 CEST Kartik Agaram Kartik Agaram
    in reply to
    • s-ol

    @s_ol Yeah that aiupc construct is a bit strange: https://stackoverflow.com/questions/55314747/risc-v-user-level-reference-or-reference-implementation

    Even outside of our weird notations 🙂 I'm struggling to understand how a compiler would use it. Are they expecting that functions are aligned at 4KB boundaries or something?

    Oh, this is only for far jumps. So that alignment constraint might actually be a reasonable choice.

    In conversation Sunday, 23-May-2021 23:55:35 CEST from merveilles.town permalink
  • Before

User actions

    Kartik Agaram

    Kartik Agaram

    Barbarian Programmer.Promiscuous dependencies are the root of all evil.

    Tags
    • (None)
    ActivityPub
    Remote Profile

    Following 0

      Followers 0

        Groups 0

          Statistics

          User ID
          4972
          Member since
          23 May 2021
          Notices
          21
          Daily average
          0

          Feeds

          • Atom
          • Help
          • About
          • FAQ
          • TOS
          • Privacy
          • Source
          • Version
          • Contact

          tiflolinux.org - GNU Social is a social network, courtesy of tiflolinux.org. It runs on GNU social, version 2.0.1-beta0, available under the GNU Affero General Public License.

          Creative Commons Attribution 3.0 All tiflolinux.org - GNU Social content and data are available under the Creative Commons Attribution 3.0 license.