• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Sending SKILL commands to a running instance of ICFB

Stats

  • Locked Locked
  • Replies 18
  • Subscribers 145
  • Views 30390
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Sending SKILL commands to a running instance of ICFB

gsimard
gsimard over 16 years ago

Hi all !

 

 I was wondering if it would be possible to send SKILL instructions to a running instance of ICFB, just as if I was typing them in the console of the ICFB, but from an external process. The idea is to use my favorite editor (emacs) and being able to interact with the ICFB process (sending code, retrieving replies, in the best scenario).

 

Thank you for any advice !

Guillaume

  • Cancel
Parents
  • ebecheto
    ebecheto over 15 years ago

    Thank you so much all of you, my "emacs -> icfb communication" dream is so close to become true !

    Since I know 'skill language, I've always wanted to be able to launch my code direcly from emacs rather than 'middle-click paste' or 'load "myFile.il"' . Like in gnuplot-mode with :'Send line to gnuplot' 'Send line & move forward' ''Send region to gnuplot'' and 'Send buffer to gnuplot. Here I am describing the features I want in gsimard futur skill-mode. Guillaume, could you do that for me please ? I am not asking you, but begging you, imploring you, respecting you so much for sharing this futur skill-mode.el.

    I've heard  a long time ago about a similar feature so called 'gate to opus. But I have never been able to find/use it. I have meerly tried also a former skillmode4.4 made by Jonas jarnestrom. That mode looked very powerfull but had no syntax highlight (or I was using it uncorrecly...). I now use a skillMode.el ; created    07/02/07 by M.Masa, but it is not enough powerfull.

    I am mastering emacs shortcut, but I never write code in emacs lisp (unfortunatly) but it is so similar to skill that I should be able to do so. Actualy skill and emacs-lisp came from the same lisp parser... is that right Andrew ?

    Here coms my contribution : I have done as Stephane A has sugested :

     

    ;; load "test.il" ;; in ICFB
    procedure(socketHandler(ipcId data)
      printf("COMMAND: %L\n" data)
      evalstring(data)
    )
    ipcBeginProcess("emacs" "" 'socketHandler)
    

    loading this file in icfb opens an emacs. I this emacs I open a file.el in Emacs-lisp mode in which I have the following lines :

    (send-string-to-terminal "pwd")
    (send-string-to-terminal " println(\"hello\") \n")
    (send-string-to-terminal "pwd()")
    (send-string-to-terminal " println(\"world\\n\")")
    (send-string-to-terminal " println(\"!\")")
    (send-string-to-terminal " printf(\"Hello\\n\\t World!\")")
    

     Then I 'Evaluate buffer' (or C-x C-e on every line) and ! magic ! icfb prints :

    COMMAND: "pwd println(\"hello\") \npwd()"
    COMMAND: " println(\"world\\n\") println(\"!\") printf(\"Hello\\n\\t World!\")"
    "world\n"
    "!"
    Hello

     Do you see my problem ? First, there is a missing "World!" not printed,icfb expecting a Return or something. Second, I have tobackslash every dbl quote. I suppose it could be treated with some emacs macro (still I don't know how, due to my too few knowledge in emacs-lisp). Third problem : pwd is probably evaluated, but it is not outputed in the icfb window...

    Any hints we be welcomed.

     

    gsimard said:

    To Andrew: Maybe someday I'll come up with my own emacs mode for skill, if that's so I'll release the source code ;)

    I am, as you might have understood, eagerly expexting your release. I will be please to help you to develop such mode Guillaume, but I am more an anlog designer than an emacs geek. Please let me know if I can 'beta test' your code.

     Thanks for this tread.

    ++Ed

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ebecheto
    ebecheto over 15 years ago

    Thank you so much all of you, my "emacs -> icfb communication" dream is so close to become true !

    Since I know 'skill language, I've always wanted to be able to launch my code direcly from emacs rather than 'middle-click paste' or 'load "myFile.il"' . Like in gnuplot-mode with :'Send line to gnuplot' 'Send line & move forward' ''Send region to gnuplot'' and 'Send buffer to gnuplot. Here I am describing the features I want in gsimard futur skill-mode. Guillaume, could you do that for me please ? I am not asking you, but begging you, imploring you, respecting you so much for sharing this futur skill-mode.el.

    I've heard  a long time ago about a similar feature so called 'gate to opus. But I have never been able to find/use it. I have meerly tried also a former skillmode4.4 made by Jonas jarnestrom. That mode looked very powerfull but had no syntax highlight (or I was using it uncorrecly...). I now use a skillMode.el ; created    07/02/07 by M.Masa, but it is not enough powerfull.

    I am mastering emacs shortcut, but I never write code in emacs lisp (unfortunatly) but it is so similar to skill that I should be able to do so. Actualy skill and emacs-lisp came from the same lisp parser... is that right Andrew ?

    Here coms my contribution : I have done as Stephane A has sugested :

     

    ;; load "test.il" ;; in ICFB
    procedure(socketHandler(ipcId data)
      printf("COMMAND: %L\n" data)
      evalstring(data)
    )
    ipcBeginProcess("emacs" "" 'socketHandler)
    

    loading this file in icfb opens an emacs. I this emacs I open a file.el in Emacs-lisp mode in which I have the following lines :

    (send-string-to-terminal "pwd")
    (send-string-to-terminal " println(\"hello\") \n")
    (send-string-to-terminal "pwd()")
    (send-string-to-terminal " println(\"world\\n\")")
    (send-string-to-terminal " println(\"!\")")
    (send-string-to-terminal " printf(\"Hello\\n\\t World!\")")
    

     Then I 'Evaluate buffer' (or C-x C-e on every line) and ! magic ! icfb prints :

    COMMAND: "pwd println(\"hello\") \npwd()"
    COMMAND: " println(\"world\\n\") println(\"!\") printf(\"Hello\\n\\t World!\")"
    "world\n"
    "!"
    Hello

     Do you see my problem ? First, there is a missing "World!" not printed,icfb expecting a Return or something. Second, I have tobackslash every dbl quote. I suppose it could be treated with some emacs macro (still I don't know how, due to my too few knowledge in emacs-lisp). Third problem : pwd is probably evaluated, but it is not outputed in the icfb window...

    Any hints we be welcomed.

     

    gsimard said:

    To Andrew: Maybe someday I'll come up with my own emacs mode for skill, if that's so I'll release the source code ;)

    I am, as you might have understood, eagerly expexting your release. I will be please to help you to develop such mode Guillaume, but I am more an anlog designer than an emacs geek. Please let me know if I can 'beta test' your code.

     Thanks for this tread.

    ++Ed

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information