I'm starting a project which requires a bit of low-level programming (and I prefer to be able to deliver it as a self-contained binaries, without the user having to install any sort of lisp runtime) but I've grown used to s-expression syntax so it would be easier for me to implement most of the higher-level logic in something with a lot of parentheses. I'm thinking of writing a C program which consists mostly of a library of low-level functions and a main() that simply loads and executes some lisp scripts. I know Guile Scheme can do that but it's a GNU project so it might suck. what are the alternatives?
>>2 Wasting bits on tags is disgusting. 30-bit integers, ugh.
Name:
Anonymous2016-09-28 11:17
tinyscheme, s7, chicken, gambit-c, bigloo... ecl, gcl and maybe even ccl
Name:
Anonymous2016-09-28 13:40
>>3 Hey, they will need to garbage collect the 32bits at some point. You know computers can only store 250Million ints per GB of ram. They add up. Just ask Ocaml developers.
Name:
Anonymous2016-09-28 14:04
but 30 is such an ugly number
Name:
Anonymous2016-09-28 15:49
>>6 Thats only your prejudices, dualist bytelord. 30 is a big beautiful even number with its own personality. Great communication skills, being super-creative and entertaining are attributes of the number 30. 30 is popular and well liked by all and enjoy having a good laugh and a fun time. 30 is known to be a cheeky and charismatic energy.
People with the 30 energy love to talk! They despise upsetting others, and will go out of their way to avoid conflict. They do well when given the freedom to express themselves.
Name:
Anonymous2016-09-28 18:14
>>5 What the hell are you talking about? 30-bit integers are worse than 32-bit integers in all respects. The only reason any language would have them is if its creator was too inept to build in at least a primitive type system.
Name:
Anonymous2016-09-28 18:51
>>8 How can 30 bit integers even exist without a type system? I mean unless you're using a CDC 6600 or something, that's not consistent with any machine's word size. 8, 32, and 64 bits are the "natural" sizes for modern computers.
Name:
Anonymous2016-09-28 18:52
And if 32 bit ints take up too much space, just use 16-bit shorts for that.
Name:
Anonymous2016-09-28 18:53
Check em
Name:
Anonymous2016-09-28 19:01
>>9 They're 30-bit because the interpreter uses 2 bits for the type flag. It literally has just 4 types which it tests for at runtime. This is an ancient shitty trick used by Lispers to avoid implementing a real type system.
#define tag(x) ((x)&0x3)
switch (tag(v)) { case TAG_NUM: fprintf(f, "%ld", numval(v)); break; case TAG_SYM: fprintf(f, "%s", ((symbol_t*)ptr(v))->name); break; case TAG_BUILTIN: fprintf(f, "#<builtin %s>", builtin_names[intval(v)]); break; case TAG_CONS:
Clasp is a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. Embedding them in a Common Lisp environment allows you to make use of rapid prototyping, incremental development, and other capabilities that make it a powerful language.
Name:
Anonymous2016-09-30 13:20
>>20 Not mature enough. It's just a project by one guy.
Name:
Adblock detected2016-09-30 13:24
We have detected that you are using adblock on your web browser. Please disable adblock to view this content.
Name:
Anonymous2016-10-01 16:12
>>20 but I want literally the opposite. I don't want to compile lithp to native code, I want my native code to be lithp-scriptable without compilation. I want to use lithp the way people use lua
>>12 argmath.h is not used elsewhere in void.h its is provided as convenience macros for incrementing/decrementing constant literals at compile-time. Same functionality is available in Boost C++ Preprocessor headers(except the inc/dec generators at top)
Name:
Anonymous2016-10-03 5:31
>>26 argmath.h is actually optional(and never used so far in any code. its basically for Boost compatibility), and the only header that gets complained about. I'm removing it at next revision if there is interest.
Name:
Anonymous2016-10-03 5:35
Hmm there is one line using it actually:
//compile-time tuple selector:tuple format (condition(0=false,1-64=true),tupletrue,tuplefalse) #define iftuple(texpr3) ntharg( incr(reduce0arg(ntharg(1,sdt(texpr3))),1) ,revargs(sdt(texpr3)))
Name:
Anonymous2016-10-03 6:49
argmath.h now removed from void.h(and some minor fixes to startup main macro)