all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Hartmut Goebel <h.goebel@crazy-compilers.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 30711@debbugs.gnu.org
Subject: [bug#30711] [PATCH 1/1] guix: graph: Add Trival Graph Format (TGF) backend.
Date: Mon, 5 Mar 2018 22:12:44 +0100	[thread overview]
Message-ID: <f4288cc3-c383-0a59-a73e-13a8a870893d@crazy-compilers.com> (raw)
In-Reply-To: <87h8pu8msv.fsf@gnu.org>

Am 05.03.2018 um 18:17 schrieb Ludovic Courtès:
> Can you tell us more about the Trivial Graph Format? 

This is a *very* simple format, see
https://en.wikipedia.org/wiki/Trivial_Graph_Format. You can only define
nodes, edges and labels. Edges are always directed. I don't know whether
it is wide-spread. By chance I used it to import data into yEd
(non-free, by chance mentioned in the Wikipedia-article), which allows
to select quite some different graph layouts.

So the first decision should be whether TFG should be included.

(Alternativly, for importing into yEd, a simple GraphML should work,
too.So I could implement that, which might be of more widespread use.)

>> -(define (emit-edge id1 id2 port)
>> +(define (emit-edge id1 label1 id2 label2 port)
>>    (format port "  \"~a\" -> \"~a\" [color = ~a];~%"
>>            id1 id2 (pop-color id1)))
> This is orthogonal to adding a new format, so it should probably be a
> separate patch.

Will split up, when TGF backend is accepted.
>> +(define (emit-tgf-edge id1 label1 id2 label2 port)
>> +  (format port "~a ~a~%" label1 label2))
> This is probably incorrect because labels do not necessarily uniquely
> identify nodes.  This is why the API distinguishes node identifiers and
> labels.

Following you answer bug #30710 (graph gives duplicate edges) this is
true and this implementation is wrong.

TGF requires all nodes to be defined prior to any of their edges,
otherwise the edge's Ids will be taken as labels. Thus the export-graph
needs to be changed to first emit all nodes and then the edges. Due do
my little guile-knowledge I did not manage to change the code accordingly.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

  reply	other threads:[~2018-03-05 21:13 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-05 11:41 [bug#30711] [PATCH 1/1] guix: graph: Add Trival Graph Format (TGF) backend Hartmut Goebel
2018-03-05 17:17 ` Ludovic Courtès
2018-03-05 21:12   ` Hartmut Goebel [this message]
2018-03-06 10:32     ` Ludovic Courtès
2018-03-06 20:20       ` bug#30711: " Hartmut Goebel
2018-03-06 21:05         ` [bug#30711] " Björn Höfling
2018-03-06 21:23           ` Hartmut Goebel
2018-03-12 14:30             ` Ludovic Courtès

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=f4288cc3-c383-0a59-a73e-13a8a870893d@crazy-compilers.com \
    --to=h.goebel@crazy-compilers.com \
    --cc=30711@debbugs.gnu.org \
    --cc=ludo@gnu.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.