Just tried it and it seems to have a few problems with Msys-based assumptions: I eventually found it works OK if I start it from the Msys terminal but we should in theory be able to get everything except scripts working without Msys.
Anyway I'm not great at debugging Tcl but when first starting up I got this error:
couldn't write file "/dev/null": no such file or directory
while executing
"exec -- d.font romans >& /dev/null"
("eval" body line 1)
invoked from within
"eval [list exec -- $cmd] $args >& $devnull"
(procedure "run" line 12)
invoked from within
"run d.font romans"
("eval" body line 1)
invoked from within
"eval run $cmd $args"
(procedure "runcmd" line 6)
invoked from within
"runcmd "d.font romans""
(procedure "MapCanvas::runprograms" line 63)
invoked from within
"MapCanvas::runprograms $mon [expr {$mymodified != 0}]"
(procedure "MapCanvas::drawmap" line 38)
invoked from within
"MapCanvas::drawmap $mon"
(procedure "MapCanvas::display_server" line 9)
invoked from within
"MapCanvas::display_server"
("after" script)
Found a place in gm.tcl that seemed to be setting an mingw variable to true if Msys was detected - I changed that to be unconditional and got a bit further to the following error when trying to display a map:
can't read "_data(.gronsole.gronsole,2,donecmd)": no such element in array
while executing
"set donecmd $_data($path,$ci,donecmd)"
(procedure "Gronsole::done_command" line 3)
invoked from within
"Gronsole::done_command $path $ci"
(procedure "Gronsole::execout" line 26)
invoked from within
"Gronsole::execout $path $cmd $ci Gronsole::execwait"
(procedure "Gronsole::run_wait" line 6)
invoked from within
"Gronsole::run_wait .gronsole.gronsole {d.rast map=geology@PERMANENT -o} gism"
("eval" body line 1)
invoked from within
"eval Gronsole::$cmd .gronsole.gronsole $args"
(procedure ".gronsole.gronsole" line 1)
invoked from within
"$gronsole run_wait $cmd gism"
(procedure "run_panel" line 4)
invoked from within
"run_panel $cmd"
(procedure "GmCommonLayer::display_commands" line 33)
invoked from within
"GmCommonLayer::display_commands $namespace $id [list $cmd]"
(procedure "GmCommonLayer::display_command" line 2)
invoked from within
"GmCommonLayer::display_command [namespace current] $id $cmd"
(procedure "GmRaster::display" line 63)
invoked from within
"GmRaster::display $node $mod"
("raster" arm line 2)
invoked from within
"switch $type {
group {
GmGroup::display $node $mod
}
raster {
GmRaster::display $node $mod
}
labels {
GmLabels::disp..."
(procedure "GmTree::display_node" line 7)
invoked from within
"GmTree::display_node $n $mod"
(procedure "GmGroup::display" line 22)
invoked from within
"GmGroup::display "root" $mod"
(procedure "MapCanvas::runprograms" line 63)
invoked from within
"MapCanvas::runprograms $mon [expr {$mymodified != 0}]"
(procedure "MapCanvas::drawmap" line 38)
invoked from within
"MapCanvas::drawmap $mon"
(procedure "MapCanvas::display_server" line 9)
invoked from within
"MapCanvas::display_server"
("after" script)
Hope it's helpful for debugging.
Paul