• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp4382
r3wp44224
total:48606

results window for this page: [start: 35401 end: 35500]

world-name: r3wp

Group: !REBOL3-OLD1 ... [web-public]
Maxim:
11-Jun-2009
might want to get me in the loop when that happens (layout work)... 
by then I should be delving into R3, so I'd be able to contribute 
experience... not just theory ;-) ... 

I've been designing and evaluating many (I mean dozens) of auto layout 
engines thru the years...
Henrik:
12-Jun-2009
I don't think there are many known GC bugs. The largest scripts run 
yet are those of VID3.4 (around 50-100 kb) and they are fairly stable. 
No leaks have been found yet, but we aren't yet looking very hard 
for those.
BrianH:
12-Jun-2009
The problem is that most of the code written in R3 has been written 
by people who have a good idea of the internals, who know what is 
optimal and what is not. This means that the code tends to more heavily 
represent good code techniques and practices - thus, those code patterns 
are more thoroughly tested and stable. What hasn't been as tested 
as much is bad or erroneous code: Some of that can still crash R3 
at this point.


Fortunately, new users have been joining the fray, and many of them 
are not aware of the internals or best practices. Or in Ladislav's 
case, exhaustively thorough in their testing coverage. Because of 
this R3 is much more stable than it was a month ago :)
Sunanda:
12-Jun-2009
If you search curecode.org for [gc] or [garbage collection[ there 
are very few bug reports.

Maybe it is time for someone to step up and try some serious stress 
tests.
Maxim:
12-Jun-2009
I'll be using modules if possible.   an earlier version of R3 just 
crashed when trying to allocate a single node... we'll see.

is there a page which explains various optimisations one can do to 
R2 code to allow it to take advantage of newer and faster functions 
in R3?
Maxim:
12-Jun-2009
I've just finished helping the plumber install a new submersible 
pump in my 50 meter deep well, changed all the electricals too... 
I didn't have water for the last 4 days... 


now I can give myself a rare treat.  taking the rest of the day off 
today, so I can do my things.... and that includes one "fun" project... 
usually a short project that I've been putting off of a long time... 
today its liquid/R3  :-)
Sunanda:
12-Jun-2009
You are quick with the bug analysis!


Not entirely sure why you consider it not a bug. Recast this way, 
it looks a horrible problem....
   for n 1 10 1 [print n a: mold system]
....It gets slower and slower and then dies.
Sunanda:
12-Jun-2009
...And the I may need a new session as:
  b: mold system
now does not have enough memory.
Maxim:
12-Jun-2009
also the "g" command of devbase doesn't seem to work when #xxxx is 
in messages, but it works for curecode and html.
Maxim:
12-Jun-2009
I actually like devbase.  the direct number navigation is quite possible. 
 I can just type 14   and go to R3 section directly wherever I am... 
that is very cool.
Henrik:
12-Jun-2009
If you feel like adding a feature, go ahead, and post it to curecode. 
Carl probably prefers 1-2 line fixes, though.
BrianH:
12-Jun-2009
Sunanda, the reason it's not a bug is because for every iteration, 
'a is set to mold system, and mold system includes the previous value 
of 'a from the previous iteration, as a string. So that means that 
every iteration is the length of the rest of the system, plus the 
length of the previous 'a times the number of visible references 
to it. Since there are 4 visible references to the collection of 
global words, this means that the growth is exponential, and of a 
larger exponent than R2 (which has only one visible reference to 
the global words, so it just doubles).


The way to prevent the exponential growth is to assign none to 'a, 
or unset 'a, before you mold the system again.
Maxim:
12-Jun-2009
I do everything and its not in the extensions list, but strangely, 
it is working, since clicking on a liquid.r3 loads it properly.


what is even stranger is that I scanned the registry and its not 
there either!
Maxim:
12-Jun-2009
its funny its sooo close to slim ... and slim is over 5 years old 
;-)
BrianH:
12-Jun-2009
Well, some of the module capabilities aren't done yet (as I mentioned 
above), mostly because most of the system hasn't been converted to 
modules yet. One of the current gotchas is that system/contexts/current, 
system/contexts/system, system/contexts/exports, and system/words 
are all the same object. In the final module system, the first three 
should be separate contexts and system/words should be gone (it is 
now an alias for system/contexts/current).
BrianH:
12-Jun-2009
The requirements for a module system in REBOL are pretty much defined 
by the task and the language semantics, and those haven't changed 
much in 5 years. It's not surprising there are similarities :)
Maxim:
12-Jun-2009
but there is definitely one thing that needs to be added, unless 
its just not documented.   the ability for import to RESTRICT what 
is exported by the module. 

