[racket-users] IFL'21 final call for participation

2021-08-30 Thread Pieter Koopman




IFL 2021



33rd Symposium on Implementation and Application of Functional Languages





 venue: online

  1 - 3 September 2021



 https://ifl21.cs.ru.nl






*Registration*


*Registration is **free of charge, but required for participation!* We will
mail the zoom link only to registered participants. Use the below link to
register for IFL 2021:



https://docs.google.com/forms/d/e/1FAIpQLSdMFjo-GumKjk4i7szs7n4DhWqKt96t8ofIqshfQFrf4jnvsA/viewform?usp=sf_link




*Program*

The program is now available at https://ifl21.cs.ru.nl/Program

.

*Scope*

The goal of the IFL symposia is to bring together researchers actively
engaged in the implementation and application of functional and
function-based programming languages. IFL 2021 will be a venue for
researchers to present and discuss new ideas and concepts, work in
progress, and publication-ripe results related to the implementation and
application of functional languages and function-based programming.



*Organisation*

IFL 2021 Chairs: Pieter Koopman and Peter Achten, Radboud University, The
Netherlands

IFL Publicity chair: Pieter Koopman, Radboud University, The Netherlands



*PC*

Peter Achten (co-chair)   - Radboud University, Netherlands

Thomas van Binsbergen - University of Amsterdam, Netherlands

Edwin Brady   - University of St. Andrews, Scotland

Laura Castro  - University of A Coruña, Spain

Youyou Cong   - Tokyo Institute of Technology, Japan

Olaf Chitil   - University of Kent, England

Andy Gill - University of Kansas, USA

Clemens Grelck- University of Amsterdam, Netherlands

John Hughes   - Chalmers University, Sweden

Pieter Koopman (co-chair) - Radboud University, Netherlands

Cynthia Kop   - Radboud University, Netherlands

Jay McCarthey - University of Massachussetts Lowell, USA

Neil Mitchell - Facebook, England

Jan De Muijnck-Hughes - Glasgow University, Scotland

Keiko Nakata  - SAP Innovation Center Potsdam, Germany

Jurriën Stutterheim   - Standard Chartered, Singapore

Simon Thompson- University of Kent, England

Melinda Tóth  - Eötvos Loránd University, Hungary

Phil Trinder  - Glasgow University, Scotland

Meng Wang - University of Bristol, England

Viktória Zsók - Eötvos Loránd University, Hungary
[image: beacon]

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAGtcRvB_8DMdGk4QY8YzQO4xBTSgji-ycxCKyiRQFhi57X3REQ%40mail.gmail.com.


Re: [racket-users] 'compiled' binary still depending on libs?

2021-08-30 Thread Matthew Flatt
Some libraries have extra run-time files that they refer to with
`define-runtime-path` and similar. I think "gregor" is in that
category, where it needs files like "timezone.xml". Embedding DLLs
can't embed those extra files.

The intent is that you use `raco distribute` to package an executable
along with any needed run-time files into a directory. That whole
directory can then be moved to another machine to run it.

At Mon, 30 Aug 2021 07:47:34 -0700 (PDT), Dexter Lagan wrote:
> Hi folks,
> 
>   I'm getting a strange dependency problem when attempting to run my 
> Invoicer binary on systems with corrupted or missing Racket libs. For 
> example, if I attempt to run the compiled binary (with embedded DLLs, 
> Windows 10 x64) on a system which has Racket installed, but missing Gregor, 
> I get an error claiming the gregor package is missing. Yet I was under the 
> impression that compiling to binary for distribution, especially with 
> embedded DLLs, would not require ANY libs installed. Is there a reason for 
> this?
> 
> Here's the program in question:
> DexterLagan/invoicer: A dead-simple, easy-to-use minimalist billing 
> application. (github.com) 
> 
> Thanks in advance!
> 
> Dexter

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/20210830091402.5f%40sirmail.smtps.cs.utah.edu.


[racket-users] Bootstrap on Racket

2021-08-30 Thread Dexter Lagan
Hi again,

  I've been working on porting my Newstrap Web framework from newLISP to 
Racket. I got most of it done and am about to start work on a router. 
Here's what I got so far:

DexterLagan/rap: Combination of Racket and Bootstrap, RAP is a Web 
framework aiming to produce good-looking pages with ease. (github.com) 


based on Newsrap:

DexterLagan/newstrap: A fast, lightweight web framework written in newLISP. 
(github.com) 

  Does anybody know if something similar already exists? I looked around 
