Opened 14 years ago

Closed 10 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 14 years ago.
replace deprecated interp->result (updated again patch)
grass-6.4.0-tcl8.6_no_hack.patch (31.3 KB ) - added by neteler 14 years ago.
replace deprecated interp->result (updated patch inclusive revert of TCL hack 330)

Download all attachments as: .zip

Change History (18)

comment:1 by fundawang, 14 years ago

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 by fundawang, 14 years ago

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.

in reply to:  2 comment:3 by marisn, 14 years ago

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 by neteler, 14 years ago

v.digit -n map=newmap

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

comment:5 by neteler, 14 years ago

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

comment:6 by neteler, 14 years ago

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 by fundawang, 14 years ago

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.

by neteler, 14 years ago

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

replace deprecated interp->result (updated again patch)

in reply to:  7 comment:8 by marisn, 14 years ago

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 by neteler, 14 years ago

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

by neteler, 14 years ago

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

comment:10 by neteler, 14 years ago

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 by cmbarton, 13 years ago

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

in reply to:  11 comment:12 by hamish, 13 years ago

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 by neteler, 11 years ago

Milestone: 6.4.16.4.3

comment:14 by neteler, 10 years ago

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

No complaints for the past 7 months...

comment:15 by cmbarton, 10 years ago

I agree. Close.

comment:16 by hamish, 10 years ago

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.