[Chicken-users] Call for Tutorial Proposals: ICFP 2019

2019-03-27 Thread Sam Tobin-Hochstadt
  CALL FOR TUTORIAL PROPOSALS
ICFP 2019
 24th ACM SIGPLAN International Conference on Functional Programming


   August 18 - 23, 2019 
  Berlin, Germany
https://icfp19.sigplan.org/

The 24th ACM SIGPLAN International Conference on Functional Programming
will be held in Berlin, Germany on August 18-23, 2019.
ICFP provides a forum for researchers and developers to hear about the 
latest work on the design, implementations, principles, and uses of 
functional programming.

Proposals are invited for tutorials, lasting approximately 3 hours each,
to be presented during ICFP and its co-located workshops and other
events. These tutorials are the successor to the CUFP tutorials from
previous years, but we also welcome tutorials whose primary audience is
researchers rather than practitioners. Tutorials may focus either on a
concrete technology or on a theoretical or mathematical tool. Ideally,
tutorials will have a concrete result, such as "Learn to do X with Y"
rather than "Learn language Y". 

Tutorials may occur after ICFP co-located with the associated 
workshops, from August 22 till August 23. 

--

Submission details
 Deadline for submission: May 10th, 2019
 Notification of acceptance:  May 17th, 2019

Prospective organizers of tutorials are invited to submit a completed
tutorial proposal form in plain text format to the ICFP 2018 workshop
co-chairs (Jennifer Hackett  and Christophe Scholliers), via email to

 icfp-workshops-2...@googlegroups.com

by May 10th, 2019. Please note that this is a firm deadline.

Organizers will be notified if their event proposal is accepted by
May 17, 2019.

The proposal form is available at:

http://www.icfpconference.org/icfp2019-files/icfp19-tutorials-form.txt

--

Selection committee

The proposals will be evaluated by a committee comprising the
following members of the ICFP 2019 organizing committee.

 Tutorials Co-Chair: Jennifer Hackett(University of Nottingham)
 Tutorials Co-Chair: Christophe Scholliers(University of Ghent)
 General Chair:  Derek Dreyer (MPI-SWS) 
 Program Chair:  François Pottier  ( Inria, France)


--

Further information

Any queries should be addressed to the tutorial co-chairs (
Jennifer Hackett and Christophe Scholliers), via email to 
icfp-workshops-2...@googlegroups.com
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] more 'foreign' questions

2019-03-27 Thread Christoph Lange
Thanks! This all works now, and I learned a lot.

I now get a void pointer to some data in memory, and the length of the
> payload. How can I make that e.g. a blob? Or a string?
>
> we’re trying to stop using string for non-char data so blob please ;-)
>

Sorry. Didn't want to frighten you ;-) I almost always have strings in
there (JSON), that's why I asked. ... but when I put everything together,
hope it will end up as a new egg, I'll surely return the blob, so that
people can decide freely.
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] more 'foreign' questions

2019-03-27 Thread Christoph Lange
Awesome, thanks! Will try.

Have a good flight!

On Wed, Mar 27, 2019 at 8:19 PM Kon Lovett  wrote:

> (gotta flight coming up so dashing but hth)
>
> probably need to use the length for make-blob & then move-memory! from
> pointer to the alloc’ed blob
>
> see (chicken memory)
>
> > On Mar 27, 2019, at 12:14 PM, Christoph Lange 
> wrote:
> >
> > i haven’t used the bind egg  but the documentation "General Operation”
> section beginining with "Structure and union definitions …” seems relevant.
> >
> > Haha, yes, thanks. Finding the relevant parts of the docs seems to be
> the challenge in the beginning. Will read that.
> >
> > it rolls access routines, ex: mosquitto_message-mid,
> mosquitto_message-payload, ...
> >
> >
> > #;1> (import bind)
> > #;2> ,x* (bind* "struct mosquitto_message{
> >   int mid;
> >   char *topic;
> >   void *payload;
> >   int payloadlen;
> >   int qos;
> >   ___bool retain;
> > };”)
> >
> > Oh, useful tool to learn, as it seems.
> >
> > Thanks for the help. ... one follow-up question:
> >
> > I now get a void pointer to some data in memory, and the length of the
> payload. How can I make that e.g. a blob? Or a string?
>
>

-- 
Christoph Lange
Lotsarnas Väg 8
430 83 Vrångö
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] more 'foreign' questions

2019-03-27 Thread Kon Lovett