this is the most powerfull concept in slim and I'll never want to 
live without it.  


in slim, its the module USER that has control over the module.  when 
you load the module, by default it uses the module's expose list, 
but if you supply your own, then the module doesn't expose anything 
else than what you ask of it.  


this allows me to have a clean current context, and I can prevent 
my module from cluttering the context its loaded in.  especially 
if its loaded AFTER some code has been defined, or using common global 
words.
Maxim:
12-Jun-2009
this would be:

import/only 'libname [funcname]


where funcname must also be in export, so there is two sided restriction 
... was is available, and what is needed.
Maxim:
12-Jun-2009
or using only one feature from a newer version of a library and all 
the rest from the older one, cause the update isn't compatible... 
that should be allowed.
Maxim:
13-Jun-2009
and I'm like you and pekr... I won't stop whinning about it until 
I get it  ;-)
BrianH:
13-Jun-2009
One thing to remember is that simplicity is a real value here. We 
need to make sure that any features we add integrate well with the 
rest, and don't create a burden on the programmer. Any setting that 
you can make is a setting that you will have to decide whether you 
need to make, so that adds to the development overhead.
BrianH:
13-Jun-2009
We already have an /only for IMPORT, and wouldn't need it for this 
purpose - adding the words block to the Needs would be enough.
BrianH:
13-Jun-2009
Do you know the R2 SDK source well enough to know whether the Needs 
header is handled by mezzanine code in R2? And where?
Maxim:
13-Jun-2009
python give you the file name and the normal error after... so you 
know where that happened.
BrianH:
13-Jun-2009
So it was a load error then? Interesting that it would return that 
error - I've never seen the like, and modules and scripts are loaded 
the same, with the same code even.
BrianH:
13-Jun-2009
Well, LOAD loads scripts and modules alike. Where was the mismatched 
", header or code?
Maxim:
13-Jun-2009
even if its being loaded from different contexts.   

I tried importing vprint in main app and within liquid module... 
I get an "assertation failed" error.
BrianH:
13-Jun-2009
Have you tried renaming the file to %vprint.r, giving it a Name: 
'vprint header, and importing it lilke Needs: [vprint] or IMPORT 
'vprint ?
Maxim:
13-Jun-2009
although its possible that import copies and rebinds each import 
to the current context, so that its
BrianH:
13-Jun-2009
Think I found an error in IMPORT - a <= where it should be a <, and 
a >= where it should be a >. I think the file thing shouldn't affect 
it.
BrianH:
13-Jun-2009
You want the module to be loaded and done once, but imported twice. 
Doing the module code more than once wouldd usually be bad.
Maxim:
13-Jun-2009
shared and distinct/copied modules should both be supported.  right 
now I am not sure which one R3 does but, it doesn't provide the capabilities 
to do both, AFAICT.
Maxim:
13-Jun-2009
strange bug... If I only
 do %vprint.r3

in the module and try to use a function from vprint, I get an error:

vprint loaded
** Script error: von word is not bound to a context

** Where: do applier make if import catch if either either do begin 
do
** Near: do body obj

vprint loaded
 is a probe statement executed within the vprint.r3 file
BrianH:
13-Jun-2009
OK, got it. If you import a module the first time and it has a name 
header it gets added to the registry - it doesn't matter whether 
it is imported by word or file.  However, any subsequent import of 
the same module by word will reuse the module - if you reimport by 
file it is reloaded (there is a bug in IMPORT too, so the new displaces 
the old even if they are the same version). I'm going to have to 
rethink the flow here.
Maxim:
13-Jun-2009
If I get this, it means that  DO is always global, and the only way 
to trap it, is for the module to isolate the global context from 
any code it executes.
BrianH:
13-Jun-2009
No, DO is always relative to the current context and there is no 
global context. And you can switch current contexts, though that 
mechanism isn't fully implemented yet.
BrianH:
13-Jun-2009
And well into it it is :)
Sunanda:
13-Jun-2009
I have been playing with converting some R2 scripts to R3.

And I am buiding a perhaps useful list of the things that need to 
change....eg:
      r2  allows: xor 1 2
      r3  either: 1 xor 2
              or: xor~ 1 2
