Giter Club home page Giter Club logo

racket's Introduction

Racket is a general-purpose programming language and an ecosystem for language-oriented programming.

This repository holds the source code for the core of Racket plus some related packages. The rest of the Racket distribution source code is in other repositories, mostly under the Racket GitHub organization.

Quick Start

Pre-built versions of Racket for a variety of operating systems and architectures, as well as convenient source distributions are available at

https://download.racket-lang.org

Racket comes with extensive documentation, including several tutorials. You can read all of this documentation, as well as documentation for third-party packages at

https://docs.racket-lang.org

Building from Source

For information on building Racket from this repository, see the Build Guide.

Contributing

Contribute to Racket by

By making a contribution, you are agreeing that your contribution is licensed under the LGPLv3, Apache 2.0, and MIT licenses. Those licenses are available in this repository in the files racket/src/LICENSE-LGPL.txt, racket/src/LICENSE-APACHE.txt, and racket/src/LICENSE-MIT.txt.

See the Building, Distributing, and Contributing to Racket for more guidance on contributing.

The Friendly Environment Policy contains guidelines on expected behavior within the Racket community.

License

Racket is free software; see LICENSE for more details.

racket's People

Contributors

akeep avatar bdj avatar bennn avatar bfetscher avatar carl-eastlund avatar clklein avatar dybvig avatar elibarzilay avatar endobson avatar ghcooper avatar gus-massa avatar jbclements avatar jeapostrophe avatar kazzmir avatar leifandersen avatar lexi-lambda avatar maxsnew avatar mfelleisen avatar mflatt avatar mikesperber avatar rfindler avatar rmculpepper avatar samth avatar sorawee avatar sschwarzer avatar sstrickl avatar stamourv avatar stchang avatar takikawa avatar tewk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

racket's Issues

Websocket support is out of date

It seems that websocket module currently supports only HyBi 00 specification, which has been phased out by browsers due to security concerns.

This renders the current implementation unsuitable for real world use, since all new browsers only support the newer HyBi 10 specification.

See this document for detailed breakdown of changes.

It seems that current internal version for the protocol is 13. Based on quick reading the changes between the HyBi 10 and the latest are minor - the largest breaking change seems to be the new key handshake.

read-html-as-xml does not work as specified in the documentation.

read-html-as-xml is a function in the HTML library that says
"Reads HTML from a port, producing an X-expression compatible with the xml library[.]"

