Re: How to get a useful repl with Chicken 5?

2020-01-30 Thread Vasilij Schneidermann
Hello Matt,

> I've read the docs on linenoise and breadline but I'm not seeing how to get
> a useful editable repl.
> 
> Any pointers or suggestions would be appreciated.

I've developed breadline.  Its wiki page has an examples section which
shows how to create a custom REPL for programs and points to
 for two
more examples, a `.csirc` (for your other scenario of customizing `csi`)
and how a simple completer can be created.

The story is similar with linenoise, its wiki page has an example
section for general use and a "Using linenoise in csi" one.  Did you
have issues with setting either up?

Vasilij


signature.asc
Description: PGP signature


Call for Papers: PACMPL issue ICFP 2020

2020-01-30 Thread Sam Tobin-Hochstadt
PACMPL Volume 4, Issue ICFP 2020
Call for Papers

accepted papers to be invited for presentation at
 The 25th ACM SIGPLAN International Conference on Functional Programming
 Jersey City, USA
   http://icfp20.sigplan.org/

### Important dates

Submissions due:3 March 2020 (Tuesday) Anywhere on Earth
https://icfp20.hotcrp.com
Author response:21 April (Tuesday) - 24 Apri (Friday) 14:00 UTC
Notification:   8 May (Friday)
Final copy due: 1 July (Wednesday)
Conference: 18 August (Sunday) - 23 August (Friday)

### About PACMPL

Proceedings of the ACM on Programming Languages (PACMPL
) is a Gold Open Access journal publishing
research on all aspects of programming languages, from design to
implementation and from mathematical formalisms to empirical
studies. Each issue of the journal is devoted to a particular subject
area within programming languages and will be announced through
publicized Calls for Papers, like this one.

### Scope