Where would be a good place to start a list like that?
Ladislav:
13-Jun-2009
...exactly like (+ 3 4), which is not officially supported too, AFAIK. 
the supported way is (add 3 4) and always has been
Janko:
13-Jun-2009
I know R3 will have threading ... this is some video that digs into 
pythons implementation .. and shows how not to do threading mostly 
... http://blip.tv/file/2232410
Janko:
13-Jun-2009
the guy tried to run a long-running-cpu-intensive-func 2 times one 
after another, and in two native threads (on 2core cpu) that python 
supports and running it in threads took 1.8 more time than running 
it one after another
Janko:
13-Jun-2009
(I woud be more interested in rebol having green cooperative threads 
anyway, and if you need real multi-cpu concurrency there can be normal 
processes and message passing between (which can be made on top of 
ordinary rebol anway)
Janko:
13-Jun-2009
I think erlang concurrency model is higher level model and could 
be build on top of cooperative threading + os process (or thread) 
communication. Specific for erlangs model is that you can have 1000s 
of these processes that communicate with message passing. There each 
"object" is a process.. etc..  I don't know if I want exactly that 
(although I would love it also) but maybe more low level concurrency 
"enabler" where different such models can be build upon. There are 
many ways of doing actors (like native erlang (with one way messages/mailboxes), 
python's lib Kamaelia (with channels), java's lib Kilim..) and other 
things for concurreny..
Sunanda:
13-Jun-2009
Thanks.Ladislav....I don't particularly mind _why_ R3 is incompatible 
with _R2_. Forward compatibility would have been nice, but that discussion 
ended long ago with the decision not to be.


What I think we need now is to start work on a  migration guide, 
so we do not all need to stumble across the gotchas.....It may also 
help debug R3 [some reported changes may turn out to be accidental 
and fixable].


Hence my question about where would be a good place for us to start 
sharing migration hints and tips.
Maxim:
13-Jun-2009
janko, I have been using multi CPUs machines for 15 years In 3D applications 
and you'll be surprised to know that none of them have yet to use 
two cpus for anything else than image rendering.  its because management 
of the cores generally takes as much resources than the processing 
itself.


in general, if the same processing algorythm, running multi-threaded 
is less than 1.5 times slower than two concurrent, independent tasks, 
you can start to say that the implementation is well designed, it 
rarely is better than 1.25x slower.


some algorythms and datastructures are much better suited at being 
parralelized though, and software built from scratch to support it 
will always be better at it then when its converted to multi-threading.
Maxim:
13-Jun-2009
brianH, the isolate: true isn't documented in docbase, and its not 
working in my script, which leaves me to think that it was left out 
in public releases.
Maxim:
13-Jun-2009
and only those from the available export list can be chosen...  so 
you have a double restriction.

what can be exported AND what you need imported.
Maxim:
13-Jun-2009
and that is the core reason for the existence of SLIM.
Maxim:
13-Jun-2009
slim also allows you to rename the words AS you are importing them, 
solving the name clashing cleanly and obviously.  This is very usefull 
when you are using frequently updated libs.  and is even more usefull 
when those libs aren't readily editable. (encrypted, compressed, 
etc)
Maxim:
13-Jun-2009
in an app I tried to build using R2 a single picture took 40MB.  
I need to edit 10000 of them and output them in a picture that take 
about 1GB of space.  saving 10kb... really I could care less.
Maxim:
13-Jun-2009
I was finally able to work around the bug.  :-)
so convertion can continue for now


but the workaround will become impossible to apply at some point. 
its too low-level a problem to be properly addressed in every single 
opportunity... and its an ugly fix.
Maxim:
13-Jun-2009
and multiple depths
Gregg:
13-Jun-2009
I also vote for the module system to support the ability to restrict 
what you import, and SLiM's ability to rename words on import (and 
prefix them) is very nice.
BrianH:
14-Jun-2009
I reviewed and put comments in your vprint tickets. In both cases 
the bug is caused by code *in* %vprint.r3, not the code calling it.
BrianH:
14-Jun-2009
In some cases the particular bug generated indicates a lack of bounds 
checking, and that is considered bad. However, it is the lack of 
bounds checking that makes it bad, not generating the wrong error.
Maxim:
14-Jun-2009
why does DOing the exact same script, generate the proper error in 
the main app and generate a bogus error when DOne from a module... 
that is the problem.
BrianH:
14-Jun-2009
And I still can't diagnose bug#928 without at least the header of 
%vprint.r3 - we have to have something testable.
BrianH:
14-Jun-2009
There is an error in the import process, but modules loaded by filename 
are actually loaded each time. If the module has a name header then 
only the first import works properly. Every subsequent import by 
filename will be a logic error. However, you can import a named module 
the first time with a filename and then use the name for all subsequent 
imports with no difficulty.