> On Mar 27, 2019, at 12:14 PM, Christoph Lange  wrote:
> 
> i haven’t used the bind egg  but the documentation "General Operation” 
> section beginining with "Structure and union definitions …” seems relevant.
> 
> Haha, yes, thanks. Finding the relevant parts of the docs seems to be the 
> challenge in the beginning. Will read that.
> 
> it rolls access routines, ex: mosquitto_message-mid, 
> mosquitto_message-payload, ...
> 
> 
> #;1> (import bind)
> #;2> ,x* (bind* "struct mosquitto_message{
>   int mid;
>   char *topic;
>   void *payload;
>   int payloadlen;
>   int qos;
>   ___bool retain;
> };”)
> 
> Oh, useful tool to learn, as it seems.

the expand-full egg (only for macro debugging really)

> 
> Thanks for the help. ... one follow-up question:
> 
> I now get a void pointer to some data in memory, and the length of the 
> payload. How can I make that e.g. a blob? Or a string?

we’re trying to stop using string for non-char data so blob please ;-)

___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] more 'foreign' questions

2019-03-27 Thread Kon Lovett
(gotta flight coming up so dashing but hth)

probably need to use the length for make-blob & then move-memory! from pointer 
to the alloc’ed blob

see (chicken memory)

> On Mar 27, 2019, at 12:14 PM, Christoph Lange  wrote:
> 
> i haven’t used the bind egg  but the documentation "General Operation” 
> section beginining with "Structure and union definitions …” seems relevant.
> 
> Haha, yes, thanks. Finding the relevant parts of the docs seems to be the 
> challenge in the beginning. Will read that.
> 
> it rolls access routines, ex: mosquitto_message-mid, 
> mosquitto_message-payload, ...
> 
> 
> #;1> (import bind)
> #;2> ,x* (bind* "struct mosquitto_message{
>   int mid;
>   char *topic;
>   void *payload;
>   int payloadlen;
>   int qos;
>   ___bool retain;
> };”)
> 
> Oh, useful tool to learn, as it seems.
> 
> Thanks for the help. ... one follow-up question:
> 
> I now get a void pointer to some data in memory, and the length of the 
> payload. How can I make that e.g. a blob? Or a string?


___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] more 'foreign' questions

2019-03-27 Thread Christoph Lange
>
> i haven’t used the bind egg  but the documentation "General Operation”
> section beginining with "Structure and union definitions …” seems relevant.
>

Haha, yes, thanks. Finding the relevant parts of the docs seems to be the
challenge in the beginning. Will read that.

it rolls access routines, ex: mosquitto_message-mid,
> mosquitto_message-payload, ...
>


#;1> (import bind)
> #;2> ,x* (bind* "struct mosquitto_message{
>   int mid;
>   char *topic;
>   void *payload;
>   int payloadlen;
>   int qos;
>   ___bool retain;
> };”)
>

Oh, useful tool to learn, as it seems.

Thanks for the help. ... one follow-up question:

I now get a void pointer to some data in memory, and the length of the
payload. How can I make that e.g. a blob? Or a string?

>
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] installing breadline Was: is the readline egg dead?

2019-03-27 Thread Erik Falor
On Wed, Mar 27, 2019 at 07:21:07AM +0100, Vasilij Schneidermann wrote:
> Hello Erik,
> 
> > Let me know if you have any other questions.
> 
> Sorry for being unprecise here, what I meant is what libreadline.so
> links against.

This is on my Raspberry Pi running Slackware-current.

$ ldd /usr/lib/libreadline.so.7
linux-vdso.so.1 (0x7ed09000)
libtinfo.so.6 => /usr/lib/libtinfo.so.6 (0x76ea7000)
libc.so.6 => /lib/libc.so.6 (0x76d1b000)
/lib/ld-linux-armhf.so.3 (0x76f23000)


For comparison, this is one of my Slackware-14.2 machines:

$ ldd /usr/lib64/libreadline.so.6
linux-vdso.so.1 (0x7ffddb379000)
libc.so.6 => /lib64/libc.so.6 (0x7f8845503000)
/lib64/ld-linux-x86-64.so.2 (0x7f8845b15000)


> That aside, you forgot replying to the mailing list as
> well because this email has its Cc: line cleared.

Oops.

-- 
Erik Falor
Registered Linux User #445632http://unnovative.net


signature.asc
Description: PGP signature
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] more 'foreign' questions

2019-03-27 Thread Kon Lovett
i haven’t used the bind egg  but the documentation "General Operation” section 
beginining with "Structure and union definitions …” seems relevant.