[PACMPL](https://pacmpl.acm.org/) issue ICFP 2020 seeks original
papers on the art and science of functional programming. Submissions
are invited on all topics from principles to practice, from
foundations to features, and from abstraction to application. The
scope includes all languages that encourage functional programming,
including both purely applicative and imperative languages, as well as
languages with objects, concurrency, or parallelism. Topics of
interest include (but are not limited to):

* Language Design: concurrency, parallelism, and distribution;
modules; components and composition; metaprogramming; macros;
pattern matching; type systems; type inference; dependent types;
session types; gradual typing; refinement types; interoperability;
domain-specific languages; imperative programming; object-oriented
programming; logic programming; probabilistic programming;
reactive programming; generic programming; bidirectional
programming.

* Implementation: abstract machines; virtual machines;
interpretation; compilation; compile-time and run-time
optimization; garbage collection and memory management; runtime
systems; multi-threading; exploiting parallel hardware; interfaces
to foreign functions, services, components, or low-level machine
resources.

* Software-Development Techniques: algorithms and data structures;
design patterns; specification; verification; validation; proof
assistants; debugging; testing; tracing; profiling; build systems;
program synthesis.

* Foundations: formal semantics; lambda calculus; program
equivalence; rewriting; type theory; logic; category theory;
monads; continuations; control; state; effects; names and binding;
program verification.

* Analysis and Transformation: control flow; data flow; abstract
interpretation; partial evaluation; program calculation.

* Applications: symbolic computing; formal-methods tools; artificial
intelligence; systems programming; distributed systems and web
programming; hardware design; databases; XML processing;
scientific and numerical computing; graphical user interfaces;
graphics and multimedia; GPU programming; scripting; system
administration; security.

* Education: teaching introductory programming; parallel
programming; mathematical proof; algebra.

Submissions will be evaluated according to their relevance,
correctness, significance, originality, and clarity. Each submission
should explain its contributions in both general and technical terms,
clearly identifying what has been accomplished, explaining why it is
significant, and comparing it with previous work. The technical
content should be accessible to a broad audience.

PACMPL issue ICFP 2020 also welcomes submissions in two separate
categories — Functional Pearls and Experience Reports — that must be
marked as such when submitted and that need not report original
research results. Detailed guidelines on both categories are given at
the end of this call.

Please contact the principal editor if you have questions or are
concerned about the appropriateness of a topic.


### Preparation of submissions

**Deadline**: The deadline for submissions is **Tuesday, March 3, 2020**,
Anywhere on Earth ().
This deadline will be strictly enforced.

**Formatting**: Submissions must be in PDF format, printable in black
and white on US Letter sized paper, and interpretable by common PDF
tools. All submissions must adhere to the "ACM Small" template that is
available (in both LaTeX and Word formats) from
.  For authors
using LaTeX, a lighter-weight package, including only the essential
files, is available from
.

There is a 

Re: How to get a useful repl with Chicken 5?

2020-01-30 Thread Matt Welland
Hi Daniel, that is a good suggestion. rlwrap it is for today. Still, it
would be nice to have something that I can build into my apps as I did for
Chicken 4. Thanks.

On Thu, Jan 30, 2020 at 11:29 AM Daniel Ortmann 
wrote:

> How about: rlwrap csi
>
> It has been good to me, saving the history into ~/.csi_history
>
> On 1/30/20 12:01 PM, Matt Welland wrote:
>
> Line editing and saving history make using a repl much more productive for
> me. With chicken 4 I was able to get a useful repl with something like this
> sequence of calls:
>
> (import extras) ;; might not be needed?
> (import readline)
> (import apropos)
> ;; my imports here ...
> (install-history-file (get-environment-variable "HOME") ".some_history")
> (current-input-port (make-readline-port "someprog> "))
> (repl)
>
> I've tried linenoise but don't see how to save the history:
>
> (import linenoise)
> (set-history-length! 300)
> (load-history-from-file historyf)
> (current-input-port (make-linenoise-port))
> (repl)
> ;; (save-history-to-file historyf) ;; doesn't work :(
>
> I've read the docs on linenoise and breadline but I'm not seeing how to
> get a useful editable repl.
>
> Any pointers or suggestions would be appreciated.
> --
> Complexity is your enemy. Any fool can make something complicated.
> It is hard to keep things simple. - Richard Branson.
>
>
>

-- 
--
Complexity is your enemy. Any fool can make something complicated.
It is hard to keep things simple. - Richard Branson.


Re: How to get a useful repl with Chicken 5?

2020-01-30 Thread Daniel Ortmann

How about: rlwrap csi

It has been good to me, saving the history into ~/.csi_history

On 1/30/20 12:01 PM, Matt Welland wrote:
Line editing and saving history make using a repl much more productive 
for me. With chicken 4 I was able to get a useful repl with something 
like this sequence of calls:


(import extras) ;; might not be needed?
(import readline)
(import apropos)
;; my imports here ...
(install-history-file (get-environment-variable "HOME") ".some_history")
(current-input-port (make-readline-port "someprog> "))
(repl)

I've tried linenoise but don't see how to save the history:

(import linenoise)
(set-history-length! 300)
(load-history-from-file historyf)
(current-input-port (make-linenoise-port))
(repl)
;; (save-history-to-file historyf) ;; doesn't work :(

I've read the docs on linenoise and breadline but I'm not seeing how 
to get a useful editable repl.


Any pointers or suggestions would be appreciated.
--
Complexity is your enemy. Any fool can make something complicated.
It is hard to keep things simple. - Richard Branson.




How to get a useful repl with Chicken 5?

2020-01-30 Thread Matt Welland
Line editing and saving history make using a repl much more productive for
me. With chicken 4 I was able to get a useful repl with something like this
sequence of calls:

(import extras) ;; might not be needed?
(import readline)
(import apropos)
;; my imports here ...
(install-history-file (get-environment-variable "HOME") ".some_history")
(current-input-port (make-readline-port "someprog> "))
(repl)

I've tried linenoise but don't see how to save the history:

(import linenoise)
(set-history-length! 300)
(load-history-from-file historyf)
(current-input-port (make-linenoise-port))
(repl)
;; (save-history-to-file historyf) ;; doesn't work :(

I've read the docs on linenoise and breadline but I'm not seeing how to get
a useful editable repl.

Any pointers or suggestions would be appreciated.
--
Complexity is your enemy. Any fool can make something complicated.
It is hard to keep things simple. - Richard Branson.