If the module is not named and specifically designed to be loaded 
multiple times, then cool, you can do so.
BrianH:
14-Jun-2009
If the module isn't already loaded then specifying it by name generates 
the filename by adding .r to the end and checking import-paths.
Maxim:
14-Jun-2009
ok, so far it seems strickly related to file based import... specifically, 
when it tries to load the file a second time.  it raises the assertion 
crash.


reloading a module can be needed... it was changed, for example, 
and you want to allow run-time updates, cause your ip ports must 
not be closed.
BrianH:
14-Jun-2009
In theory, runtime updates should be version-triggered. The init 
code could in theory check for a prior version and migratee the data.
BrianH:
14-Jun-2009
I could use a minimal header and code block of a module that triggers 
the assertion crash on reimport by filename (bug#923).
BrianH:
14-Jun-2009
Justt something to trace and test with.
Maxim:
14-Jun-2009
I just uploaded an VERY minimal module and application with 3 imports... 
the 2 initial are by name and are fine, the third is by file and 
it crashes.
BrianH:
14-Jun-2009
That's what I thought - it's named. You are only supposed to import 
named modules once per version - subsequent imports are to be by 
name. New versions are supposed to displace the old, and that might 
be where the crash is. This will be interesting to trace.
BrianH:
14-Jun-2009
OK, I just looked at bug#924 and now get what you want to do. It's 
not a bug, it's by design. The code block of a module is bound before 
the block starts executing. You can't define new words in the module's 
context unless those new words are defined in imported modules or 
in the code itself at the top level, or anywhere in the code if the 
module is isolated.
BrianH:
14-Jun-2009
Not really. They are (using a hack), but the binding of the code 
block is done after the imports are processed and before the code 
block starts executing. Once the code block starts executing the 
module context has already been defined. REBOL's evaluation and binding 
rules preclude any automatic rebinding.
Maxim:
14-Jun-2009
but the word exists in the module before the script is done.... its 
just not set yet... so it should be bound in the module and the script 
sets the value, since its running in the context of the module.
Maxim:
14-Jun-2009
what you are saying is that for modules, we need to start declaring 
words?  not very rebolish. 


 I have to do so in slim to keep words local to the calling context, 
 but I would have tought that modules would do so automatically since 
 they replace the global context.

 any new word in the root of the spec block of the module should be 
 added to the module's context and set to unset! just like R2's global 
 context does.
BrianH:
14-Jun-2009
Any set-word in the top-level of the module's code block is added 
to the module's context before the module code runs, just like an 
object. If you isolate the module, every word in the module's code 
block and all nested blocks, parens and paths are added to the module's 
context. The only words you need to "declare" are the exported words.
BrianH:
14-Jun-2009
The bug#928 should be dismissed, marked as "not a bug", and left 
there for future reference. Thanks for helping document R3 :)
BrianH:
14-Jun-2009
Not totally. It is useful in non-module scripts, and useful for scripts 
done for effect rather than for loading functions.
Janko:
15-Jun-2009
Apples idea how to do real concurrency (on multicore) .. http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_20090608.pdf
-- it seems to be based on something like closures (or blocks from 
smalltalk)  -- it seems simple and clean idea
Janko:
15-Jun-2009
thanks .. I am not on R3 chat. I don't use R3 and R2 has enough secrets 
to discover for me still
Will:
15-Jun-2009
Here is a great example code using GrandCentral: "DispatchWebServer"

from the description: "A web server that uses one queue per HTTP 
connection. Supports HTTP pipelining and on-the-fly compression. 
Also shows use of dispatch-style signal and vnode event handling."