(http://docs.racket-lang.org/html/#%28def._%28%28lib._html%2Fmain..rkt%29._read-html-as-xml%29%29)

However, after checking the results with xexpr? from the xml library it will return '#f'

The following code returns '#f' when it should be '#t' if going by the documentation.

(require html
         xml
         net/url)

(xexpr? 
 (read-html-as-xml
  (get-pure-port (string->url "http://www.google.com"))))

racket C externs problem

I want ask a question. I don't know this place is supported or not.

raco ctool --3m -x test.cpp
test.cpp is a file as same as doc main.c. The simplest example c externs with 3m.
but when I add a line in test.cpp (#include )

racket (or vs compiler) will give me a problem:
Error [Inst] 610 in C:.....\yvals.h:Static instance of class _Lockit
Error [Inst] 700 in C:.....\yvals.h:Static instance of class _Mutex
I don't know why. I know 3m is not very good support c++,It need time to grow up,but this is an easy thing. I think maybe my problem.

I search it on the google , it's about thread. I have no way to solve.
cgc is good, but I have to compile racket , And I racket-org have no cgc version.

5.3.6 fails to compile on DragonFly BSD

Racket does not compile on DragonFly BSD (tried 5.3.1 and 5.3.6 on a 64-bit host).

Here is a dump of the relevant part from the build output:

env XFORM_USE_PRECOMP=xsrc/precomp.h ../racketcgc -cqu ../.././../racket/gc2/xform.rkt --setup . --cpp "cpp -I./.. -I../.././../racket/gc2/../include -I/usr/local/include -pthread     -DMZ_USES_SHARED_LIB"  --keep-lines -o xsrc/bignum.c ../.././../racket/gc2/../src/bignum.c
Error [CALL] 1700 in ../.././../racket/gc2/../src/bignum.c: Bad place for function call, starting tok is __builtin_choose_expr.
Error [CALL] 1700 in ../.././../racket/gc2/../src/bignum.c: Bad place for function call, starting tok is __builtin_choose_expr.
Error [CALL] 1700 in ../.././../racket/gc2/../src/bignum.c: Bad place for function call, starting tok is __builtin_types_compatible_p.
Error [CALL] 1700 in ../.././../racket/gc2/../src/bignum.c: Bad place for function call, starting tok is __builtin_types_compatible_p.
Error [CALL] 1700 in ../.././../racket/gc2/../src/bignum.c: Bad place for function call, starting tok is __builtin_types_compatible_p.
xform: Errors converting
*** Error code 1

Stop.
make: stopped in /usr/obj/dports/lang/racket/work/racket-5.3.6/src/build/racket/gc2
*** Error code 1

Stop.
make: stopped in /usr/obj/dports/lang/racket/work/racket-5.3.6/src/build/racket/gc2
*** Error code 1

Stop.
make: stopped in /usr/obj/dports/lang/racket/work/racket-5.3.6/src/build/racket
*** Error code 1

Stop.
make: stopped in /usr/obj/dports/lang/racket/work/racket-5.3.6/src/build
*** Error code 1

Stop.
make: stopped in /usr/obj/dports/lang/racket/work/racket-5.3.6/src/build
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/racket
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/racket

So it fails on line 1700 in src/racket/src/bignum.c (version 5.3.6). Code at this line is this:

      if (MZ_IS_POS_INFINITY(v)) {
#ifdef USE_SINGLE_FLOATS_AS_DEFAULT
        return scheme_make_float(v);
#else
        return scheme_make_double(v);
#endif
      }

The MZ_IS_POS_INFINITY(v) macro is defined in src/racket/src/schpriv.h.

I tried to investigate further in order to fix this but I think it would require more than a simple patch and I thus decided to report this issue.

Test

Testing hook.

Discrepancy between `raco` behavior & docs (5.3.6)

According to the raco setup docs, I would have thought that setting $PLT_SETUP_OPTIONS to '--workers 1 pkg1 pkg2 pkg3' would be sufficient to only build & install those three packages. However, I received an error (which I'll reproduce and provide soon) until I added -l, like '--workers 1 -l pkg1 pkg2 pkg3'.

By the way, I know that the presence of --workers 1 is probably immaterial, but until I can verify that it doesn't affect the bug nor the fix, I'll leave it in the problem description.

To make it very clear, the section I'm referring to is:

To restrict raco setup to a set of collections, provide the collection names as arguments. For example, raco setup scribblings/raco would only compile and render the documentation for raco, which is implemented in a "scribblings/raco" collection.

test

test 1117
edited at 1121
more stuff 1157

raco pkg install on Windows handles user-input incorrectly

It seems to have problems with the carriage return character: \r

Example:

C:\Program Files\Racket>raco.exe pkg install frog
    The following packages are listed as dependencies, but are not currently installed:
        markdown rackjure
    Would you like to install them via your package indices? [Yn] Y
    Invalid input: "Y\r"

sequence-filter fails if the resulting sequence is empty

Code snippet demonstrating the issue:

(sequence-length (sequence-filter (thunk* #t) empty-sequence))

Line 123 of sequence.rkt reads:
(if (apply f vals)
I believe it should read:
(if (or (not vals) (apply f vals))
to mimic lines 128-129

Generics do not seem to work for bitmap%-objects

Trivial example: (send-generic (make-bitmap 50 50) (generic bitmap% get-width))

Results in the following error:

generic:get-width: target is not an instance of the generic's class
target: (object:bitmap% ...)
class name: bitmap%```

The same error applies to make-dc, get-height, etc.

Add title bar button for OS X fullscreen mode

screen shot 2014-02-06 at 13 02 09

I found a hint on how to implement this on http://fredandrandall.com/blog/2011/09/08/how-to-make-your-app-open-in-full-screen-on-lion/.

In other words, the solution will probably involve adding…

(define NSWindowCollectionBehaviorFullScreenPrimary   128)
(define NSWindowCollectionBehaviorFullScreenAuxiliary 256)

(if something
  (tellv c setCollectionBehavior: #:type _int NSWindowCollectionBehaviorFullScreenPrimary)
  (tellv c setCollectionBehavior: #:type _int NSWindowCollectionBehaviorFullScreenAuxiliary))

…to /pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/frame.rkt. :)

Add an #:immobile keyword to a cstruct field definition or make it the default

Would it be helpfull to add an#:immobile tag to the definition of a field in define-cstruct? This key could automate the generation of immobile cells for compound racket data in the field's getter and setter. The cstuct's #:immobile field would then be a simple _pointer to the _racket immobile cell. Another option could be to simply make this the default behavior when a field is tagged with the _racket or _scheme pointer type. In some pseudo-scheme:

(define (#,cstruct-field-getter a-cstruct) ; get the contents of an existing cell
  (ptr-ref (#,old-field-getter a-cstruct) _racket))
(define (#,cstruct-field-setter a-cstruct val) ; set the struct's _pointer to a new _racket cell
  (free-immobile-cell (#,old-field-getter a-cstruct))
  (#,old-field-setter a-cstruct (malloc-immobile-cell val)))

The constructor could maybe also be changed to immediately place values provided for these fields in an immobile cell. Otherwise the user would need to do this by hand to maintain consistency. An example:

(define-cstruct _someStruct
  [field1 _int]
  [field2 _racket #:immobile] ; or just [field2 _racket]
  [field3 _scheme #:immobile]) ; or just [field3 _scheme]

(define cs (make-someStruct 1 "Hello" (cons 'a 'b))) ; "Hello" and '(a . b) get wrapped in an immobile cell
(someStruct-field2 cs) ; gives "Hello"
(someStruct-field3 cs) ; gives '(a . b)
(collect-garbage)
(someStruct-field2 cs) ; still gives "Hello"
(someStruct-field3 cs) ; still gives '(a . b)

See also this post on the maining list.

Regexp suspends repl [closed]

EDIT: Used #px and escaped \s using another \ as suggested by soegaard on irc, sorry for reporting invalid issue!

When I run this:

-> (regexp-match #rx"\s" "PING :server.net")                                                          
")\n(regexp-match #rx"
; s: undefined;
;  cannot reference undefined identifier
; [,bt for context]
" "
; PING: undefined;
;  cannot reference undefined identifier
; [,bt for context]
; :server.net: undefined;
;  cannot reference undefined identifier
; [,bt for context]
-> (regexp-match #rx"hi" "hi")
")\n(regexp-match #rx"
; hi: undefined;
;  cannot reference undefined identifier
; [,bt for context]
" "
; hi: undefined;
;  cannot reference undefined identifier
; [,bt for context]
-> ,exit
    ,exit
    ,exit
    ^C; user break [,bt for context]
,exit

Just wanted to report this since I think it is a bug.

TR: "Native" support for homogeneous C vectors

I've been trying to use Typed Racket for a game project, and my code includes a lot of assignments to an f32vector. I imported it into Typed Racket such as this:

(require/typed ffi/vector
    [opaque F32Vector f32vector?]
    [f32vector-set! (F32Vector Integer Float -> Void)])

Unfortuantely, this completely kills the program performance due to all the runtime type checks. Would it be possible to have TR support this module "natively"?

Populate "compiled" directories (for faster loading) provokes error

The MetaPict package works in DrRacket only if the option
"Populate "compiled" directories (for faster loading) provokes error"
is turned off.

The error message is:
Welcome to DrRacket, version 6.0.0.1--2014-01-30(7476ca0/d) [3m].
Language: racket; memory limit: 256 MB.
../racket/collects/compiler/cm.rkt:430:6: write: unsealed local-definition or module context found in syntax object

To reproduce:

  1. Get MetaPict here: https://github.com/soegaard/metapict
  2. Open and run main.rkt

Retina Display Support for DrRacket

DrRacket still doesn't support retina display. I got minimal improvements just by adding
the NSPrincipalClass key with value NSApplication to the info.plist of the app. This behavior is described in the official wxWidgets documentation.
More work needs to be done for the text area. I guess that's a GL view and some of the Obj-c mixins need to be extended to support new protocolls.

Function call and procedure application?

In the documentation, the term function call and procedure application are used. I think the term function application and procedure call are better: the former is mathematical and the latter computer scientific.

no "for/stream"

stream lacks its own for form, to match for/list, for/vector, for/hash, and for/set

seekable-port? in file/zip should recognize string/byte ports.

The documentation on file-position suggests that it allows seeking on an string output port. seekable-port? in file/zip does not recognize this currently.

It would be nice if seekable-port? recognized string output ports as seekable ports, as the file/zip library generates files that cannot be decompressed by the OS X unarchiver if it is writing to a non-seekable port.

Change line number color?

Hi.

If you choose a dark theme with a dark background, it is almost impossible to read the line numbers, since they are black. And I can't find a way in settings to change the color..

failed to open drracket on kuhio day

The splash spec on kuhio day is not bitmap but with code creating a vector containing palaka's draw-honu proc.
Then the vector is fed into a read-bitmap form in drracket/private/drracket-normal.rkt.

Unfortunately, read-bitmap does not expect vector arg.

This bug is introduced since commit f210692.

Actually, I think read-bitmap application can be wasteful. Since start-splash can handle path-string or port

update to Intro-Projects

One of the "Small Projects" mentioned on the Intro-Projects page is to create XMPP bindings. I wrote a PLT module some time ago which covers a simple subset of the XMPP protocol, which may be a useful start for any further development. https://github.com/zzkt/gibberish

It is unclear from command line help how to select language

The command line help when you type racket -help says nothing about selecting a language to use, and the #lang directive doesn't work in the REPL. It took a bit of searching online to find out that this:

-I <path> : Set <init-lib> to <path>

was the way to select the language.

doc typo for stream-empty?

Currently reads:

Returns #f if s has no elements, #f otherwise.

should be

Returns #t if s has no elements, #f otherwise.

pkgs/racket-pkgs/racket-doc/scribblings/reference/sequences.scrbl
it's line 762 in c681c6e

in-region?-method of class region% breaking its contract

The in-region? method in racket/draw/private/region.rkt is throwing out-of-contract result values. It seems that the else-branch of the last if-test in install-region is not being covered, whitch produces a void value instead of a boolean.

Above that, an error is thrown about a pointer being wrongly set when passing a drawing container to a region and in-region gets called afterwards,

Error trace:

Without drawing container:

in-region? method in region%: broke its contract
promised: boolean?
produced: #<void>
in: the range of
    the in-region? method in
    region%/c
contract from: <collects>/racket/draw.rkt
blaming: <collects>/racket/draw.rkt
at: <collects>/racket/draw.rkt:55.19

With drawing container:

ptr-set!: given value does not fit primitive C type
  C type: _double*
  given value: #t

Tested on Ubuntu 12.10 with Racket v5.3.3.

I would patch it myself but unfortunately I have no idea how the underlying Cairo-library works.

[Honu] Error highlightning in DrRacket

The program

#lang racket
(+ 1 "x")

will when run in DrRacket color the expression (+ 1 "x") red.

The corresponding Honu program doesn't color the offending expression:

#lang honu
1+"x"

Documentation/implementation mismatch for free-identifier=?, others

The documentation for free-identifier=? claims it accepts syntax?. However, it seems to actually require identifier?:

-> (free-identifier=? #'(1 2 3) #'(1 2 3))
; free-identifier=?: contract violation
;   expected: identifier?

Several other identifier related functions have similar documented contracts and I suspect and similarly wrong, e.g., free-label-identifier.

redex amb tutorial has faulty or ambiguous exercise

In exercise 1 of http://docs.racket-lang.org/redex/tutorial.html it asks you to extract the body of the function for the following expression

((λ (x) (+ x 1))
 17)

As exercise 1, and with the language used, it seems like defining a custom grammar to do so is out of scope, and you're supposed to use the supplied language L. The problem is that you can't match the above expression with L because it expects lambda forms to have 2 args (x t), as shown in the first failed match example.

Further, it asks for you to extract "the body of the function" and I honestly can't tell if I'm supposed to extract the body of the function application 17 or the function body being applied (+ x 1). The former is easy, the latter seems infeasible given the lesson so far. I've gotten it to work via:

(redex-match L ((λ (_ _) e_1) e_2)
             (term ((λ (x num) (+ x 1))
                    17)))

But it was a huge leap to assume that I could manually substitute e_1 with something as complex as (λ (_ _) e_1) and _ hasn't been mentioned to ignore pieces. Since it seems that match is actually being used under the covers of redex-match, maybe at least add a link to the patterns available? Either this tutorial should be as standalone as possible, or it needs to link to the applicable reference material to finish the exercises.

match w/ list-no-order broken

(match '((nand b b w2)
         (nand w1 w1 w4s1))
  [(list-no-order `(nand ,a ,a ,b)
                  `(nand ,b ,b ,c) rest ...)
   'good]
  [else 'bad])

fails with:

b13: unbound identifier;
 also, no #%top syntax transformer is bound in: b13

gcc 4.8.1 win32 mingw compilation fails: ffi_common.h:51:34: error: expected declaration

More log:

../../../foreign/libffi/src/java_raw_api.c:225:4: warning: implicit declaration of function 'bcopy' [-Wimplicit-function-declaration]
    memcpy ((void*) raw->data, (void*)*args, (*tp)->size);
    ^
In file included from ../../../foreign/libffi/src/java_raw_api.c:39:0:
../../../foreign/libffi/include/ffi_common.h:51:27: warning: incompatible implicit declaration of built-in function 'bcopy' [enabled by default]
 #  define memcpy(d, s, n) bcopy ((s), (d), (n))
                           ^
../../../foreign/libffi/src/java_raw_api.c:225:4: note: in expansion of macro 'memcpy'
    memcpy ((void*) raw->data, (void*)*args, (*tp)->size);
    ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../../foreign/libffi -I. -I../../../foreign/libffi/include -Iinclude -I../../../foreign/libffi/src -O3
 -fomit-frame-pointer -fstrict-aliasing -ffast-math -mtune=corei7 -Wall -fexceptions -MT src/java_raw_api.lo -MD -MP -MF src/.deps/java_raw_api.Tpo -c
 ../../../foreign/libffi/src/java_raw_api.c -o src/java_raw_api.o >/dev/null 2>&1
depbase=`echo src/closures.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
        /bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../foreign/libffi  -I. -I../../../foreign/libffi/include -Iinclude
 -I../../../foreign/libffi/src   -O3 -fomit-frame-pointer -fstrict-aliasing -ffast-math -mtune=corei7  -Wall -fexceptions -MT src/closures.lo -MD -MP
-MF $depbase.Tpo -c -o src/closures.lo ../../../foreign/libffi/src/closures.c &&\
        mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../../foreign/libffi -I. -I../../../foreign/libffi/include -Iinclude -I../../../foreign/libffi/src -O3
 -fomit-frame-pointer -fstrict-aliasing -ffast-math -mtune=corei7 -Wall -fexceptions -MT src/closures.lo -MD -MP -MF src/.deps/closures.Tpo -c ../../.
./foreign/libffi/src/closures.c  -DDLL_EXPORT -DPIC -o src/.libs/closures.o
In file included from ../../../foreign/libffi/src/closures.c:34:0:
../../../foreign/libffi/include/ffi_common.h:51:34: error: expected declaration specifiers or '...' before '(' token
 #  define memcpy(d, s, n) bcopy ((s), (d), (n))
                                  ^
../../../foreign/libffi/include/ffi_common.h:51:39: error: expected declaration specifiers or '...' before '(' token
 #  define memcpy(d, s, n) bcopy ((s), (d), (n))
                                       ^
../../../foreign/libffi/include/ffi_common.h:51:44: error: expected declaration specifiers or '...' before '(' token
 #  define memcpy(d, s, n) bcopy ((s), (d), (n))
                                            ^
In file included from ../../../foreign/libffi/src/closures.c:233:0:
../../../foreign/libffi/src/dlmalloc.c: In function 'internal_realloc':
../../../foreign/libffi/src/dlmalloc.c:3894:9: warning: implicit declaration of function 'bcopy' [-Wimplicit-function-declaration]
         memcpy(newmem, oldmem, (oc < bytes)? oc : bytes);
         ^
In file included from ../../../foreign/libffi/src/closures.c:34:0:
../../../foreign/libffi/include/ffi_common.h:51:27: warning: incompatible implicit declaration of built-in function 'bcopy' [enabled by default]
 #  define memcpy(d, s, n) bcopy ((s), (d), (n))
                           ^
../../../foreign/libffi/src/dlmalloc.c:3894:9: note: in expansion of macro 'memcpy'
         memcpy(newmem, oldmem, (oc < bytes)? oc : bytes);
         ^
make[12]: *** [src/closures.lo] Error 1
make[12]: Leaving directory `/d/Heather/Contrib/P/racket/racket/src/build/foreign/libffi'

Scribble HTML rendering hyperlinks with &

It seems scribble is double-encoding ampersand in URLs. For instance:

@hyperlink["https://aur.archlinux.org/packages/?SeB=m&K=bluephoenix47" "Aur"]

Is rendered as:

"https://aur.archlinux.org/packages/?SeB=m&amp;amp;K=bluephoenix47"

The & should be encoded once, as far as I can tell, but the double-encoding breaks the link.

A compile problem

because I want to use boost and window lib in my racket c/c++ extens
At last I use cgc with my racket program, I compiled from the source code.

All is good,but I get a problem.

When I use raco exe and ctool compile my rkt files.
If I don't change any source code, the exe that raco make is not same with before raco make.
I mean. when I run raco make exe, exe's md5 is changed, I want to make a update in a big project. And I have a md5 check,but I don't want to update racket's exe every time.

Do you have any way? Thank you very much!

build error: libtool: unknown option character `-' in: --mode=compile

% libtool -V
Apple Inc. version cctools-839

% sw_vers
ProductName:  Mac OS X
ProductVersion: 10.8.3
BuildVersion: 12D78

% pwd
/tmp/racket-5.3.4/src

% ./configure --disable-debug --disable-dependency-tracking --enable-xonx --enable-shared --prefix=/usr/local/Cellar/plt-racket/5.3.4 --enable-mac64 --enable-sgc --disable-gracket
checking build system type... i386-apple-darwin12.3.0
checking host system type... i386-apple-darwin12.3.0
checking target system type... i386-apple-darwin12.3.0
=== Unix style enabled
=== Shared libraries enabled
=== GRacket disabled
=== Libtool program: libtool
=== SGC enabled
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking for cos in -lm... yes
checking for dlopen in -ldl... yes
checking for inline keyword... yes
checking for noinline attribute... yes
checking for GNU preprocessor... yes
checking for nl_langinfo (CODESET)... yes
checking for getaddrinfo... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking iconv is usable... yes -liconv
checking for mbsrtowcs... yes
checking for kqueue... yes
checking for mmap and mprotect... yes
checking for char... yes
checking size of char... 1
checking for short... yes
checking size of short... 2
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 8
checking for long long... yes
checking size of long long... 8
checking for void *... yes
checking size of void *... 8
checking for intptr_t... yes
checking for uintptr_t... yes
checking for stack direction... down
checking whether byte ordering is bigendian... no
checking for compare-and-swap... yes
checking whether pthread_rwlock is available... yes
Configuring libtool
configure: creating ./config.status
config.status: creating Makefile
config.status: creating racket/Makefile
config.status: creating racket/src/Makefile
config.status: creating racket/dynsrc/Makefile
config.status: creating racket/gc/Makefile
config.status: creating racket/sgc/Makefile
config.status: creating racket/gc2/Makefile
config.status: creating foreign/Makefile
config.status: creating racket/mzconfig.h
=== configuring in foreign/libffi (/tmp/racket-5.3.4/src/foreign/libffi)
configure: running /bin/sh ./configure '--prefix=/usr/local/Cellar/plt-racket/5.3.4'  --cache-file=/dev/null --srcdir=.
checking build system type... x86_64-apple-darwin12.3.0
checking host system type... x86_64-apple-darwin12.3.0
checking target system type... x86_64-apple-darwin12.3.0
checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld
checking if the linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm
checking the name lister (/usr/bin/nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm output from gcc object... ok
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fno-common -DPIC
checking if gcc PIC flag -fno-common -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin12.3.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for mmap... yes
checking for sys/mman.h... (cached) yes
checking for mmap... (cached) yes
checking whether read-only mmap of a plain file works... yes
checking whether mmap from /dev/zero works... no
checking for MAP_ANON(YMOUS)... yes
checking whether mmap with MAP_ANON(YMOUS) works... yes
checking for ANSI C header files... (cached) yes
checking for memcpy... yes
checking for working alloca.h... yes
checking for alloca... yes
checking size of double... 8
checking size of long double... 16
checking whether byte ordering is bigendian... no
checking assembler .cfi pseudo-op support... no
checking whether .eh_frame section should be read-only... no
checking for __attribute__((visibility("hidden")))... no
configure: creating ./config.status
config.status: creating include/Makefile
config.status: creating include/ffi.h
config.status: creating Makefile
config.status: creating testsuite/Makefile
config.status: creating man/Makefile
config.status: creating libffi.pc
config.status: creating fficonfig.h
config.status: linking src/x86/ffitarget.h to include/ffitarget.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing include commands
config.status: executing src commands
>>> Installation targets:
 executables  : ${exec_prefix}/bin/...
 Racket code  : ${exec_prefix}/lib/racket/collects/...
 core docs    : ${datarootdir}/doc/racket/...
 C libraries  : ${exec_prefix}/lib/...
 C headers    : ${prefix}/include/racket/...
 extra C objs : ${exec_prefix}/lib/racket/...
 man pages    : ${datarootdir}/man/...
     where prefix = /usr/local/Cellar/plt-racket/5.3.4
  and datarootdir = ${prefix}/share
  and exec_prefix = ${prefix}


% make
make 3m
cd racket; make 3m
make cgc
make common
make g-c
cd sgc; make ../libmzgc.la
libtool --mode=compile --tag=CC gcc -g -O2  -DOS_X -D_DARWIN_UNLIMITED_SELECT -DXONX  -pthread  -Wall   -DUSE_SENORA_GC -I.. -c ./sgc.c -o sgc.lo
libtool: unknown option character `-' in: --mode=compile
Usage: libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT]
Usage: libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load]
make[6]: *** [sgc.lo] Error 1
make[5]: *** [g-c] Error 2
make[4]: *** [common] Error 2
make[3]: *** [cgc] Error 2
make[2]: *** [3m] Error 2
make[1]: *** [3m] Error 2
make: *** [all] Error 2

Crash in ffi_do_callback

I am trying to create racket bindings for libdispatch.

One of the functions i am trying to get to work in racket takes, among other things, a function as an argument which it will execute later on.

When this function tries to call back to the racket function i passed in, racket crashes with EXC_BAD_ACCESS (trying to access memory addres 0x8) in ffi_do_callback.

You can see the code I currently have here: http://pastebin.com/TWjSqSxX.

The curious thing is: If I comment out the dispatch_async call, and instead insert a dispatch_sync call on another queue (commented out currently) that works just fine, so the callback mechanism itself seems to work fine, just not when the asynchronous version is used.

ports created with make-input-port are comparatively very slow

When measured, ports created with make-input-port seem to be much slower than built-in ports:

-> (require racket/port)
-> (define in (open-input-bytes (make-bytes 1000000)))
-> (define pin (peeking-input-port in))
-> (time (for ((i 1000000)) (read-byte pin)))
cpu time: 1872 real time: 1875 gc time: 14
-> (time (for ((i 1000000)) (read-byte in)))
cpu time: 160 real time: 160 gc time: 0

I understand that built-in ports are written in C, but the gap seems to be too large even for that. Another example, a naive port returning a stream of zeroes:

-> (define nilin
     (make-input-port 'test-port
                      (λ (bstr)
                        (bytes-length bstr))
                      #f void))
-> (time (for ((i 1000000))
     (read-byte nilin)))
cpu time: 718 real time: 720 gc time: 0

As compared to just producing the numbers without the port:

-> (define bstr (make-bytes 32))
-> (define (fill bstr)
     (bytes-length bstr))
-> (time (for ((i 1000000))
           (fill bstr)))
cpu time: 145 real time: 145 gc time: 0

`get-key-release-code of key-event% returns 'down instead of 'press

The method `get-key-release-code on key-event% returns 'down for a key-press event.

This is contrary to the documentation, which states that it should return 'press (http://docs.racket-lang.org/gui/key-event_.html?q=key-event%25#%28meth._%28%28%28lib._mred%2Fmain..rkt%29._key-event~25%29._get-key-release-code%29%29).

This also makes detecting key-press events more difficult, because `get-key-release-code also returns 'down on the key-release event of the down-arrow key.

warp-pointer freeze under Mac OS X

The warp-pointer method of window<%> causes the cursor to 'freeze' for a short time under Mac OS X. During that time, mouse movement will trigger mouse events even though the cursor can not move. (Example)

This appears to be a problem of CGWarpMouseCursorPosition used here with a possible solution being discussed on StackOverflow.

Typed Racket doesn't play well with `(enter! ...) `

  1. Create a file "tr-test.rkt" containing
#lang typed/racket
(require math/array)
(define arr
  (build-array #(4 5) (lambda: ([js : Indexes])
                        (match-define (vector j0 j1) js)
                        (+ j0 j1))))
(array+ arr arr)
  1. Type (enter! "tr-test.rkt") into a REPL. The output is
(array #[#[0 2 4 6 8] #[2 4 6 8 10] #[4 6 8 10 12] #[6 8 10 12 14]])
  1. Type (array+ arr arr) at the REPL prompt. The output is
stdin::23: Type Checker: The type of array-map cannot be converted to a contract
  in: (typed:array-map + arr arr)
  context...:
   temp53
   /Users/hinsen/Applications/Racket/collects/typed-racket/typed-racket.rkt:62:4
   /Users/hinsen/Applications/Racket/collects/racket/private/misc.rkt:87:7

It doesn't help to launch a REPL for Typed Racket. It's even worse:

> racket -I typed/racket
> (enter! "tr-test.rkt")
stdin::1: Type Checker: untyped top-level identifier enter!
  in: enter!
  context...:
   /Users/hinsen/Applications/Racket/collects/typed-racket/typecheck/tc-toplevel.rkt:411:0: tc-toplevel-form
   temp53
   /Users/hinsen/Applications/Racket/collects/typed-racket/typed-racket.rkt:62:4
   /Users/hinsen/Applications/Racket/collects/racket/private/misc.rkt:87:7

the signature for "set-map" is inconsistent with the rest of racket.

the map functions for lists, vectors and streams all take a procedure as their first argument:

> (map add1 '(1 2 3))
'(2 3 4)
> (vector-map add1 #(1 2 3))
'#(2 3 4)
> (stream-map add1 (stream 1 2 3))
#<stream>

set-map, however, takes it as its last argument - and also returns a list

> (set-map (set 1 2 3) add1)
'(4 3 2)

weird behaviour. It should be

> (set-map add1 (set 1 2 3))
(set 4 3 2)

run "make install" failed

hi.

wget http://mirror.racket-lang.org/installers/6.0.1/racket-6.0.1-src.tgz
tar zxvf racket-6.0.1-src.tgz
cd racket-6.0.1
cd src
./configure
make
make install

---------------------------------------------------------------
as3:~/racket-6.0.1/src# make install
make install-3m
make[1]: Entering directory `/root/racket-6.0.1/src'
make install-3m-common
make[2]: Entering directory `/root/racket-6.0.1/src'
make install-common-first
make[3]: Entering directory `/root/racket-6.0.1/src'
mkdir -p "/root/racket-6.0.1/bin" "/root/racket-6.0.1/collects" "/root/racket-6.0.1/doc" "/root/racket-6.0.1/lib" "/root/racket-6.0.1/include" "/root/racket-6.0.1/lib" "/root/racket-6.0.1/share" "/root/racket-6.0.1/etc" "/root/racket-6.0.1/share/applications" "/root/racket-6.0.1/man"
make[3]: Leaving directory `/root/racket-6.0.1/src'
cd racket; make install-3m
make[3]: Entering directory `/root/racket-6.0.1/src/racket'
make headers
make[4]: Entering directory `/root/racket-6.0.1/src/racket'
./racketcgc -cqu ./mkincludes.rkt "/root/racket-6.0.1/include" "." .
Making /root/racket-6.0.1/include
Done.
make[4]: Leaving directory `/root/racket-6.0.1/src/racket'
make unix-install
make[4]: Entering directory `/root/racket-6.0.1/src/racket'
cd ..; rm -f "/root/racket-6.0.1/bin/racketcgc"
cd ..; rm -f "/root/racket-6.0.1/bin/racket"
cd ..; cp racket/starter "/root/racket-6.0.1/lib/starter"
cp ./dynsrc/starter-sh .
cd ..; cp racket/starter-sh "/root/racket-6.0.1/lib/starter-sh"
cd ..; strip "/root/racket-6.0.1/lib/starter"
./racketcgc -cu "./collects-path.rkt" "/root/racket-6.0.1/lib/starter" ../collects ../etc
cd ..; echo 'CC=gcc' > "/root/racket-6.0.1/lib/buildinfo"
cd ..; echo 'CFLAGS=-g -O2  -Wall     -pthread  ' >> "/root/racket-6.0.1/lib/buildinfo"
cd ..; echo 'OPTIONS=' >> "/root/racket-6.0.1/lib/buildinfo"
cd ..; echo 'MZOPTIONS= -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' >> "/root/racket-6.0.1/lib/buildinfo"
cd ..; echo "LDFLAGS= -pthread" >> "/root/racket-6.0.1/lib/buildinfo"
cd ..; echo 'LIBS=-ldl -lm  -ldl -lm -rdynamic -lffi   ' >> "/root/racket-6.0.1/lib/buildinfo"
make[4]: Leaving directory `/root/racket-6.0.1/src/racket'
make unix-install-3m
make[4]: Entering directory `/root/racket-6.0.1/src/racket'
cd ..; cp racket/racket3m "/root/racket-6.0.1/bin/racket"
cd ..; strip "/root/racket-6.0.1/bin/racket"
make unix-no-install-libs-3m
make[5]: Entering directory `/root/racket-6.0.1/src/racket'
:
make[5]: Leaving directory `/root/racket-6.0.1/src/racket'
cd ..; cp racket/mzdyn3m.o "/root/racket-6.0.1/lib/mzdyn3m.o"
./racket3m -cu "./collects-path.rkt" "/root/racket-6.0.1/bin/racket" ../collects ../etc
make[4]: Leaving directory `/root/racket-6.0.1/src/racket'
make unix-install-3m-final
make[4]: Entering directory `/root/racket-6.0.1/src/racket'
:
make[4]: Leaving directory `/root/racket-6.0.1/src/racket'
make[3]: Leaving directory `/root/racket-6.0.1/src/racket'
make install-gracket-3m
make[3]: Entering directory `/root/racket-6.0.1/src'
cd gracket; make install-3m
make[4]: Entering directory `/root/racket-6.0.1/src/gracket'
make install-wx_xt
make[5]: Entering directory `/root/racket-6.0.1/src/gracket'
make install-common
make[6]: Entering directory `/root/racket-6.0.1/src/gracket'
:
make[6]: Leaving directory `/root/racket-6.0.1/src/gracket'
cd ..; rm -f "/root/racket-6.0.1/lib/gracketcgc"
cd ..; rm -f "/root/racket-6.0.1/lib/gracket"
cd ..; echo 'MROPTIONS=' >> "/root/racket-6.0.1/lib/buildinfo"
cd ..; echo "MRLIBS=" >> "/root/racket-6.0.1/lib/buildinfo"
cd ..; echo "MRLDFLAGS=-pthread -L../racket" >> "/root/racket-6.0.1/lib/buildinfo"
cd ..; mkdir -p "/root/racket-6.0.1/lib";
make[5]: Leaving directory `/root/racket-6.0.1/src/gracket'
make install-wx_xt-3m
make[5]: Entering directory `/root/racket-6.0.1/src/gracket'
make install-no-lib-3m-wx_xt
make[6]: Entering directory `/root/racket-6.0.1/src/gracket'
echo "no dynamic libs"
no dynamic libs
make[6]: Leaving directory `/root/racket-6.0.1/src/gracket'
cd ..; cp gracket/gracket3m "/root/racket-6.0.1/lib/gracket"
cd ..; strip "/root/racket-6.0.1/lib/gracket"
../racket/racket3m  -cu "./../racket/collects-path.rkt" "/root/racket-6.0.1/lib/gracket" ../collects ../etc
make[5]: Leaving directory `/root/racket-6.0.1/src/gracket'
make install-wx_xt-3m-final
make[5]: Entering directory `/root/racket-6.0.1/src/gracket'
make[5]: Leaving directory `/root/racket-6.0.1/src/gracket'
make[4]: Leaving directory `/root/racket-6.0.1/src/gracket'
make[3]: Leaving directory `/root/racket-6.0.1/src'
make install-common-middle
make[3]: Entering directory `/root/racket-6.0.1/src'
make no-run
make[4]: Entering directory `/root/racket-6.0.1/src'
:
make[4]: Leaving directory `/root/racket-6.0.1/src'
make install-gracket-post-collects
make[4]: Entering directory `/root/racket-6.0.1/src'
cd gracket; make install-post-collects
make[5]: Entering directory `/root/racket-6.0.1/src/gracket'
make install-wx_xt-post-collects
make[6]: Entering directory `/root/racket-6.0.1/src/gracket'
:
make[6]: Leaving directory `/root/racket-6.0.1/src/gracket'
make[5]: Leaving directory `/root/racket-6.0.1/src/gracket'
make[4]: Leaving directory `/root/racket-6.0.1/src'
make lib-finish
make[4]: Entering directory `/root/racket-6.0.1/src'
if [ "" = "" ]; then \
          echo "/root/racket-6.0.1/lib"; \
        fi
/root/racket-6.0.1/lib
make[4]: Leaving directory `/root/racket-6.0.1/src'
make[3]: Leaving directory `/root/racket-6.0.1/src'
make[2]: Leaving directory `/root/racket-6.0.1/src'
racket/racket3m -X "/root/racket-6.0.1/collects" -G "/root/racket-6.0.1/etc"  -N "raco" -l- setup  --no-user
raco setup: bootstrapping from source...
raco setup: version: 6.0.1 [3m]
raco setup: installation name: 6.0.1
raco setup: variants: 3m
raco setup: main collects: /root/racket-6.0.1/collects
raco setup: collects paths:
raco setup:   /root/racket-6.0.1/collects
raco setup: main pkgs: /root/racket-6.0.1/share/pkgs
raco setup: pkgs paths:
raco setup:   /root/racket-6.0.1/share/pkgs
raco setup:   /root/.racket/6.0.1/pkgs
raco setup: links files:
raco setup:   /root/racket-6.0.1/share/links.rktd
raco setup:   /root/.racket/6.0.1/links.rktd
raco setup: main docs: /root/racket-6.0.1/doc
raco setup: --- updating info-domain tables ---
raco setup: updating: <collects>/info-domain/compiled/cache.rktd
raco setup: updating: /root/racket-6.0.1/share/info-cache.rktd
raco setup: --- pre-installing collections ---
raco setup: --- installing foreign libraries ---
raco setup: --- installing shared files ---
raco setup: installing: shared file <share>/slatex.sty
raco setup: installing: shared file <share>/slatex.py
raco setup: --- compiling collections ---
raco setup: making: <collects>/racket
raco setup:  in <collects>/racket
raco setup:  in <collects>/syntax
raco setup:  in <collects>/racket/private
raco setup: --- parallel build using 2 jobs ---
raco setup: 1 making: <collects>/compiler
raco setup: 0 making: <pkgs>/cext-lib/compiler
raco setup: 0 making: <pkgs>/cext-lib/compiler/commands
raco setup: 1 making: <collects>/compiler/private
raco setup: 1 making: <pkgs>/compiler-lib/compiler
raco setup: 0 making: <pkgs>/mzscheme-lib/compiler
raco setup: 0 making: <collects>/raco
make[1]: *** [install-3m] Killed
make[1]: Leaving directory `/root/racket-6.0.1/src'
make: *** [install] Error 2
as3:~/racket-6.0.1/src#

how to fix it?
tks a lot

Obsolete "Insert Pict Box" menu item in drracket's doc?

I read the paper "Slideshow: Functional Presentations" and at last I want to have a try with the WYSWYG "Pict Box".
Unfortunately, a commit f0f27e2 removes it from collects/slideshow/tool.ss.

By the way, its menu item is still seat well in drracket's doc.

Should it be removed?

address or size is not OS PAGE ALIGNED on powerpc64

While trying to build racket 5.3.5 on ppc64 machine, I've got following error:

[   72s] ../../racket/racket3m -cqu ./../../racket/gc2/xform.rkt --setup ../../racket/gc2 --cpp "gcc -E -I./../../racket/gc2 -I./../../racket/ -I./../../racket/include/   -pthread  -Dwx_xt -MMD"  --keep-lines -o xsrc/grmain.c +D INITIAL_COLLECTS_DIRECTORY='"'"`cd ./../../../collects; pwd`"'"' ./../grmain.c
[   72s] address or size is not OS PAGE ALIGNED!!!!make[5]: *** [xsrc/grmain.c] Aborted (core dumped)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.