-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite gnetlist in scheme #139
Conversation
@vzh Build, WARNING **: Failed to load config from "/usr/local/etc/xdg/gEDA/geda-system.conf": Error opening file /usr/local/etc/xdg/gEDA/geda-system.conf: No such file or directory WARNING **: Failed to load config from "/home/dmn/lepton.tests/try_vzh_netlist/geda.conf": Error opening file /home/dmn/lepton.tests/try_vzh_netlist/geda.conf: No such file or directory CRITICAL **: geda_text_object_calculate_bounds: assertion 'toplevel->rendered_text_bounds_func != NULL' failed CRITICAL **: geda_text_object_calculate_bounds: assertion 'toplevel->rendered_text_bounds_func != NULL' failed CRITICAL **: geda_text_object_calculate_bounds: assertion 'toplevel->rendered_text_bounds_func != NULL' failed CRITICAL **: geda_text_object_calculate_bounds: assertion 'toplevel->rendered_text_bounds_func != NULL' failed CRITICAL **: geda_text_object_calculate_bounds: assertion 'toplevel->rendered_text_bounds_func != NULL' failed CRITICAL **: Could not find refdes on component and could not find any special attributes! CRITICAL **: Could not find refdes on component and could not find any special attributes! ;;; WARNING: compilation of /home/dmn/lepton/bin.vzh/bin/lepton-netlist failed: |
@graahnul-grom Thanks for testing and feedback! |
The new test replaces netattrib-geda.out which is the same as netattrib-config_net_naming_priority_net.out since by default net= attribute priority is set.
This commit fixes several net= renaming issues visible in test output files for netattrib.sch: - Renaming: out3 -> signal3, out8 -> signal 8 due to netname-attribute-priority set to #f (net= attribute is preferred). - Renaming: signal12x -> signal12 due to using of the first corresponding pin found in the first net= attribute of a symbol. - Renaming: unnamed_net2 -> unnamed_net4 due to the fact that all nets directly connected together without netname= on any segment are considered to be unnamed before renaming with net=. - The same as above for unconnected pins (see 'spice-sdb' and 'spice' backend output changes). - Fixed duplication of some nets if they are named with two net= attributes on different symbols (see signal6 and signal9). - Renamining of unconnected pins and unnamed nets is now visible in the output of 'geda' backend.
This commit removes parsing of the uref= attribute, which has been deprecated for a long time.
bottom.sym has no pinlabel= on one pin. bottom.sch has no refdes= on one port.
This attribute has been deprecated for a long time, so there is no point to keep it as it is these days.
Structure `CPINLIST' has been changed so it contains now field `hierarchy_tag' and doesn't contain `nets'. Structures `NET' and `st_net' have been removed as well as C functions dealing with them (s_net.c). Hash tables are not used to track visited objects any more since their using increases the time of passing tests.
Before, connection refdes and pinnumber were transformed into one string and then were split again to obtain corresponding values and check if they do or do not belong to net= attribute. This magic has been eliminated and now 'net-power symbol is used for the same task. This avoids special checks for using `%pin-net-prefix' as a refdes value.
There is no need to make connection pairs package-pinnumber any more, so it is now possible to create <pin-net> records "on the fly". The logic (inherited from C code) has been simplified and some procedures were removed.
Working in the top test directory instead of specialized one leads to the situation that processing of rc-files supposed to be processed is missing.
This procedure is needed to move gnetlist logging initialisation to Scheme code.
This commit also fixes several backends by moving `use-modules' for required modules into them, thus avoiding re-exporting several procedures in the (gnetlist) module.
-L option is still tested in `hierarchy-postload' test.
When no backend name was specified on command line, lepton-netlist did not work even if the interactive mode was set.
This is probably a bug in Guile-2.13. The option `--list-backends' did not work since instead of stock `sort' function Guile used same named `(gnetlist sort)' module's #<directory> structure. This has been fixed by using another function for sorting.
This makes the output more consistent and allows to easily find the culprit symbol in schematics.
This ensures backward compatibility with `gnetlist' that used liblepton's function f_open_flags() which parses "gafrc" in every schematic file's directory.
…able. Some programs, e.g. `lepton-netlist', don't need to render placeholders, so this step is just omitted to avoid critical assertion failures in geda_text_object_calculate_bounds() when toplevel rendering function is not set.
d5a3053
to
19e5fb0
Compare
Temporary fixed CI and rebased the branch. It works now. |
It works! |
Indeed, I've missed that. I was sure I had the compatibility symlink installed. At least, in one of my local branch :-) |
As far as I can tell, the new |
@graahnul-grom Thanks!
You can try it ;-)
I think so. Moreover, I would offer the structure as follows:
So we would get a structure with modules named, say, |
@vzh Please take a look at this: https://github.com/graahnul-grom/lepton-eda/commits/tb_016_gsch2pcb_hcod |
@graahnul-grom I think
So, IIUC, you want to use some custom backends to work with PCB, right? |
@graahnul-grom And please do a PR with your changes since I've merged this PR. |
This branch finishes rewriting of gnetlist in Scheme.
This fixes part of #142, first found attached net= for a pin overrides its net name, or first inherited net= if no attached one found, though there is no user visible warning yet.
This also closes #144, and closes #145.