it rolls access routines, ex: mosquitto_message-mid, mosquitto_message-payload, 
...

#;1> (import bind)
; loading /usr/local/chicken/5/lib/chicken/10/bind.import.so ...
; loading /usr/local/chicken/5/lib/chicken/10/chicken.foreign.import.so ...
; loading /usr/local/chicken/5/lib/chicken/10/bind-translator.so ...
; loading /usr/local/chicken/5/lib/chicken/10/matchable.so ...
; loading /usr/local/chicken/5/lib/chicken/10/bind.so ...

#;2> ,x* (bind* "struct mosquitto_message{
  int mid;
  char *topic;
  void *payload;
  int payloadlen;
  int qos;
  ___bool retain;
};”)
(##core#begin
  (##core#declare
(foreign-declare
  "#define ___fixnum   int\n#define ___number   
double\n#define ___bool int\n#define ___byte 
char\n#define ___scheme_value C_word\n#define ___scheme_pointer   void 
*\n#define ___blob void *\n#define ___pointer_vector   void 
**\n#define ___symbol   char *\n#define ___safe\n#define ___declare(x, 
y)\n#define ___specialize\n#define ___abstract\n#define ___discard\n#define 
___in\n#define ___out\n#define ___inout\n#define ___mutable\n#define 
___length(var)\n#define ___pointer\n#define ___u32  C_u32\n#define 
___s32  C_s32\n#define ___u64  C_u64\n#define ___s64
  C_s64"
  "struct mosquitto_message{\n  int mid;\n  char *topic;\n  
void *payload;\n  int payloadlen;\n  int qos;\n 
 ___bool retain;\n};"
  "\n"))
  (##core#begin
(##core#begin
  (##core#ensure-toplevel-definition mosquitto_message-mid)
  (##core#set!
mosquitto_message-mid
(foreign-lambda*
  integer
  (((c-pointer (struct "mosquitto_message")) s))
  "return(s->mid);")))
(##core#begin
  (##core#ensure-toplevel-definition mosquitto_message-topic)
  (##core#set!
mosquitto_message-topic
(foreign-lambda*
  c-string
  (((c-pointer (struct "mosquitto_message")) s))
  "return(s->topic);")))
(##core#begin
  (##core#ensure-toplevel-definition mosquitto_message-payload)
  (##core#set!
mosquitto_message-payload
(foreign-lambda*
  (c-pointer void)
  (((c-pointer (struct "mosquitto_message")) s))
  "return(s->payload);")))
(##core#begin
  (##core#ensure-toplevel-definition mosquitto_message-payloadlen)
  (##core#set!
mosquitto_message-payloadlen
(foreign-lambda*
  integer
  (((c-pointer (struct "mosquitto_message")) s))
  "return(s->payloadlen);")))
(##core#begin
  (##core#ensure-toplevel-definition mosquitto_message-qos)
  (##core#set!
mosquitto_message-qos
(foreign-lambda*
  integer
  (((c-pointer (struct "mosquitto_message")) s))
  "return(s->qos);")))
(##core#begin
  (##core#ensure-toplevel-definition mosquitto_message-retain)
  (##core#set!
mosquitto_message-retain
(foreign-lambda*
  bool
  (((c-pointer (struct "mosquitto_message")) s))
  "return(s->retain);")))
(##core#begin
  (##core#ensure-toplevel-definition make-mosquitto_message)
  (##core#set!
make-mosquitto_message
(foreign-lambda*
  (c-pointer (struct "mosquitto_message"))
  ((integer mid)
   (c-string topic)
   ((c-pointer void) payload)
   (integer payloadlen)
   (integer qos)
   (bool retain))
  "struct mosquitto_message *tmp_ =  (struct mosquitto_message 
*)C_malloc(sizeof(struct mosquitto_message));\ntmp_->mid = mid;\ntmp_->topic = 
topic;\ntmp_->payload = payload;\ntmp_->payloadlen = payloadlen;\ntmp_->qos = 
qos;\ntmp_->retain = retain;\nreturn(tmp_);;\n")

> On Mar 27, 2019, at 8:06 AM, Christoph Lange  wrote:
> 
> After I now managed quite a lot of my interfacing to the mqtt library, I'm 
> stuck with the following:
> 
> I have the following definition of  a message struct, which I in fact get 
> back a pointer to, from a callback:
> 
> (bind* "struct mosquitto_message{
>   int mid;
>   char *topic;
>   void *payload;
>   int payloadlen;
>   int qos;
>   ___bool retain;
> };")
> 
> When I print what I get in Scheme it says something along the line of 
> #. Though the library frees the memory, it will -- 
> according to manual -- only do so after the callback returns. So within the 
> callback, I should be able to access / print it's content. Just how?! How do 
> I access the different fields in that struct? Especially the payload?
> 
> /Christoph
> ___
> Chicken-users mailing list
> 

[Chicken-users] more 'foreign' questions

2019-03-27 Thread Christoph Lange
After I now managed quite a lot of my interfacing to the mqtt library, I'm
stuck with the following:

I have the following definition of  a message struct, which I in fact get
back a pointer to, from a callback:

(bind* "struct mosquitto_message{
  int mid;
  char *topic;
  void *payload;
  int payloadlen;
  int qos;
  ___bool retain;
};")


When I print what I get in Scheme it says something along the line of #. Though the library frees the memory, it will -- according
to manual -- only do so after the callback returns. So *within* the
callback, I should be able to access / print it's content. Just *how*?! How
do I access the different fields in that struct? Especially the payload?

/Christoph
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] how to compile files, modules, shared libraries, programs

2019-03-27 Thread Marco Maggi
Marco Maggi wrote:

> [...] I want to make the following package work:

> 

I managed to make it work, I think.  I am not quite "there", yet.

  I still  have some problems with  modules: if a source  file defines a
module, and  it is linked  into a library, can  such source file  have a
name different from the module name itself?  When I tried I succeeded in
one case but failed in another...
-- 
Marco Maggi

___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] [TFPIE'19] Call for papers: Trends in Functional Programming in Education 2019, 11 June 2019, Vancouver, BC, CA

2019-03-27 Thread Peter Achten

TFPIE 2019 Call for papers
http://www.staff.science.uu.nl/~hage0101/tfpie2019/index.html
(June 11th, University of British Columbia, Vancouver Canada, co-located 
with TFP 2019)


TFPIE 2019 welcomes submissions describing techniques used in the 
classroom, tools used
in and/or developed for the classroom and any creative use of functional 
programming (FP)
to aid education in or outside Computer Science. Topics of interest 
include, but are not

limited to:

  FP and beginning CS students
  FP and Computational Thinking
  FP and Artificial Intelligence
  FP in Robotics
  FP and Music
  Advanced FP for undergraduates
  FP in graduate education
  Engaging students in research using FP
  FP in Programming Languages
  FP in the high school curriculum
  FP as a stepping stone to other CS topics
  FP and Philosophy
  The pedagogy of teaching FP
  FP and e-learning: MOOCs, automated assessment etc.
  Best Lectures Ð more details below

In addition to papers, we are requesting best lecture presentations. 
What's your
best lecture topic in an FP related course? Do you have a fun way to 
present FP

concepts to novices or perhaps an especially interesting presentation of a
difficult topic? In either case, please consider sharing it. Best 
lecture topics

will be selected for presentation based on a short abstract describing the
lecture and its interest to TFPIE attendees. The length of the presentation
should be comparable to that of a paper. On top of the lecture itself,
the presentation can also provide commentary on the lecture.

Submissions
Potential presenters are invited to submit an extended abstract (4-6 
pages) or a

draft paper (up to 16 pages) in EPTCS style. The authors of accepted
presentations will have their preprints and their slides made available 
on the
workshop's website. Papers and abstracts can be submitted via easychair 
at the

following link:

https://easychair.org/conferences/?conf=tfpie2019

After the workshop, presenters will be invited to submit (a revised 
version of)

their article for review. The PC will select the best articles that will be
published in the Electronic Proceedings in Theoretical Computer Science 
(EPTCS).
Articles rejected for presentation and extended abstracts will not be 
formally

reviewed by the PC.

Dates
Submission deadline:  May  14th 2019, Anywhere on Earth.
Notification: May  20th
Workshop: June 11th
Submission for formal review: August 18th 2019, Anywhere on Earth
Notification of full article: October 6th
Camera ready: November 1st


Program Committee

Alex Gerdes   - University of Gothenburg / Chalmers
Jurriaan Hage (Chair) - Utrecht University
Pieter Koopman    - Radboud University, the Netherlands
Elena Machkasova  - University of Minnesota, Morris, USA
Heather Miller    - Carnegie Mellon University and EPFL Lausanne
Prabhakar Ragde   - University of Waterloo, Waterloo, Ontario, Canada
Simon Thompson    - University of Kent, UK
Sharon Tuttle - Humboldt State University, Arcata, USA

Note: information on TFP is available at https://www.tfp2019.org/index.html



___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users