From: "lkcl ." <luke.leighton@gmail.com>
To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
Subject: [libre-riscv-dev] POWER simulator
Date: Wed, 1 Apr 2020 15:55:31 +0000
Message-ID: <CAPweEDyxqCXF8wuV36WWeML_wPSPA8KoSYgRP3uGxigKtSzc2g@mail.gmail.com> (raw)
i just wanted to write a bit to everyone about what it's like when
using parsers like this. it's... very weird :) you create all these
pieces, you don't know if any of them will work, and then all of a
sudden the work's entirely done and it all works and you can go home.
it's horribly confusing. the effectiveness is so high that it's
like... "is that it?? surely it had to be harder than that??"
the last time i did something like this it was with Webkit, first
adding gobject bindings and then also adding python bindings i think
i mentioned before: it took me under 10 days to add support for python
bindings, by taking:
* Mozilla's HTML5 IDL compiler and getting it to understand the 350
Webkit-formatted HTML5 IDL files (1 day)
* python-gobject's compiler and getting it to understand the AST that
came out of the Mozilla IDL compiler (1 day)
* writing some code-generators for creating python c-based modules (3 days)
* writing some python "recognisers" for Webkit c++ datatypes (2-3 days)
* debugging (2-3 days)
that was *it*. 350 classes, 2,000 functions, and over TWENTY thousand
properties - all auto-generated - done in 10 days. full python
bindings, a peer of what is available for javascript, to HTML5.
this is no different, just on a smaller scale. it means placing quite
a lot of trust in auto-generated code, which is where the unit tests
come critically into play.
the code-fragments are actually compiled into a python AST, however i
discovered a library that can turn those back into actual python code.
this can be used to actually *output* python source code, which means
that we have something to examine (for bugs).
l.
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
next reply index
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-01 15:55 lkcl . [this message]
2020-04-01 17:04 ` Immanuel, Yehowshua U
2020-04-01 17:43 ` Luke Kenneth Casson Leighton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAPweEDyxqCXF8wuV36WWeML_wPSPA8KoSYgRP3uGxigKtSzc2g@mail.gmail.com \
--to=luke.leighton@gmail.com \
--cc=libre-riscv-dev@lists.libre-riscv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Libre RISC-V Mailing list Archives (accessible via public-inbox)
Archives are clonable: git clone --mirror https://inbox.libre-soc.org/libre-riscv-dev
Example config snippet for mirrors
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git