but couldn't find anything production-ready (in Racket). I just want to 
know if I'm wasting my time reinventing the wheel, or if there's value in 
having a bunch of macros generate Bootstrap code. My first goal would be to 
have a static site generator going, followed by a fully-featured framework 
for production use.

Any and all feedback would help me greatly!

Dex

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/473170ba-624a-4339-b499-9e936765603cn%40googlegroups.com.


[racket-users] 'compiled' binary still depending on libs?

2021-08-30 Thread Dexter Lagan
Hi folks,

  I'm getting a strange dependency problem when attempting to run my 
Invoicer binary on systems with corrupted or missing Racket libs. For 
example, if I attempt to run the compiled binary (with embedded DLLs, 
Windows 10 x64) on a system which has Racket installed, but missing Gregor, 
I get an error claiming the gregor package is missing. Yet I was under the 
impression that compiling to binary for distribution, especially with 
embedded DLLs, would not require ANY libs installed. Is there a reason for 
this?

Here's the program in question:
DexterLagan/invoicer: A dead-simple, easy-to-use minimalist billing 
application. (github.com) 

Thanks in advance!

Dexter

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/def841e9-ffe4-4ded-96ca-fd78baa5105an%40googlegroups.com.


Re: [racket-users] Context aware macro

2021-08-30 Thread Sorawee Porncharoenwase
>
> But what surprises me the most is that it only works at the top level:
> assign.rkt>
> assign.rkt> (assign foo 3)
> assign.rkt> (assign (bar x) (assign foo 7) (* x foo))
> assign.rkt> (bar 1)
> 7
> assign.rkt> global
> '#hash((bar . (λ (x) (assign foo 7) (* x foo))) (foo . 3))
>
Interesting. Following your steps, I got a different result that makes more
sense:

'#hash((bar . (λ (x) (assign foo 7) (* x foo))) (foo . 7))

Another question: my macro doesn't work with (f . xs) notation. Of course,
> I could add a [_ f . xs] syntax-case. But I would also have to add a [_ f a
> ... . xs]. Plus keywords. Is there a way not to have to describe every
> possible situation?
>
For a “flat” function definition, (_ f a ... . xs) is the most general
form. It encompasses patterns like (_ f . xs), where a matches 0 times, and (_
f 1 2), where xs is (). So if you have that, you don’t need any other cases.

FYI: function definition allows the curry form too. E.g.,

(define ((f x) y)
  (+ x y))

The most convenient way to parse the header is to switch from syntax-case
to syntax-parse, and use the function-header syntax class in
syntax/parse/lib/function-header. Lambda doesn’t support currying notation
though, so maybe you don’t care about it.

-- 
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/CAN4YmREN1q%2BDTF1UbTHc8LmN3gfnea5HAZCQfc%3DRPyLVHX2yVg%40mail.gmail.com
> 
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CADcueguaarpbWdz3PEPjySY85ab9UNc%3Dx3h%2B4h3V6JLXEBOSMg%40mail.gmail.com.


[racket-users] Context aware macro

2021-08-30 Thread Dimaugh Silvestris
I wanted a 'define' that stores in a hash the arguments and the function
definition so I don't keep forgetting argument order and having to go to
the file and check. So with my very little knowledge of macros, I wrote
this:

#lang racket

(define global (make-hash))

(define-syntax (assign stx)
  (syntax-case stx []
([_ (f xs ...) b ...]
 #'[begin
 (hash-set! global 'f (list 'λ '(xs ...) 'b ...))
 (define (f xs ...) b ...)])
([_ a b]
 #'[begin
 (hash-set! global 'a b)
 (define a b)])))

Surprisingly it works:
assign.rkt> (assign (sum a b) (+ a b))
assign.rkt> global
'#hash((sum . (λ (a b) (+ a b

But what surprises me the most is that it only works at the top level:
assign.rkt>
assign.rkt> (assign foo 3)
assign.rkt> (assign (bar x) (assign foo 7) (* x foo))
assign.rkt> (bar 1)
7
assign.rkt> global
'#hash((bar . (λ (x) (assign foo 7) (* x foo))) (foo . 3))

I suspected I would have had some trouble with local definitions colliding
with the global hash, but luckily it isn't happening. Why is that?

Another question: my macro doesn't work with (f . xs) notation. Of course,
I could add a [_ f . xs] syntax-case. But I would also have to add a [_ f a
... . xs]. Plus keywords. Is there a way not to have to describe every
possible situation?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAN4YmREN1q%2BDTF1UbTHc8LmN3gfnea5HAZCQfc%3DRPyLVHX2yVg%40mail.gmail.com.