annotate samples/http.tp @ 251:2557ce4e671f

Fix a couple of compiler bugs. topenv was getting initialized in multiple places. This resulted in multiple copies of modules getting created which caused problems for macro expansion. Additionally, arguments were not being marked as declared during code generation so assigning to an argument that was not closed over generated invalid C code.
author Michael Pavone <pavone@retrodev.com>
date Fri, 11 Apr 2014 22:29:32 -0700
parents 55e0dca7d3d7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
149
7f442b3e4448 Tiny bit of work on HTTP client and sample usage of it
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #{
153
075b1e71feff A little more work on the HTTP module
Mike Pavone <pavone@retrodev.com>
parents: 149
diff changeset
2 main <- :args {
075b1e71feff A little more work on the HTTP module
Mike Pavone <pavone@retrodev.com>
parents: 149
diff changeset
3 server <- "rhope.retrodev.com"
075b1e71feff A little more work on the HTTP module
Mike Pavone <pavone@retrodev.com>
parents: 149
diff changeset
4 if: (args length) > 1 {
075b1e71feff A little more work on the HTTP module
Mike Pavone <pavone@retrodev.com>
parents: 149
diff changeset
5 server <- args get: 1
075b1e71feff A little more work on the HTTP module
Mike Pavone <pavone@retrodev.com>
parents: 149
diff changeset
6 }
075b1e71feff A little more work on the HTTP module
Mike Pavone <pavone@retrodev.com>
parents: 149
diff changeset
7 cli <- http client: server
157
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
8 resp <- (cli get: "/")
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
9 print: "Status: " . (resp status) . "\n"
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
10 print: "Code: " . (resp statusCode) . "\n"
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
11 print: "Headers:\n"
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
12 foreach: (resp headers) :key val {
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
13 print: key . " -> " . val . "\n"
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
14 }
55e0dca7d3d7 Partial implementation of HTTP get requests
Mike Pavone <pavone@retrodev.com>
parents: 153
diff changeset
15 print: "Body:\n" . (resp body) . "\n"
149
7f442b3e4448 Tiny bit of work on HTTP client and sample usage of it
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 }
7f442b3e4448 Tiny bit of work on HTTP client and sample usage of it
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 }