octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #58271] [octave-forge](parallel) 4.0.0: classd


From: A.R. Burgers
Subject: [Octave-bug-tracker] [bug #58271] [octave-forge](parallel) 4.0.0: classdef objects in arguments pose issues
Date: Wed, 29 Apr 2020 03:58:01 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763

URL:
  <https://savannah.gnu.org/bugs/?58271>

                 Summary: [octave-forge](parallel) 4.0.0: classdef objects in
arguments pose issues
                 Project: GNU Octave
            Submitted by: arb
            Submitted on: Wed 29 Apr 2020 07:57:59 AM UTC
                Category: Octave Forge Package
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Regression
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
                 Release: 6.0.90
         Discussion Lock: Any
        Operating System: Any

    _______________________________________________________

Details:

Consider the following script. It will work with cellfun and fork based
pre-4.0.0 parcellfun, but error with 4.0.0 parcellfun:


pkg load parallel;
pkg_ver = ver('parallel')
ver = version

ci = containers.Map({'a','b','c'}, {1,2,3});
cf_out = cellfun(@(x) ci(x)*2, ci.keys)
pcf_out = parcellfun(3, @(x) ci(x)*2, ci.keys)


pre - 4.0.0 output:

pkg_ver = scalar structure containing the fields:
    Name = parallel
    Version = 3.1.3
    Release = [](0x0)
    Date = 2018-08-03

ver = 5.2.1
cf_out =
   2   4   6

parcellfun: 3/3 jobs done
pcf_out =
   2   4   6


4.0.0 output:

pkg_ver = scalar structure containing the fields:
    Name = parallel
    Version = 4.0.0
    Release = [](0x0)
    Date = 2020-04-11

ver = 6.0.1
cf_out =
   2   4   6

error: octave_base_value::save_binary(): wrong type argument 'object'
error: clone: invalid object


I think this is related to bug#45831. In the fork based approach the fork call
takes care of the copying of data to the childeren, without need for
serialization. In the new approach the data is serialized and sent to the
childeren.
For returning data from the childeren the fork based approach already used
serialization.

If this assessment is correct, then this is not a bug in the parallel package,
but rather a manifestation of the absence of serialization capability for
classdef objects in octave.




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58271>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]