X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=qidJ++vgkkmIioox7qj5FMlBKjEsCnERd2lEt+tlJ18=; b=kG5hUV0JS67y9RDvBP501/5ktfrEalneirZJ16djbKyfr04JpSGAgEmafc+3Jg3RVC YX1jRNUdScNpfa9dm8qCSFHOQykOtDESg/YUN7oicsyjn+ruN4VhgP3L+nNQ053tFQ7e OqVHbmha+dWVfm9qBHq7GDnUWt1Q/Rn8eDp+9c+0otqcrBEEsq1UHUriOZ1Oo2nadCOU 6P93tyudoV9Y5zF+TVuwZzmU3K3OEGGNJNpwOlTKXsTH7hLAaMF1R2KQDWx8yomxQeGs mHemBO/LY81NF+j/19oRbzU0rJmSMPdBORzzef1x1JZEqK66+g9SimiN0yiAGP1LYSg3 Jufw== X-Received: by 10.112.199.137 with SMTP id jk9mr9373499lbc.86.1445031032803; Fri, 16 Oct 2015 14:30:32 -0700 (PDT) Date: Sat, 17 Oct 2015 00:30:30 +0300 From: "Vladimir Zhbanov (vzhbanov AT gmail DOT com) [via geda-user AT delorie DOT com]" To: gEDA users mailing list Subject: Re: [geda-user] A lesson from gnet-makefile Message-ID: <20151016213030.GC2813@localhost.localdomain> Mail-Followup-To: gEDA users mailing list References: <1042003D-82E2-40F0-AB60-8186580C46AD AT noqsi DOT com> <201510121905 DOT t9CJ5T9W026297 AT envy DOT delorie DOT com> <88EA58F5-2B23-498A-9E5B-84054976DBED AT noqsi DOT com> <4D3CD563-D8EE-4B2A-975A-AC2B573960FF AT noqsi DOT com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Tue, Oct 13, 2015 at 02:02:53PM -0400, Evan Foss (evanfoss AT gmail DOT com) [via geda-user AT delorie DOT com] wrote: > On Tue, Oct 13, 2015 at 12:23 PM, John Doty wrote: > > > > On Oct 12, 2015, at 9:56 PM, Evan Foss (evanfoss AT gmail DOT com) [via > > geda-user AT delorie DOT com] wrote: > > > >>> Translation to the various layout and simulation tools is then a > >>> job for gnetlist or xorn. Pcb, having no mechanism to do anything > >>> with this data, isn't terribly relevant at present. > >> > >> Well there needs to be something that works like s_conn and it's > >> partners in gnetlist that walks the list mapping the nets but with > >> this added metadata. > > > > Walking lists is easy in Lisp: gnet-makefile.scm has functions like: > > I understand that but I would really like to go back and do more of > this in C. The final parsing of the net attributes into xyz output > format should be in scheme. Although I could be wrong. Do it the way you like it. I hope, if we'll have algorithms we need, we'll be able to express them in the language we want. I can only note that Scheme is a hi-level language wrt C and sometimes (not always) it's better to express things in it rather than in C. For example, the following code from gsymcheck ------------------------8<-------------------------- SCM_DEFINE (...) { TOPLEVEL* pr_current = edascm_c_current_toplevel (); GList *iter; PAGE *p_current; SCM page_s; SCM return_status = scm_from_int (0); /* C code to check all symbols */ for ( iter = geda_list_get_glist( pr_current->pages ); iter != NULL; iter = g_list_next( iter ) ) { p_current = (PAGE *)iter->data; page_s = edascm_from_page (p_current); return_status = scm_sum (return_status, check_symbol (page_s)); } return return_status; } ------------------------>8-------------------------- can be replaced just with ------------------------8<-------------------------- (apply + (map check-symbol (active-pages))) ------------------------>8-------------------------- in guile module (I'm just working on this)