https://developer.apple.com/snowleopard/library/samplecode/DispatchWebServer/index.html
(ADC account needed)
Whoever is doing R3 on OS X, should have a look 8-)
Janko:
17-Jun-2009
Will .. that would be really interesting to look at as GC looks very 
interesting and minimal in concepts.. to bad I am not in ADC :(
amacleod:
17-Jun-2009
Pekr, I have had the HTC touch for a year and a half...been a little 
disappointed. I hope the newer versions are a bit better but I'm 
not sure if its the hardware or windows mobile that most disappoints...
HAve you seen teh new palm pre? It looks interesting!
amacleod:
17-Jun-2009
If r3 was up and running on htc touch I think I would overlook alot 
of my issues with it...
Pekr:
17-Jun-2009
no, not yet, and I have no plan to support proprietary "OS" as PalmPre 
is. It allows some kind of web like development. OTOH I haven't studies 
it properly yet. I am quite disappointed by Android - it is a let-down 
for me, at least for what I saw on HTC devices - just hyped because 
of Google, nothing special ...
Pekr:
17-Jun-2009
What were your issues? It is clearly not as smooth as iPhone is in 
operation. This is mostly because of capacitative vs resistive touch 
screen. I needed few days to make ma touch navigation more solid. 
Overall it feels more sluggish. But TouchFlo3D version 2 is quite 
snappier and I would not probably buy any Windows Mobile without 
that add-on.
Pekr:
17-Jun-2009
... and yes, it might be the problem of Windows, because how is that 
iPhone has relatively slower HW, yet feels speedier?
BrianH:
17-Jun-2009
Yay! I haven't been able to review the ROUND and RANDOM tickets since 
the functions were being rewritten - this should help.
BrianH:
17-Jun-2009
After reviewing the current state of the R3 module system, here is 
the state of what is implemented so far:
- Dependencies
- Encapsulation
- Explicit exports to the system exports
- Implicit import of the system exports

And here is what is not implemented so far:

- Explicit imports, even just limiting imported words to those in 
the dependencies

- Distinguishing exports for explicit import from the system exports
- Access controls for the system exports


It will not be possible to implement what is not currently implemented 
until the mezzanines and natives are put into modules. However, what 
is implemented so far is enough to start the process of putting the 
system code into modules. Further work on the module system (except 
bug fixes) and any preprocessor will have to wait until the system 
code modularization is done.
Robert:
18-Jun-2009
Yes, but making it native might be a good idea. I call this function 
a lot and with a lot of numbers while filling input-forms.
Pekr:
18-Jun-2009
can't download new alpha, tried xy times and still receiving timeouts 
....
BrianH:
18-Jun-2009
Specific formatting is always a bit of a problem, because everyone 
needs it, they need it to be fast, they need it to be consistent, 
and they need it to be completely different from what other people 
need. Personal preferences, industry standards, local standards, 
none agree. Fortunately in R3 native doesn't have to mean built-in 
or standardized.
BrianH:
19-Jun-2009
to-pair [1 2] not working is a bug, btw. Has a ticket and everything.
Pekr:
22-Jun-2009
yeah, I am really satisfied with last few months of developments, 
and I think that the community in overall is, as Carl is doing mostly 
Core stuff, and not GUI. R3 is getting more and more robust and consistent, 
although there is still some way to go. I can feel that we are getting 
more R3 fixes per month, than we get for R2 in last decade :-)
Sunanda:
22-Jun-2009
Yes -- I am hitting bugs, reporting them on curecode and often seeing 
them fixed in just a few days. It's a good time to be evaluating 
R3.
Ladislav:
22-Jun-2009
if we want the hierarchy to be linearly ordered by fineness, then 
the equality should compare just spelling of words, the second one 
- finer and non-existent yet, should compare spelling and binding, 
the third one should compare spelling + binding + datatype (can be 
strict-equal?), the fourth one is not that necessary in this case
Pekr:
22-Jun-2009
BrianH: if binary and string types are more divorced, what do we 
gain in particular?
BrianH:
22-Jun-2009
Ladislav, just checked your SAME? criticisms from the wiki against 
R3, and only the date! transitivity thing still applies.
BrianH:
22-Jun-2009
Struct! is not implemented, nor is denomination in money!. Closed 
ports are not errors and decimals are fixed. Unset and error are 
still not values. The only thing left is the date! zones and the 
type-ignorant any-word comparisons.
BrianH:
23-Jun-2009
Cool - we need as much help as we can get. I'm glad he participates 
in the chat too, and his testing has been very helpful.
Maarten:
23-Jun-2009
I think I ran into him before (may be virtually), I remember him 
as a very kind and nice person.
Maxim:
23-Jun-2009
that is unless you consider a 100x (thats 10000%) increase in RAM 
usage and script slowdown acceptable.
BrianH:
23-Jun-2009
I have been trying to think think it through - there are advantages 
and disadvantages to either way. It is harder to undo a copy than 
not...
Maxim:
23-Jun-2009
(and ram too)
BrianH:
23-Jun-2009
And the returned words are bound to the object.
BrianH:
23-Jun-2009
WORDS-OF works on any-object!, any-function! and map! too, though 
it's only bound to any-object!.
35401 / 4860612345...353354[355] 356357...483484485486487