On 08/28/18 14:16, Brian Callahan wrote:

On 08/28/18 12:16, Stuart Henderson wrote:
On 2018/08/28 10:52, Brian Callahan wrote:
On 08/28/18 09:36, Stuart Henderson wrote:
On 2018/08/28 15:11, Alessandro DE LAURENZIS wrote:
Hi Stuart,

On 2018-08-28 13:46, Stuart Henderson wrote:
[...]
I've reworded DESCR a bit, I think this flows a bit better?

==
graywolf is a tool for placement and routing used as part of a tool
chain for synthesizing digital circuits (VLSI), mainly intended for use
used together with qflow (http://opencircuitdesign.com/qflow/).
This is definitely confusing: synthesis isn't involved during placement (and routing). Moreover, graywolf (differently from TimberWolf) doesn't have
routing algorithms at all.

Maybe:

graywolf is a program for placement of VLSI digital circuits,
mainly intended as part of qflow tool-chain
(http://opencircuitdesign.com/qflow/).
Yes that sounds good.
I'm ok with this too.

It is a fork of the last open-source version of TimberWolf (which is
now commercial software) and has been modified to streamline the build
process and make it behave more as a standard command-line tool.

It is based on the general combinatorial optimization technique known as simulated annealing and is suitable for standard cell, macro/custom
cell, and gate-array professional-grade placement.
==
This part is ok, I think.

Is there anything simple that can be done about all the "format
specifies
type 'int' but the a rgument has type 'INT' (aka 'long') [-Wformat]"
warnings during build?
Hope someone with more experience than me can answer to this point,
nonetheless I'll have a look.
It looks like inconsistent use of format strings.
WRKSRC/src/Ylib/queue.c:122 has this, for example

#if SIZEOF_VOID_P == 64
             fprintf( stderr,"%ld ", (INT)temp->data ) ;
#else
             fprintf( stderr,"%d ", (INT)temp->data ) ;
#endif

And other places don't. So I guess it's just a matter of someone going
through it all and making the mechanical changes or convincing upstream to
do this in a more sensible way (maybe with size_t or something).
: /* -------------------------------------------------------
:     Use typedefs to make the code more portable.  User
:     just changes size here and all of the code will be
:     modified.  To avoid complaints in lint use defines
:     instead of typedefs. Typedefs are better for
:     errorchecking by the compiler.
: ---------------------------------------------------------- */
: #ifndef lint
:
: /* Somewhat more rigorous 64-bit compatibility added by Tim, May 2, 2011 */
: #ifndef SIZEOF_VOID_P
: #define SIZEOF_VOID_P 32
: #endif
:
: #if SIZEOF_VOID_P == 32
: typedef int INT ;
: #elif SIZEOF_VOID_P == 64
: typedef long INT ;
: #else
: ERROR: Cannot compile without knowing the size of a pointer. See Ylib/include/base.h
: #endif

*scratches head*

Heh. I saw that too. I guess that means Alessandro should advocate for a more sensible way :)

Anyway in most places it's using %d and an int on 32-bit and a type the
same size as an int on 64-bit so it's not going to actually break as a
result, just going to trigger extra compiler warnings.

OK to import with the revised DESCR.


Thanks. I'll commit it shortly.

~Brian


Imported, and qrouter was imported earlier today.

Thanks everyone!

~Brian

Reply via email to