Brian T. Rice | 3 Jan 2011 22:46
Picon

2011 New Year's Update

Since I've been so publicity-shy the last few years, it must seem like Slate is dormant, but I'll try to dispel such impressions soon and start with some status updates.

Slate is (for purposes of overview) a self-hosted dynamic object-oriented language with prototypes, multi-method dispatch, and a variety of other strong features described at http://www.slatelanguage.org.

VM/platform-side:
The SSA VM is still supporting Slate's run-time well. We've not been regularly updating the 64-bit port of Slate but that is simply due to contraction of build supports (basically, I stick with 32-bit modes out of convenience and we don't have a regular user insisting on 64-bit usage). Other than that, Slate's runtime has remained very portable and stable.

Language:
* Rest-parameters, allowing methods/blocks to receive an arbitrary number of non-dispatching input values (without grouping them in Array arguments), were made possible using sequestering of the comma character from binary selectors.
* Assignment notation has been added, as a macro using a binary selector, but NOT requiring the backtick (`) prefix of ordinary macros. The parser in fact recognizes a class of binary selectors as having assignment-style precedence and expands them into the less-convenient message-passing style that is the basis of Slate abstraction. So we get notational convenience without breaking encapsulation, and without too many special parser rules (macros are just methods on AST node types as usual). Quick examples: "x := y foo: z" => "x: (y foo: z)" and "a at: 3 := 4" => "a at: 3 put: 4". Op-assignment like "+=" is also included.
* Other notations are in development, such as "::=" for immutable/nestable bindings, which will replace a lot of what Slate "define:" does for types and constants. "=:=" is envisioned for two-way unification/pattern-matching of terms.

Libraries:
* Stream / IO performance was increased by an order of magnitude by transitioning the API to build upon the bulk-transfer primitive style rather than element-by-element transfer, meaning that composed streams act faster because they're batching operations by default. This makes parsing and loading Slate libraries quicker, which also improves bootstrap-from-scratch. More in this direction is coming, as strongly informed by Smalltalk's recent experimental Xtreams project.
* Slate's parser was re-structured to be a little more efficient, extensible, and have better stateless stream-style behavior (anticipating a documentation language extension).
* "Pattern" syntax has been added, generalizing symbol syntax #foo with #(foo: _) to allow a few notations from Atomo (described below) such as generalizing `er which expands "#foo `er" to "[| :x | x foo]" into "[| :x :y | x foo: y]", or allowing for full functional-programming-style pattern matches. There's a lot going on with this that is in flux so I'll expand this later.
* Macros named `conditions: and `conditions:otherwise: were added to complement caseOf: and caseOf:otherwise: to allow condition-rule pair checking in methods that is efficient but intention-revealing for code that requires more abstraction support than PMD.
* The Slate file/module notion is taking a page from NewSpeak and CommonJS notions of modules, where file source is used as a kind of strongly-isolated function body that is only aware of its very local naming conventions and which supplies a return value (or side-effects the namespace it is loaded-into) to allow for atomic-loading and relocatable modules, or modules which can be loaded in two different places at once for testing. (This also makes source code less verbose since it uses fewer nested namespaces textually.) I am already parceling out system construction into these independent entities to make Slate's ecosystem less brittle. There will also be a *convenient* library installer soon.

Support:
* Disassembly in the debugger is easier to read.
* Indentation in the Emacs mode is finally sensible in almost all cases, and has kept up with the latest syntax changes.

Atomo:
Atomo is a young language embedded in Haskell that is strongly related to Slate (and evolved through ongoing discussions about desired possibilities for Slate). It uses PMD with a more-sound version of prototype derivation than delegation slots, and also implements input-destructuring and pattern-matching a la Haskell. It is an embedded language so has raised interest from the Haskell/functional community about having a good embedded dynamic language for Haskell as a platform.

I have been engaging in "co-opetition" with Atomo, presenting it at local user groups in Portland for publicity and feedback, and providing experience reports from Slate that help inform design decisions. Atomo in turn has acted as R&D vessel for Slate ideas, which I am carrying back into Slate as quickly as I can. In particular, I will port back Atomo's documentation style (self-hosted, using the parser to embed "live" example code) to make Slate much easier to document, learn, and master.

See http://www.atomo-lang.org

-- 
Brian T. Rice

--
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com.
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en.
Rayne | 13 Mar 2010 05:26
Picon
Gravatar

An error while making progman.pdf and a couple of questions

I git pulled this straight from the github repo, and I'm not a Latex
or lyx guy, so I'm not sure what's wrong here.

rayne <at> rayne-desktop:~/slate-language/doc$ make progman.pdf
lyx -e pdf progman.lyx progman.pdf
unusual contents found: [char " mathalpha][char g mathalpha][char o
mathalpha][char l mathalpha][char d mathalpha][char " mathalpha][char
+ mathalpha][char " mathalpha][char f mathalpha][char i mathalpha]
[char s mathalpha][char h mathalpha][char " mathalpha][char =
mathalpha][char " mathalpha][char g mathalpha][char o mathalpha][char
l mathalpha][char d mathalpha][char f mathalpha][char i mathalpha]
[char s mathalpha][char h mathalpha][char " mathalpha]
unusual contents found: [char " mathalpha][char f mathalpha][char i
mathalpha][char s mathalpha][char h mathalpha][char " mathalpha][char
+ mathalpha][char " mathalpha][char g mathalpha][char o mathalpha]
[char l mathalpha][char d mathalpha][char " mathalpha][char =
mathalpha][char " mathalpha][char f mathalpha][char i mathalpha][char
s mathalpha][char h mathalpha][char g mathalpha][char o mathalpha]
[char l mathalpha][char d mathalpha][char " mathalpha]
Warning: Index sorting failed
----------------------------------------
LyX's automatic index sorting algorithm faced
problems with the entry '˜== (message)'.
Please specify the sorting of this entry manually, as
explained in the User Guide.
make: *** [progman.pdf] Error 1

Also, this link: http://www.slatelanguage.org/doc/progman.pdf is dead.

I've never used a language like Slate before, so I'm not used to the
whole 'image'-based programming scheme. I'm not sure how I should go
about writing my code. Is the entire application supposed to be made
up of evaluated expressions in the REPL? What should be put in files,
if anything at all? The tutorial is quite brief, and the
GettingStarted tutorial is quite complicated, so I'm a little
confused. :p

Finally, how would one write a command-line script or something of
that sort?

--

-- 
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com.
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en.

Brian T. Rice | 2 Feb 2010 21:42
Picon

Latest news

We've been in lurk mode for the last few months, but progress
continues. Here are some highlights:
- The VM was ported from C to C++, allowing some smarter handling by
the VM of Slate pointers, which means that our GC is now precise
instead of just conservative.
- Syntactic support for *rest parameter passing in message sends was
added, by sequestering the comma (",") as special syntax which goes
after optional keywords and the main message phrase. Now, collections
can be instantiated via, say, "Set new*, 1, 2, 3, 3", for example. The
"," selector for creating Points is now named "<>" to avoid collision.
- Various inefficiency fixes which each resulted in a 10-15% speed
gain were implemented. The VM is now substantially faster than a few
months ago.
- A simple inliner (not a JIT) which uses simple type inference to
inline bytecode methods to produce inlined versions of the original
method has been implemented. It is not yet robust enough for
production use; we're still tracking down a bug that rears its head
during bootstrap, and it punts on optional keyword passing.
- Further updates which are still being worked out. I'm working on a
module system inspired by some recent work in Javascript, better
support for concurrency, and trying to adapt the recent "Xtreams"
Smalltalk stream protocol to Slate for better inherent stream
performance.

--

-- 
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com.
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en.

Brian T. Rice | 28 Aug 2009 05:45
Picon

Presentation at a local user group


I gave my first Slate presentation in a few years at the local  
Smalltalk user group, PDX.st. This is a very preliminary slide deck,  
mostly telling the broad story of Slate rather than enumerating  
features in detail. I talked around it, and introduced features via  
full-screen Emacs mode.

I intend to expand on this quite a bit, for the purpose of presenting  
to local Rubyists, Pythonistas, Perl mongers, etc. And of course I'm  
still coding in various ways on it. I think Portland has done me a lot  
of good in that area.

Anyway, let me know what you think: http://files.slatelanguage.org/PDXst2009.pdf

--
http://BrianTRice.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---

allegra rocamora | 24 Aug 2009 03:37
Picon

Making up to $1,000 Everyday On Complete Auto-Pilot!


Making up to $1,000 Everyday On Complete Auto-Pilot!the fastest system
for you to start earning money online I have ever seen.
http://www.easyinternetbiz.net/index.html
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---

Brian Rice | 30 Jun 2009 00:52
Picon

[Personal] Moving from Seattle to Portland

I've spent the last couple of months searching for a suitable permanent position to replace my independent contractor/consultancy activity, and found it in Portland so I'll be moving down there. As such, my Slate activity has been low and will continue to be so until fully set up, which may take another month.


I feel remiss in not doing more, but the current economic instability and my medical conditions are conspiring to lead me to a stable situation. If any of you live near or visit Portland, be sure to look me up! I'll definitely be at local relevant tech events.

--
-Brian T. Rice

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---

Timmy Douglas | 9 Jun 2009 00:24

Re: GTK and libraries loading in Windows


On Jun 8, 9:54 am, pocho <elpochodelage... <at> gmail.com> wrote:
> I also have a question... as I was told there's no way of saving gtk
> windows to be reopened later in slate, but is at least possible to
> save an image with all Gtk libs loaded? As I said before, it takes
> almost 8 minutes to load gtk so I don't want to do this loading
> everytime I turn on the vm.

Yeah it should be possible and fairly easy to do. If you can't do it
by loading gtk/init.slate and then saving your image, then tell me.
After than (like demo.slate), you run this to start the gui:
Gtk Main do: [ Gtk Workspace new show ].

Currently, entering the gui is the point of no return. It should be a
fairly easy fix (for someone that understands gtk) to make it where
closing the last window puts you back into a slate prompt so that you
can save again. The reason you can't just save in the gui is because
the GUI code uses bytearrays with C pointers of gtk objects and if you
save a slate image in that code and have it resume (by starting slate
with that image), the resuming code will deref those invalid pointers
and crash.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---

Brian T. Rice | 8 Jun 2009 23:13
Picon

Cookbook-style examples posted to Rosetta Code project


See http://slatelanguage.org/2009/06/cookbook-examples-posted-to-rosetta-code/ 
  for details. We're still working on this; it seems to be a great way  
to itemize incremental progress and check that various features work  
and have examples (aside from unit-tests in the tests/ directory).

This might also be a good way to try your hand at Slate idioms... some  
of the examples are trivial RPG games and so on.

--
http://BrianTRice.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---

Brian T. Rice | 8 Jun 2009 23:09
Picon

Re: GTK and libraries loading in Windows


On Jun 8, 2009, at 6:54 AM, pocho wrote:

> I also have a question... as I was told there's no way of saving gtk
> windows to be reopened later in slate, but is at least possible to
> save an image with all Gtk libs loaded? As I said before, it takes
> almost 8 minutes to load gtk so I don't want to do this loading
> everytime I turn on the vm.

Yes, because of all the libraries to be parsed, it's slow to load  
everything, and we should be able to avoid this overhead as much as  
possible. What ideally should happen is that external Gtk widgets/ 
resources could adopt or inherit the pattern of ExternalResource (also  
used by File, Socket, Directory, and ExternalLibrary objects), in that  
there is a "locator" attribute which stores some description of how to  
recreate the resource, and then startup/shutdown methods construct and  
teardown the actual objects in question. The ExternalResource also  
keeps a "handle" attribute for the low-level identifier that the VM  
gets and then passes into the image. ExternalResources also has a  
parentResource attribute which is currently used for the  
ExternalFunction-ExternalLibrary relationship but basically helps  
determine the part-subpart dependency structure, in that the children  
depend on the parent resource being enabled before they can be  
(re)created and work.

In the window's case, the "locator" might be an array specifying  
dimensions, and maybe a display tree of widget children along with  
their dimensions and attributes. I'm hand-waving at this point, but  
does this make sense as a way to think about the problem?

--
http://BrianTRice.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---

pocho | 1 Jun 2009 19:23
Picon

Building and working with slate


Hi, I've been trying to install and use slate, and run throug some
problems. I was able to solve some of them but need help to take care
of others. First of all, I tested it in two platforms: Win XP and
Ubuntu 9.04 inside a VirtualBox. I'd like to share the experience
because I think it might be useful for others. I used the lastest
version from git in both cases.

here the path diverges..

for windows.

1 - tried to open src/vm/windows.sln solution with visual studio 2005,
but didn't work because sln is from vs 2008.
    so, went to http://sourceforge.net/projects/vspc/ and converted to
the version I have.
2 - opened the solution and tried to compile (after downloading
http://code.google.com/p/msinttypes/) but failed. There were various
problems:
     vc complained about inlines. Solved that adding this to slate.h

#define SLATE_INLINE inline
#ifdef _MSC_VER
#define snprintf _snprintf
#undef inline
#define inline __inline
#endif

	also complained about some local variables that weren't defined at
top of the scope, so I moved them.
	at last, had link errors for each inline function, the problem was
that in order to link with them they had to be in the .h, so I moved
every SLATE_INLINE to slate.h.

After doing that I was able to compile and start slate. It took me
some time to realize that i had to download the image from google's
project, I think that should be better documented.

Then I tried to use gtk in slate, but failed. To do this, I downloaded
GTK all-in-one bundle from this place: http://www.gtk.org/download-windows.html.
Then configured VS paths: added gtk/include/gtk-2.0, glib-2.0, gtk/lib/
gtk-2.0/include gtk/lib/glib-2.0/include to includes and gtk/lib to
libraries, also had to add gtk/bin to path and the place were I
downloaded msinttypes to includes because gtk needed it. After that I
created three dll projects in VS: gtk-wrapper, gdk-wrapper and glib-
wrapper. Each of them had only it's corresponding .c file found in src/
plugins. Compiled them to three dlls that placed in cslatevm/lib. Here
came the problem I couldn't solve:
 I tried to load gtk with the command specified in README:

	load: 'src/ui/gtk/demo.slate'

It was all good but then complained:

slate[2]> load: 'src/ui/gtk/demo.slate'.
 Loading P'src/ui/gtk/demo.slate'
  Loading P'src/ui/gtk/init.slate'
   Loading P'src/ui/gdk/init.slate'
    Loading P'src/ui/glib/init.slate'
     Loading P'src/lib/wordarray.slate'
     Loading P'src/ui/glib/lib.slate'
Library glib-wrapper was successfully loaded.
Debugging: ConnectionFailed traitsWindow
Backtrace (method  <at>  source):
frame: 0        [defaultHandler]  <at>  src/core/condition.slate:289
frame: 1        [tryHandlers]  <at>  src/core/condition.slate:79
frame: 2        [signal]  <at>  src/core/condition.slate:31
frame: 3        [connectionFailure]  <at>  src/lib/extlib.slate:37
frame: 4        [enable]  <at>  src/lib/extlib.slate:216
frame: 5        [open]  <at>  src/core/external.slate:67
frame: 6        [functionNamed:]  <at>  src/lib/extlib.slate:103
frame: 7        [functionNamed:returning:from: &callFormat:]  <at>  src/lib/
extlib.slate:114
frame: 8        [(arity: 1)]  <at>  src/lib/extlib.slate:194
frame: 9        [do:]  <at>  Nil
frame: 10       [installMethodsForSigs:on: &nameTransformer:
&argumentFormats:]  <at>  src/lib/extlib.slate:190
frame: 11       [enable]  <at>  src/lib/extlib.slate:434
frame: 12       [evaluateIn: &optionals:]  <at>  src/mobius/syntax.slate:
180
frame: 13       [(arity: 1)]  <at>  src/lib/module.slate:212
frame: 14       [applyWith:]  <at>  src/core/method.slate:6
frame: 15       [do:]  <at>  src/core/stream.slate:150
frame: 16       [run]  <at>  src/lib/module.slate:205
frame: 17       [(arity: 0)]  <at>  src/lib/module.slate:188
frame: 18       [handlingCases:]  <at>  src/core/condition.slate:64
frame: 19       [process:]  <at>  src/lib/module.slate:180
frame: 20       [(arity: 1)]  <at>  src/lib/module.slate:253
frame: 21       [applyWith:]  <at>  src/core/method.slate:6
frame: 22       [(arity: 0)]  <at>  src/core/external.slate:282
frame: 23       [sessionDo:]  <at>  src/core/external.slate:275
frame: 24       [(arity: 0)]  <at>  src/lib/module.slate:253
frame: 25       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:242
frame: 26       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:232
frame: 27       [evaluateIn: &optionals:]  <at>  src/mobius/syntax.slate:
180
frame: 28       [(arity: 1)]  <at>  src/lib/module.slate:212
frame: 29       [applyWith:]  <at>  src/core/method.slate:6
frame: 30       [do:]  <at>  src/core/stream.slate:150
frame: 31       [run]  <at>  src/lib/module.slate:205
frame: 32       [(arity: 0)]  <at>  src/lib/module.slate:188
frame: 33       [handlingCases:]  <at>  src/core/condition.slate:64
frame: 34       [process:]  <at>  src/lib/module.slate:180
frame: 35       [(arity: 1)]  <at>  src/lib/module.slate:253
frame: 36       [applyWith:]  <at>  src/core/method.slate:6
frame: 37       [(arity: 0)]  <at>  src/core/external.slate:282
frame: 38       [sessionDo:]  <at>  src/core/external.slate:275
frame: 39       [(arity: 0)]  <at>  src/lib/module.slate:253
frame: 40       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:242
frame: 41       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:232
frame: 42       [evaluateIn: &optionals:]  <at>  src/mobius/syntax.slate:
180
frame: 43       [(arity: 1)]  <at>  src/lib/module.slate:212
frame: 44       [applyWith:]  <at>  src/core/method.slate:6
frame: 45       [do:]  <at>  src/core/stream.slate:150
frame: 46       [run]  <at>  src/lib/module.slate:205
frame: 47       [(arity: 0)]  <at>  src/lib/module.slate:188
frame: 48       [handlingCases:]  <at>  src/core/condition.slate:64
frame: 49       [process:]  <at>  src/lib/module.slate:180
frame: 50       [(arity: 1)]  <at>  src/lib/module.slate:253
frame: 51       [applyWith:]  <at>  src/core/method.slate:6
frame: 52       [(arity: 0)]  <at>  src/core/external.slate:282
frame: 53       [sessionDo:]  <at>  src/core/external.slate:275
frame: 54       [(arity: 0)]  <at>  src/lib/module.slate:253
frame: 55       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:242
frame: 56       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:232
frame: 57       [evaluateIn: &optionals:]  <at>  src/mobius/syntax.slate:
180
frame: 58       [(arity: 1)]  <at>  src/lib/module.slate:212
frame: 59       [applyWith:]  <at>  src/core/method.slate:6
frame: 60       [do:]  <at>  src/core/stream.slate:150
frame: 61       [run]  <at>  src/lib/module.slate:205
frame: 62       [(arity: 0)]  <at>  src/lib/module.slate:188
frame: 63       [handlingCases:]  <at>  src/core/condition.slate:64
frame: 64       [process:]  <at>  src/lib/module.slate:180
frame: 65       [(arity: 1)]  <at>  src/lib/module.slate:253
frame: 66       [applyWith:]  <at>  src/core/method.slate:6
frame: 67       [(arity: 0)]  <at>  src/core/external.slate:282
frame: 68       [sessionDo:]  <at>  src/core/external.slate:275
frame: 69       [(arity: 0)]  <at>  src/lib/module.slate:253
frame: 70       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:242
frame: 71       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:232
frame: 72       [evaluateIn: &optionals:]  <at>  src/mobius/syntax.slate:
180
frame: 73       [(arity: 1)]  <at>  src/lib/module.slate:212
frame: 74       [applyWith:]  <at>  src/core/method.slate:6
frame: 75       [do:]  <at>  src/core/stream.slate:150
frame: 76       [run]  <at>  src/lib/module.slate:205
frame: 77       [(arity: 0)]  <at>  src/lib/module.slate:188
frame: 78       [handlingCases:]  <at>  src/core/condition.slate:64
frame: 79       [process:]  <at>  src/lib/module.slate:180
frame: 80       [(arity: 1)]  <at>  src/lib/module.slate:253
frame: 81       [applyWith:]  <at>  src/core/method.slate:6
frame: 82       [(arity: 0)]  <at>  src/core/external.slate:282
frame: 83       [sessionDo:]  <at>  src/core/external.slate:275
frame: 84       [(arity: 0)]  <at>  src/lib/module.slate:253
frame: 85       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:242
frame: 86       [load: &in: &verbose: &showLoadMessage:]  <at>  src/lib/
module.slate:232
frame: 87       [evaluateIn: &optionals:]  <at>  src/mobius/syntax.slate:
180
frame: 88       [(arity: 0)]  <at>  src/lib/repl.slate:155
frame: 89       [on:do:]  <at>  src/core/condition.slate:43
frame: 90       [(arity: 0)]  <at>  src/lib/repl.slate:147
frame: 91       [handlingCases:]  <at>  src/core/condition.slate:64
frame: 92       [interpretHook:]  <at>  src/lib/repl.slate:42
frame: 93       [(arity: 0)]  <at>  src/lib/repl.slate:139
frame: 94       [enter]  <at>  src/lib/repl.slate:135
frame: 95       [start &resource:]  <at>  src/lib/repl.slate:185
frame: 96       [start]  <at>  src/mobius/prelude.slate:38
frame: 97       [(arity: 0)]  <at>  Nil
The following condition was signaled:
Could not look up symbol 'g_type_name' in DLL 'glib-wrapper'The error
was: No se encontró el proceso especificado. (Trad: Couldn't find the
specified process).

So I don't know what to do next, I would appreciate your help.

All this was in order to make it work in Windows XP, now let's start
with Ubuntu. I have to say it was easier here. I had a clean install
of Ubuntu 9.04 set up in a virtual machine.

from console did make. I think it worked seamleasly. tried to open the
image, but ark denied, so used command line

bunzip2 slate.little.32.image.bz2

tried to run slate with that image, forgot the -i and had a lot of
errors. It took me some time to realize I was missing the -i in
command line, maybe a warning would have been fine! Opened the image,
everything fine. Then I tryied gtk.
did cd src/plugins. make. Had to install gtk-dev in ubuntu because it
was needed. Also, libtool was missing and I had to install it. Ran
make again and worked for gtk (despite it failed for something related
to llvm).

Then openened the image and did

	load: 'src/ui/gtk/demo.slate'

It took a while to load everything but worked like a charm. After some
testing I saved the image and quit. Now, when I try to open the image
again, it crashes. Here is the output I got:

$> gdb slate
(gdb) r -i slate8.image

Starting program: /home/javier/st/cslatevm/slate -i slate8.image
[Thread debugging using libthread_db enabled]
Old Memory size: 419430400 bytes
New Memory size: 10485760 bytes
Image size: 15330856 bytes
Defining function 'invokeDebugger' on: 'Condition traits'
[New Thread 0xb7d936c0 (LWP 6892)]

(process:6892): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.20.1/
gobject/gtype.c:2458: initialization assertion failed, use
IA__g_type_init() prior to this function

(process:6892): GLib-CRITICAL **: g_once_init_leave: assertion
`initialization_value != 0' failed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7d936c0 (LWP 6892)]
0x9cbd913f in gtk_text_buffer_get_selection_bound ()
   from /usr/lib/libgtk-x11-2.0.so.0
(gdb) bt
#0  0x9cbd913f in gtk_text_buffer_get_selection_bound ()
   from /usr/lib/libgtk-x11-2.0.so.0
#1  0x0804b878 in applyExternalLibraryPrimitive (oh=0xb7b83008,
    fnHandle=0x9e2197e4, argsFormat=0x9f8b422c, callFormat=0x1,
resultFormat=0x7,
    argsArr=0x9e238248) at external-library.c:358
#2  0x0805ad0b in prim_applyExternal (oh=0xb7b83008, args=0xbfa66888,
arity=6,
    opts=0x0, resultStackPointer=23384) at primitives.c:1326
#3  0x08050179 in send_to_through_arity_with_optionals
(oh=0xb7b83008,
    selector=0x9ecfc458, args=0xbfa66888, dispatchers=0xbfa66888,
arity=6,
    opts=0x0, resultStackPointer=23384) at interpreter.c:370
#4  0x0805102e in interpret (oh=0xb7b83008) at interpreter.c:741
#5  0x0805eeab in main (argc=3, argv=0xbfa66ff4, envp=0xbfa67004) at
vm.c:217
(gdb)

After that I couldn't reuse the image so tried again with a blank one.
Loaded Gtk again, and saved another image. Now this seems to work but
each time I reopen slate it thakes a looooong time to load gtk which
is a big pain.

Well, that's all I could test. Do you think you can help me solve the
problems in Windows and/or Linux?

Thanks.
   Pocho.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---

Brian Rice | 7 May 2009 02:32
Picon

Updates, website

Hello all,


Mailing list discussion became sparse over the last couple of months, but activity continues. Lately I've been putting daily effort into improvements for the system along with Timmy Douglas' equal efforts, and we're motivating each other well enough.

I'll give a quick run-down of what's going on:
- IDE improvements, starting with the REPL-based debugger and the emacs mode now integrates with it to make frames and restarts "hyperlinked" to take action on them.
- Platform plugin integration into the VM, to get uname() results, run system() calls, and get/set/list environment variables.
- Revival and stabilization of the Windows port.
- Re-instating the old tests/ directory, and verification that most non-delegation-related tests work fine still.
- Re-instating the ability to run in she-bang scripts and CGI (and generate some XML).
- Re-making most of the installers, including "make install" for unices and a Windows NSIS installer.
- A portable VM timing facility to benchmark methods, and re-instating of tests/benchmark.
- A counting/tracing-style profiling facility.

- Core bootstrap files have been separated into src/core/ to relieve pressure on src/lib to contain every standard library.
- I'm starting to work on the GTK-based IDE, to develop a real usable browser (that hides grotty details by default) and debugger.
- There are many other plans, mostly half-way formed, and of course we do want to continue to innovate (LLVM dynamic JITting, Erlang-style concurrency at least for image-level messaging and I/O).

I've also ported the website over to Wordpress: http://www.slatelanguage.org and will focus on communicating about Slate issues there that don't quite fit an email forum.

I am more or less motivated right now to make Slate consumable for the public, which means addressing a lot of the rough edges and core engineering for now, and not much in the way of a release schedule yet, unless we go with a monthly clockwork release process. If you have priorities you'd like to see addressed, please discuss it.

--
-Brian T. Rice

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "slate-language" group.
To post to this group, send email to slate-language <at> googlegroups.com
To unsubscribe from this group, send email to slate-language+unsubscribe <at> googlegroups.com
For more options, visit this group at http://groups.google.com/group/slate-language?hl=en
-~----------~----~----~----~------~----~------~--~---


Gmane