Giter Club home page Giter Club logo

Comments (10)

tumregels avatar tumregels commented on September 1, 2024

the same here, on Ubuntu 16.04 - all output is doubled

from jupyter-php.

denisristic avatar denisristic commented on September 1, 2024

same on mac os sierra

from jupyter-php.

muotaz avatar muotaz commented on September 1, 2024

Hello;

I was able to remove the duplication after commenting the following lines in ExecuteAction.php which was located at /opt/jupyter-php/pkgs/src/Actions/ :

public function notifyMessage(string $message) 
{
        //$this->broker->send($this->iopubSocket, 'stream', ['name' => 'stdout', 'text' => $message], $this->header);
        $this->broker->send(
            $this->iopubSocket,
            'execute_result',
            ['execution_count' => $this->execCount, 'data' => ['text/plain' => $message], 'metadata' => new \stdClass
            $this->header
        );
    }

And Jupyter recognized as output the lines sent as execute_result rather than stream.
Was the stream needed ?

from jupyter-php.

castarco avatar castarco commented on September 1, 2024

Hi all,

@muotaz , @tumregels , @denisristic : excuse me for delaying my responses.

@muotaz : I'll check your patch. To be sincere, I don't remember. I think that this is the way output was generated in first place, and probably it wasn't removed after some PRs solving other more important bugs.

from jupyter-php.

castarco avatar castarco commented on September 1, 2024

Confirmed, this fixes the bug without introducing noticeable problems :) .

from jupyter-php.

castarco avatar castarco commented on September 1, 2024

Fixed.

from jupyter-php.

mmorton75 avatar mmorton75 commented on September 1, 2024

Not sure that this is actually fixed yet. I just built a completely fresh install, in a docker container and we are getting the following output:

screen shot 2017-05-04 at 9 42 26 am

I am also attaching the Dockerfile for the build we used:

Dockerfile.zip

from jupyter-php.

muotaz avatar muotaz commented on September 1, 2024

This is a different issue, you are printing the $text variable, which it does, and then the print function returns a true (1) , if you notice the other cells it is working as expected.

from jupyter-php.

mmorton75 avatar mmorton75 commented on September 1, 2024

Fair enough - however in the line $text=Hello World"; - it is outputting "Hello World" - that would not be a desired behaviour... and inconsistent with other kernels since you are only setting a variable here.

Also re: the print outputting the text as well as the result of the print statement - this is again, inconsistent with other kernels such as python, where printing does not result in an out[] field - is literally prints it (to stdout?) and supresses in some way the out[]put - only when you do not explicitly print, do you get the out[]put (as in the last example below)

screen shot 2017-05-04 at 11 16 06 am

from jupyter-php.

castarco avatar castarco commented on September 1, 2024

Hi @mmorton75 , is true that sending text to stdout should be handled in a different way than expression evaluation.

But, on the other hand, in PHP, an assignment is not only an assignment, but also an expression with a return value, this is the reason behind this weird behavior.

So, I see that you're stating the existence of two problems:

  • the first one is a PHP problem (evaluating assignments as expressions), we could discuss some ways to solve it, but I think that anything that we could do will be brittle.
  • the second one is kernel related (connecting stdout to the "wrong channel").

I also state that there is a third problem: the ugly => "promt" that appears before values. I sent a patch to the "core" of this kernel (PsySH), to solve this, so I expect that by now it will be easy to solve the problem passing an empty string as a "prompt" parameter.

P.D.: I'll create the issue for the second one, meanwhile we can discuss about what to do with the assignments evaluation.

from jupyter-php.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.