标签: bigloo

如何在OS X中的Bigloo Scheme中启用本机线程支持?

我正在尝试从源代码编译Bigloo Scheme,我无法弄清楚如何Bigloo在OS X 10.5(Leopard)中启用本机线程支持(我还没有读过线程不应该在这个平台上工作的任何地方).

我跑./configure,但然后在配置摘要中,我总是得到

Release features:
  release number........................ 3.2a
  supported backends.................... native:yes JVM:no .NET:no
  default backend....................... native
  additional APIs....................... fthreads pthreads ssl web sqlite ssl sqlite web multimedia mail calendar pkgcomp pkglib
  native threads support................ no
  openssl support....................... yes (dtls no)
  sqlite support........................ sqltiny + sqlite
  dynamic libraries support............. yes
  bee support........................... partial
Run Code Online (Sandbox Code Playgroud)

我想Bigloo以便使用Hop,当我尝试使用如此创建的二进制文件运行它时,我总是得到警告

*** WARNING:bigloo:hop
Threads disabled, forcing "nothread" scheduler.
Run Code Online (Sandbox Code Playgroud)

任何帮助都感激不尽.

configuration scheme multithreading bigloo

6
推荐指数
1
解决办法
473
查看次数

如何规避Java编译中的"方法太大"错误?

我有一个用bigloo scheme函数语言编写的解析器,我需要编译成java类.整个解析器都是作为单个函数编写的.不幸的是,这导致JVM编译器抛出"Method too large"警告,然后在localvar中给出"far label"错误.有什么方法可以绕过这个错误吗?我在某处读到了关于DontCompileHugeMethods选项,它有用吗?拆分功能对我来说似乎不是一个可行的选择:( !!

java bigloo

5
推荐指数
1
解决办法
1922
查看次数

方案:正确应用eval函数?

在工作中,我在尝试使用Scheme实现配置脚本时遇到了一个基本问题.为了避免发明一种人为的和受限制的语言,脚本应该包含实际的代码.稍后将对此代码进行评估.要使配置按需工作,必须能够访问某些变量.这些变量仅在评估的上下文中已知.因此,必须在当前环境中评估配置脚本.这是我所说的一个原始的例子:

(let ((a #t))
  (wr "a is ..."
    (eval '(if a "true" "false"))))
Run Code Online (Sandbox Code Playgroud)

运行此代码时,我总是收到一条错误消息,告诉我变量'a'未知.所以问题是:你知道如何评估当前环境中的冻结代码吗?

PS:我使用bigloo编译器.

/////////////////////////////////////////////编辑:/// ////////////////////////////////////////////////// /

当使用Chris建议的方法时,我遇到了另一个有趣的问题,即case关键字的用法.以下两个示例都使用相同的case结构,它应该触发输出"yes!".线.不幸的是,他们表现得不同

通常 - >输出是"是的!" 正如所料:

  (define testit "test")
  (case testit
    (("test")
     (begin (newline) (write "yes!") (newline)))
    (else
      (begin (newline) (write "no!") (newline)))))
Run Code Online (Sandbox Code Playgroud)

使用eval - >输出令人惊讶地"不":

  (define env (null-environment 5))
  (eval '(define testit "test") env)
  (eval '(case testit
           (("test")
            (begin (newline) (write "yes!") (newline)))
           (else
            (begin (newline) (write "no!") (newline))))) 
Run Code Online (Sandbox Code Playgroud)

这有任何意义吗?

scheme eval expression-evaluation bigloo

0
推荐指数
1
解决办法
1468
查看次数