Opened 11 years ago

Closed 7 years ago

#462 closed defect (fixed)

Tcl interp->result deprecated

Reported by: neteler Owned by: grass-dev@…
Priority: minor Milestone: 6.4.3
Component: Tcl/Tk Version: svn-releasebranch64
Keywords: v.digit, nviz, libform, tcl8.6 Cc: fundawang
CPU: All Platform: All

Description

In Tcl, interp->result is (really) deprecated from Tcl8.6 onwards. Still it is used in several modules:

./lib/form/form.c
./vector/v.digit/form.c
./visualization/nviz/src/anim_support.c
./visualization/nviz/src/cutplane_obj.c
./visualization/nviz/src/do_zoom.c
./visualization/nviz/src/draw.c
./visualization/nviz/src/exag.c
./visualization/nviz/src/lights.c
./visualization/nviz/src/map_obj.c
./visualization/nviz/src/misc.c
./visualization/nviz/src/mkdspf_main.c
./visualization/nviz/src/nvizAppInit.c
./visualization/nviz/src/nviz_init.c
./visualization/nviz/src/position.c
./visualization/nviz/src/togl_flythrough.c
./visualization/nviz/src/volume.c

Funda Wang has proposed a patch set: http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SOURCES/grass-6.4.0-tcl8.6.patch?view=log

which I attached to the ticket.

Is it correct and can be submitted to 6.4.x to gain compatibility with Tcl > 8.5? Related problems on Mac where reported.

Markus

Attachments (2)

grass-6.4.0-tcl8.6.patch (29.5 KB) - added by neteler 11 years ago.
replace deprecated interp->result (updated again patch)
grass-6.4.0-tcl8.6_no_hack.patch (31.3 KB) - added by neteler 11 years ago.
replace deprecated interp->result (updated patch inclusive revert of TCL hack 330)

Download all attachments as: .zip

Change History (18)

comment:1 Changed 11 years ago by fundawang

please note that the patch is a draft, as i'm not familiar with tcl nor grass :( I only concern about get it built

comment:2 Changed 11 years ago by fundawang

i've finally finish the patch, at URL: http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SOURCES/grass-6.4.0-tcl8.6.patch

The attached patch is an outdated one.

comment:3 in reply to:  2 Changed 11 years ago by marisn

Replying to fundawang:

i've finally finish the patch, at URL: http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SOURCES/grass-6.4.0-tcl8.6.patch

The attached patch is an outdated one.

I tested this patch with develbranch_6 and tcl-8.4.19. v.digit -n map=newmap segfaults during launch. Can provide bt on request.

comment:4 Changed 11 years ago by neteler

v.digit -n map=newmap

works here (Mandriva 2009.0, 64bit, tcl8.5). Also NVIZ works, both with the patch.

comment:5 Changed 11 years ago by neteler

Tested also d.what.vect on Mandriva 2009.0, 64bit, tcl8.5, works.

comment:6 Changed 11 years ago by neteler

Since the update patch requires more verification, the TCL tip #330 hack was implemented in r35624 and r35625 . The hack was tested with nviz, d.what.vect and v.digit. The files in question now compile also with Tcl8.6.

With later Tcl versions it will fail to compile so the patch suggested by fundawang needs to be considered for the long term support.

Markus

comment:7 Changed 11 years ago by fundawang

I think i know the reason of crash, cause I've misled the feature of sscanf. I've updated the patch at usual place. Please test.

Changed 11 years ago by neteler

Attachment: grass-6.4.0-tcl8.6.patch added

replace deprecated interp->result (updated again patch)

comment:8 in reply to:  7 Changed 11 years ago by marisn

Replying to fundawang:

I think i know the reason of crash, cause I've misled the feature of sscanf. I've updated the patch at usual place. Please test.

Hm. This patch really seems to work. Tested on ~x86 develbranch_6.

comment:9 Changed 11 years ago by neteler

I suggest to apply it to develbranch_6 but not (yet) to releasebranch_6_4 (where we use the TCL tip # 330 hack).

Changed 11 years ago by neteler

replace deprecated interp->result (updated patch inclusive revert of TCL hack 330)

comment:10 Changed 11 years ago by neteler

Patch applied to develbranch_6 (r35718) and to 7.trunk (r35719). Unsure about releasebranch_6_4 (where we currently use the TCL tip # 330 hack).

Markus

comment:11 Changed 10 years ago by cmbarton

Is this still an issue? We are only maintaining, not developing the TclTk? GUI beyond GRASS 6.4 right? So can't it freeze with TclTk? 8.5 and/or this patch?

Michael

comment:12 in reply to:  11 Changed 10 years ago by hamish

Milestone: 6.4.06.4.1

Replying to cmbarton:

Is this still an issue? We are only maintaining, not developing the TclTk? GUI beyond GRASS 6.4 right? So can't it freeze with TclTk? 8.5 and/or this patch?

FWIW, IMHO maintenance mode means not actively adding new features and refactoring, but rather keeping things working. A small patch to keep it working with tcl/tk 8.6 seems pretty well in the maintenance dept.

Replying to neteler:

Unsure about releasebranch_6_4 (where we currently use the TCL tip # 330 hack).

I suggest to leave the rest as-is for now and backport it to 6.4 if someone using 8.6 complains or if someone really feels like it.

On the other hand it seems like a pretty simple change and we could close the bug. I'll schedule the balance of it for 6.4.1.

shrug, Hamish

comment:13 Changed 8 years ago by neteler

Milestone: 6.4.16.4.3

comment:14 Changed 7 years ago by neteler

Milestone: 6.4.36.4.4
Priority: majorminor
Version: svn-develbranch6svn-releasebranch64

No complaints for the past 7 months...

comment:15 Changed 7 years ago by cmbarton

I agree. Close.

comment:16 Changed 7 years ago by hamish

Keywords: v.digit nviz libform tcl8.6 added
Milestone: 6.4.46.4.3
Resolution: fixed
Status: newclosed

tcl 8.6 support for lib/form, v.digit, and nviz backported to relbr64 in r40401 and r55872.

Hamish

Note: See TracTickets for help on using tickets.